/* Projetos & Obras 360° — tema institucional Minerva Foods
   Camada exclusivamente visual e reversível. */
:root {
  --az1: #2E5371;
  --az2: #4E7E9F;
  --az3: #7196AF;
  --azx: #E9F0F4;
  --rd: #E84752;
  --rdl: #FDECEE;
  --am: #8A7C43;
  --aml: #F4F1E5;
  --g1: #F5F7F8;
  --g2: #E7ECEF;
  --g3: #CBD5DB;
  --g5: #73838E;
  --g7: #465965;
  --g9: #2B3D4A;
  --wh: #FFFFFF;
  --sh: 0 5px 18px rgba(43, 61, 74, .07);
  --sha: 0 12px 34px rgba(43, 61, 74, .13);
  --r: 12px;
}

html, body, button, input, select, textarea, table,
.btn, .login-inp, .login-btn, .mem-input, .mem-select, .mem-textarea {
  font-family: 'Montserrat', Arial, sans-serif !important;
}

body {
  color: var(--g9);
  background:
    radial-gradient(circle at 100% 0, rgba(78,126,159,.08), transparent 28rem),
    #F2F5F7;
}

/* Estrutura institucional */
.top {
  background: linear-gradient(108deg, #294C68 0%, #2E5371 58%, #365F7C 100%);
  box-shadow: 0 4px 18px rgba(43,61,74,.22);
  border-bottom: 2px solid rgba(189,181,140,.75);
}
.side { background: linear-gradient(180deg, #294C68 0%, #2E5371 62%, #263F52 100%); }
.side-lbl { color: rgba(255,255,255,.48); }
.side-a { color: rgba(255,255,255,.72); }
.side-a:hover { background: rgba(255,255,255,.08); }
.side-a.on {
  background: linear-gradient(90deg, rgba(189,181,140,.18), rgba(255,255,255,.06));
  border-left-color: #BDB58C;
}
.top-logo span { color: #BDB58C; }
.main { position: relative; }
.main::before {
  content: '';
  position: fixed;
  right: -170px;
  bottom: -210px;
  width: 560px;
  height: 560px;
  border: 62px solid rgba(78,126,159,.035);
  border-radius: 50%;
  pointer-events: none;
  z-index: -1;
}

/* Hierarquia e superfícies */
.ph-title, .card-title, .sc-val, .fl, .mem-label { color: #2E5371; }
.ph-title { letter-spacing: -.35px; }
.card, .sc, .login-box {
  border: 1px solid rgba(203,213,219,.72);
  box-shadow: var(--sh);
}
.card-h { border-bottom-color: var(--g2); }
.sc { border-top-width: 4px; }
.sc:hover, .mat-card:hover { transform: translateY(-1px); }
.sc.am { border-top-color: #BDB58C; }

/* Ações */
.btn-p, .login-btn {
  background: #2E5371;
  box-shadow: 0 4px 12px rgba(46,83,113,.22);
}
.btn-p:hover, .login-btn:hover { background: #24445D; }
.btn-o { color: #2E5371; border-color: #4E7E9F; }
.btn-o:hover { color: #2E5371; background: #E9F0F4; }
button:focus-visible, a:focus-visible, select:focus-visible, input:focus-visible {
  outline: 3px solid rgba(232,71,82,.3);
  outline-offset: 2px;
}

/* Navegação de conteúdo */
.tabs { border-bottom: 1px solid var(--g3); }
.tab { border-bottom-width: 3px; }
.tab:hover { color: #4E7E9F; }
.tab.on { color: #2E5371; border-bottom-color: #E84752; }
.step.on { background: #2E5371; }

/* Tabelas: leitura executiva e cabeçalho sempre legível */
thead, table thead { background: #2E5371; }
th, table thead th {
  color: #FFFFFF !important;
  border-bottom-color: #BDB58C;
  letter-spacing: .65px;
}
tbody tr:nth-child(even) td { background: rgba(233,240,244,.36); }
tbody tr:hover td { background: #EEF3F6; }
td { color: #465965; border-bottom-color: #E1E7EA; }

/* Formulários */
select, .mem-input, .mem-select, .mem-textarea, .login-inp {
  border-color: #CBD5DB;
}
select:focus, .mem-input:focus, .mem-select:focus, .mem-textarea:focus, .login-inp:focus {
  border-color: #4E7E9F;
  box-shadow: 0 0 0 3px rgba(78,126,159,.14);
}

/* Semântica: coral para atenção; dourado para excelência/meta */
.sc.rd { border-top-color: #E84752; }
.tag.rd, .sp-pill.sp-error { background: #FDECEE; color: #C9313E; }
.tag.am, .sp-wip { background: #F4F1E5; color: #75682F; }
.toast { background: #2E5371; }
.it-head { background: linear-gradient(125deg, #294C68, #4E7E9F); }
.mem-section-title, .sb-title { border-bottom-color: #BDB58C; }

/* Login com assinatura visual discreta, sem mudar nome ou logotipo */
#ecpo-lock {
  background:
    radial-gradient(circle at 86% 16%, transparent 0 105px, rgba(255,255,255,.06) 106px 152px, transparent 153px),
    linear-gradient(135deg, #263F52, #2E5371 68%, #4E7E9F);
}
.login-box { border-top: 5px solid #E84752; }
.login-logo { color: #2E5371; }
.login-logo span { color: #BDB58C; }

/* Gráficos e SVGs herdam Montserrat; mantém as regras funcionais das séries. */
canvas, svg text { font-family: 'Montserrat', Arial, sans-serif !important; }

@media (max-width: 900px) {
  .main::before { display: none; }
  .card, .sc { border-radius: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
