/* Meu Croquis: visual comum às páginas de trabalho e à área de conta.
   Os selectores site-app isolam estes ajustes dos componentes da home. */
.site-app {
  --navy: #102d35;
  --green: #245b49;
  --sand: #f4f1e9;
  --line: #d9dfd6;
  --marinho: #102d35;
  --marinho-2: #153e44;
  --marinho-3: #245b49;
  --azul: #245b49;
  --azul-esc: #1a4738;
  --azul-claro: #37745e;
  --dourado: #245b49;
  --dourado-claro: #eed9a2;
  --dourado-suave: #f8f1dd;
  --verde: #245b49;
  --verde-suave: #eaf2e9;
  --verde-claro: #eaf2e9;
  --texto: #102d35;
  --texto-suave: #52635e;
  --cinza: #52635e;
  --cinza-900: #102d35;
  --cinza-700: #354d46;
  --cinza-500: #52635e;
  --cinza-400: #52635e;
  --bg: #f4f1e9;
  --fundo: #f4f1e9;
  --surface: #fff;
  --carta: #fff;
  --border: #d9dfd6;
  --borda: #d9dfd6;
  --azul-suave: #eaf2e9;
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 14px;
  --shadow-sm: 0 2px 6px rgb(16 45 53 / 3%);
  --shadow-md: 0 8px 24px rgb(16 45 53 / 8%);
  --shadow-lg: 0 16px 44px rgb(16 45 53 / 12%);
  --ring: 0 0 0 3px rgb(36 91 73 / 18%);
  --font: system-ui, -apple-system, "Segoe UI", sans-serif;
  background: var(--sand);
  color: var(--navy);
  font-family: var(--font);
  line-height: 1.55;
  min-width: 0;
}
.site-app *, .site-app *::before, .site-app *::after { box-sizing: border-box; }
.site-app button, .site-app input, .site-app select, .site-app textarea { font-family: inherit; }
.site-app :focus-visible { outline: 3px solid #a87516; outline-offset: 3px; }
.site-app ::selection { background: #eed9a2; color: var(--navy); }
.site-app h1, .site-app h2, .site-app h3 { line-height: 1.25; }
.site-app p { overflow-wrap: anywhere; }
.site-app .h1, .site-app main > h1 { font-size: clamp(1.7rem, 3vw, 2.25rem); letter-spacing: -.7px; }
.site-app .sub, .site-app .desc, .site-app .muted { color: var(--texto-suave); }
.site-app .site-brand { font-size: 23px; font-weight: 850; text-decoration: none; letter-spacing: -.5px; color: var(--navy); }
.site-app .site-brand span { color: #a87c27; }

/* Cabeçalho e navegação: os mesmos tons e espaçamento em todas as contas. */
.site-app > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  min-height: 80px;
  padding: 16px max(24px, calc((100vw - 1132px) / 2));
  background: #fff;
  color: var(--navy);
  border-bottom: 1px solid var(--line);
  box-shadow: none;
}
.site-app > header .logo, .site-app > header .marca { color: var(--navy); }
.site-app > header .logo { font-size: 23px; letter-spacing: -.5px; }
.site-app > header .logo svg { color: var(--green); }
.site-app > header .logo b { color: var(--green); }
.site-app > header nav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; }
.site-app > header nav a { color: var(--navy); margin: 0; text-decoration: none; font-size: 14px; font-weight: 600; padding-block: 8px; }
.site-app > header nav a:hover { color: var(--green); text-decoration: underline; text-underline-offset: 4px; }
.site-app > header .topbar-user { color: var(--texto-suave); margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.site-app > .wrap { max-width: 1180px; padding: 36px 24px 64px; }
.site-app .cartao, .site-app .kpi, .site-app .plano, .site-app .modelo-freelancer,
.site-app .trabalho, .site-app .h-item { border-color: var(--line); border-radius: 14px; box-shadow: var(--shadow-sm); }
.site-app .kpi:hover, .site-app .plano:hover, .site-app .atalho:hover { transform: none; box-shadow: var(--shadow-md); }
.site-app .kpi.principal, .site-app .plano-cartao { background: var(--navy); }
.site-app .kpi.principal .rot, .site-app .kpi.principal .nota,
.site-app .kpi.principal .kpi-rotulo, .site-app .kpi.principal .kpi-tendencia { color: #d7e5df; }
.site-app .kpi-icone, .site-app .estado-vazio .ic { background: #eaf2e9; color: var(--green); }
.site-app .modelo-freelancer img { background: #f2f4ef; }
.site-app .btn, .site-app .botao, .site-app .atalho,
.site-app .plano .btn, .site-app .modelo-freelancer .btn,
.site-app .modal .pagar, .site-app .plano-cartao .btn,
.site-app .aviso-bloqueio .btn {
  background: var(--green); color: #fff; border-radius: 8px; box-shadow: none;
  min-height: 44px; text-align: center; line-height: 1.45;
}
.site-app .btn:hover, .site-app .botao:hover, .site-app .plano .btn:hover { box-shadow: none; filter: brightness(.94); transform: none; }
.site-app .btn.vermelho { background: var(--vermelho); }
.site-app .btn.cinza, .site-app .btn.outline, .site-app .modal .cancelar { background: #f1f4ef; color: var(--navy); border: 1px solid var(--line); }
.site-app .atalho.dourado { background: var(--green); color: #fff; }
.site-app .atalho.dourado svg, .site-app .atalho svg { color: #eed9a2; }
.site-app .selo { background: #eaf2e9; color: var(--green); border: 1px solid var(--line); }
.site-app .barra > div { background: var(--green); }
.site-app .barra.cheia > div { background: var(--vermelho); }
.site-app .modal { border: 1px solid var(--line); border-radius: 14px; max-height: 90svh; overflow-y: auto; }
.site-app input:not([type=checkbox]):not([type=radio]), .site-app select, .site-app textarea { border-color: #b8c4b9; border-radius: 8px; color: var(--navy); background-color: #fff; max-width: 100%; }
.site-app input:focus, .site-app select:focus, .site-app textarea:focus { border-color: var(--green); box-shadow: var(--ring); }
.site-app button:disabled, .site-app .btn:disabled { cursor: not-allowed; filter: none; }

/* Administração: tabelas com deslocamento e ações organizadas. */
.site-app.theme-admin .sidebar { background: var(--navy); }
.site-app.theme-admin .sidebar-logo, .site-app.theme-admin .avatar { background: var(--green); }
.site-app.theme-admin .sidebar-brand { color: #fff; }
.site-app.theme-admin .sidebar-brand small { color: #c3d6cd; margin-top: 2px; font-size: 12px; }
.site-app.theme-admin .nav-grupo-titulo, .site-app.theme-admin .nav-grupo-titulo::after { color: #aec5bb; }
.site-app.theme-admin .nav-item { min-height: 43px; color: #e5eeea; font-size: 14px; }
.site-app.theme-admin .nav-item.activo { background: #245b49; box-shadow: inset 3px 0 0 #eed9a2; }
.site-app.theme-admin .sidebar-service { display: block; margin: 8px 14px 0; padding: 12px; border: 1px solid #739184; border-radius: 8px; color: #fff; font-weight: 650; font-size: 13px; }
.site-app.theme-admin .sidebar-service:hover { background: var(--green); }
.site-app.theme-admin .topbar { background: #fff; backdrop-filter: none; min-height: 80px; }
.site-app.theme-admin .topbar-titulo span { display: block; font-size: 12px; font-weight: 400; color: var(--texto-suave); margin-top: 2px; }
.site-app.theme-admin .topbar-buscar { background: #f4f1e9; }
.site-app.theme-admin .topbar-buscar input { background: transparent; border: 0; box-shadow: none; }
.site-app.theme-admin .conteudo { padding: 28px; max-width: 1320px; }
.site-app.theme-admin .cartao-head { flex-wrap: wrap; }
.site-app.theme-admin .cartao-head .acoes { flex-wrap: wrap; }
.site-app.theme-admin .cartao-head h3 { font-size: 16px; }
.site-app.theme-admin .tabela th, .site-app.theme-admin .tabela tbody tr:hover, .site-app.theme-admin .form-row { background: #f7f8f4; }
.site-app.theme-admin .campo input, .site-app.theme-admin .campo select { min-height: 42px; }
.site-app.theme-admin .campo textarea { width: 100%; padding: 9px 11px; border: 1px solid var(--line); }
.site-app.theme-admin .b-azul { background: #eaf2e9; color: var(--green); }
.site-app.theme-admin .hamburger { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }

/* Pagamentos, pedidos e afiliados com cartões simples. */
.site-app.theme-pagamentos main, .site-app.theme-afiliado main, .site-app.theme-cliente main { max-width: 1080px; padding: 36px 24px 64px; }
.site-app.theme-pagamentos section, .site-app.theme-pagamentos article,
.site-app.theme-afiliado section, .site-app.theme-afiliado article,
.site-app.theme-cliente article { border-color: var(--line); box-shadow: var(--shadow-sm); border-radius: 14px; }
.site-app.theme-afiliado h2, .site-app.theme-pagamentos h2 { font-size: 23px; }
.site-app.theme-afiliado #balance { color: var(--green); }
.site-app.theme-pagamentos button, .site-app.theme-afiliado button, .site-app.theme-cliente button { background: var(--green); color: #fff; border-radius: 8px; font-weight: 650; }
.site-app.theme-pagamentos #message, .site-app.theme-afiliado #message { position: static; background: #eaf2e9; color: var(--green); border: 1px solid #c9d8ca; margin: 20px 0; padding: 14px 16px; }
.site-app.theme-pagamentos label, .site-app.theme-afiliado label { font-size: 14px; font-weight: 700; margin-top: 18px; }
.site-app.theme-pagamentos input[type=file] { padding: 10px; background: #f7f8f4; border-style: dashed; }
.site-app.theme-pagamentos pre { font-family: ui-monospace, Consolas, monospace; font-size: 13px; background: #f7f8f4; border-radius: 8px; }
.site-app.theme-afiliado #credits p, .site-app.theme-afiliado #withdrawals p { border-bottom: 1px solid var(--line); padding-bottom: 12px; }
.site-app.theme-cliente .estado { background: #eaf2e9; color: var(--green); }

/* Entrada e registo com a mesma identidade da página inicial. */
.site-app.theme-auth { background: var(--sand); padding: 32px 18px; }
.site-app.theme-auth::before, .site-app.theme-auth::after { display: none; }
.site-app.theme-auth .caixa { border: 1px solid var(--line); border-radius: 14px; padding: 32px; box-shadow: var(--shadow-md); max-width: 450px; }
.site-app.theme-auth .caixa::before, .site-app.theme-auth .marca { display: none; }
.site-app.theme-auth .auth-brand { display: block; text-align: center; margin-bottom: 28px; }
.site-app.theme-auth .auth-client-note { border: 1px solid var(--line); background: #f7f8f4; border-radius: 8px; padding: 12px 14px; margin-bottom: 22px; font-size: 14px; color: var(--texto-suave); }
.site-app.theme-auth .auth-client-note a { color: var(--green); font-weight: 650; }
.site-app.theme-auth .sub { margin-bottom: 20px; }
.site-app.theme-auth button { background: var(--green); border-radius: 8px; box-shadow: none; }
.site-app.theme-auth button::before { display: none; }
.site-app.theme-auth .rodape { color: var(--texto-suave); }
.site-app.theme-parceiro button[type=submit] { background: var(--green); color: #fff; border-radius: 8px; box-shadow: none; }
.site-app.theme-area .cartao .icone { background: #eaf2e9; border-color: var(--line); }

/* Criação em cinco etapas: tema comum sem alterar os mapas e controlos GIS. */
.site-app.theme-novo > header { height: 80px; flex-wrap: nowrap; padding: 14px 24px; }
.site-app.theme-novo > header .logo { background: #eaf2e9; border: 1px solid var(--line); color: var(--green); font-size: 22px; }
.site-app.theme-novo > header .subtitulo { color: var(--texto-suave); opacity: 1; }
.site-app.theme-novo main { max-width: 760px; margin: 28px auto 60px; padding: 0 20px; }
.site-app.theme-novo .progresso { top: 80px; justify-content: center; gap: 8px; padding: 12px; }
.site-app.theme-novo .etapa-prog { color: var(--texto-suave); font-size: 12px; }
.site-app.theme-novo .etapa-prog.ativa { background: var(--green); color: #fff; box-shadow: none; }
.site-app.theme-novo .etapa-prog.pronta { background: #eaf2e9; color: var(--green); }
.site-app.theme-novo .cartao { padding: 24px; }
.site-app.theme-novo .cartao h2 { font-size: 23px; }
.site-app.theme-novo .instrucao { border-left-color: var(--green); color: var(--texto-suave); background: #f0f5ed; line-height: 1.6; }
.site-app.theme-novo button.primario, .site-app.theme-novo button.sucesso, .site-app.theme-novo button.dourado { background: var(--green); color: #fff; box-shadow: none; border-radius: 8px; }
.site-app.theme-novo button.primario:disabled { background: #80988d; color: #fff; }
.site-app.theme-novo button::before { display: none; }
.site-app.theme-novo button:hover { transform: none; }
.site-app.theme-novo .toolbar button.ativo { color: #fff; background: var(--green); box-shadow: none; }
.site-app.theme-novo .pagamento-box { background: #f0f5ed; border: 1px solid #b3cbb7; }
.site-app.theme-novo .pagamento-box p { color: var(--texto-suave); }
.site-app.theme-novo .link-final, .site-app.theme-novo .link-documento { border-radius: 8px; box-shadow: none; }
.site-app.theme-novo .marca-preview { background: #eed9a2; color: var(--navy); }
.site-app.theme-novo .cartao-modelo .mini { background: #f2f4ef; }
.site-app.theme-novo .resumo-linha { gap: 18px; }
.site-app.theme-novo .opcao.selecionada { border-color: var(--green); }

@media (max-width: 760px) {
  .site-app > header { padding: 14px 18px; gap: 8px 18px; }
  .site-app > .wrap { padding: 26px 18px 48px; }
  .site-app > header nav { gap: 2px 16px; }
  .site-app .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .site-app .kpi { padding: 16px; }
  .site-app .kpi .val { font-size: 1.45rem; overflow-wrap: anywhere; }
  .site-app .cartao, .site-app .plano { min-width: 0; }
  .site-app .planos { grid-template-columns: 1fr; }
  .site-app.theme-admin .conteudo { padding: 20px 14px; }
  .site-app.theme-admin .topbar { min-height: 72px; }
  .site-app.theme-admin .cartao-head .acoes { margin-left: 0; }
  .site-app.theme-admin .campo { min-width: 0 !important; flex: 1 1 100%; }
  .site-app.theme-pagamentos main, .site-app.theme-afiliado main, .site-app.theme-cliente main { padding: 26px 18px 48px; }
  .site-app.theme-pagamentos section, .site-app.theme-afiliado section { padding: 20px; }
  .site-app.theme-novo > header { padding-inline: 18px; }
  .site-app.theme-novo .progresso { gap: 4px; }
}
@media (max-width: 480px) {
  .site-app > header nav { width: 100%; }
  .site-app > header .site-brand, .site-app > header .logo { font-size: 21px; }
  .site-app > .wrap { padding-inline: 12px; }
  .site-app .cartao { padding: 18px 14px; }
  .site-app .aviso-bloqueio.ativo { flex-wrap: wrap; }
  .site-app .aviso-bloqueio .btn { margin-left: 0; width: 100%; }
  .site-app .h-item { flex-wrap: wrap; }
  .site-app .plano-cartao .btn { margin-left: 0; width: 100%; }
  .site-app.theme-admin .cartao { padding: 0; }
  .site-app.theme-admin .kpis { grid-template-columns: 1fr; }
  .site-app.theme-admin .kpi-valor { font-size: 24px; }
  .site-app.theme-admin .toast { left: 12px; right: 12px; max-width: calc(100vw - 24px); }
  .site-app.theme-auth .caixa { padding: 26px 20px; }
  .site-app.theme-novo > header { height: 68px; padding: 12px 14px; }
  .site-app.theme-novo main { padding-inline: 10px; margin-top: 16px; }
  .site-app.theme-novo .progresso { top: 68px; padding: 9px 5px; gap: 3px; }
  .site-app.theme-novo .etapa-prog { flex: 1 1 0; min-width: 0; padding: 7px 3px; font-size: 10px; white-space: normal; text-align: center; }
  .site-app.theme-novo .cartao { padding: 18px 14px; }
  .site-app.theme-novo .cartao h2 { font-size: 21px; }
  .site-app.theme-novo .opcoes { flex-wrap: wrap; }
  .site-app.theme-novo .opcao { flex-basis: calc(50% - 10px); }
  .site-app.theme-pagamentos button, .site-app.theme-afiliado button { max-width: 100%; overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
  .site-app *, .site-app *::before, .site-app *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Informação legal e ferramentas internas. */
.site-app.theme-legal > header { margin-bottom: 32px; }
.site-app.theme-legal > header .wrap { width: 100%; max-width: 1180px; padding: 0; }
.site-app.theme-legal > main.wrap { max-width: 820px; width: calc(100% - 36px); margin: 0 auto; padding: 36px; border-radius: 14px; }
.site-app.theme-tools {
  --color-bg: #f4f1e9;
  --color-panel: #fff;
  --color-border: #d9dfd6;
  --color-primary: #245b49;
  --color-primary-hover: #1a4738;
  --color-primary-2: #102d35;
  --color-accent: #245b49;
  --color-accent-light: #eed9a2;
  --color-accent-soft: #eaf2e9;
  --color-accent-text: #245b49;
  --color-secondary: #52635e;
  --color-success: #245b49;
  --color-info: #245b49;
  --color-text: #102d35;
  --color-text-muted: #52635e;
}
.site-app.theme-tools .editor-header, .site-app.theme-tools .tester-header { background: #fff; color: var(--navy); border-color: var(--line); box-shadow: none; gap: 14px; }
.site-app.theme-tools .header-left h1 { color: var(--navy); }
.site-app.theme-tools .header-left h1 b { color: var(--green); }
.site-app.theme-tools .header-logo { background: #eaf2e9; color: var(--green); border-color: var(--line); }
.site-app.theme-tools .header-left .status-badge, .site-app.theme-tools .header-left .badge { background: #eaf2e9; color: var(--green); border: 1px solid var(--line); }
.site-app.theme-tools .header-left .status-badge.error { background: #fdecec; color: #a03030; border-color: #f5cccc; }
.site-app.theme-tools .btn { min-height: 36px; }
.site-app.theme-tools .btn-secondary { background: #f1f4ef; color: var(--navy); border: 1px solid var(--line); }
.site-app.theme-tools .btn-secondary:hover:not(:disabled) { background: #e5ebe1; }
.site-app.theme-tools .btn-danger { background: var(--color-danger); color: #fff; }
.site-app.theme-tools .editor-rail { background: var(--navy); }
.site-app.theme-tools .rail-step.active { background: var(--green); }
@media (max-width: 600px) {
  .site-app.theme-legal > main.wrap { padding: 26px 20px; }
  .site-app.theme-tools .editor-header, .site-app.theme-tools .tester-header { flex-wrap: wrap; padding: 12px; }
  .site-app.theme-tools .header-left { flex-wrap: wrap; gap: 8px; }
  .site-app.theme-tools .header-right { flex-wrap: wrap; width: 100%; gap: 8px; }
  .site-app.theme-tools .header-right select { flex: 1 1 180px; min-width: 0; }
}
