/* ==========================================================================
   Cadastro — Design System
   Padroniza tipografia, cores e componentes de TODAS as páginas.
   Não altera markup nem lógica: apenas apresentação.
   ========================================================================== */

:root{
  /* Marca */
  --uc-azul:        #17457F;   /* azul institucional (logo) */
  --uc-azul-claro:  #2B7BBF;   /* azul secundário (logo) */
  --uc-azul-escuro: #0F2F5A;
  --uc-verde:       #8CC63F;   /* verde destaque (logo) */
  --uc-verde-escuro:#6FA52C;

  /* Neutros */
  --uc-ink:      #0F1B2D;
  --uc-texto:    #1F2C3D;
  --uc-muted:    #6B7B8F;
  --uc-linha:    #E3E9F1;
  --uc-fundo:    #F4F7FB;
  --uc-branco:   #FFFFFF;

  /* Semânticos */
  --uc-ok:    #1E9E5A;
  --uc-alerta:#E0A400;
  --uc-erro:  #C8323C;

  /* Forma */
  --uc-radius:   14px;
  --uc-radius-sm:10px;
  --uc-sombra:   0 10px 28px rgba(15,27,45,.07);
  --uc-sombra-md:0 16px 40px rgba(15,27,45,.10);

  /* Tipografia */
  --uc-fonte: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* ---------- Base / tipografia única ---------- */
html{ -webkit-text-size-adjust:100%; }
body{
  font-family: var(--uc-fonte) !important;
  color: var(--uc-texto);
  background: var(--uc-fundo);
  font-size: 15px;
  line-height: 1.5;
  letter-spacing:-.005em;
}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{
  font-family: var(--uc-fonte) !important;
  color: var(--uc-ink);
  font-weight: 800;
  letter-spacing:-.02em;
}
h1,.h1{font-size:1.6rem} h2,.h2{font-size:1.35rem} h3,.h3{font-size:1.15rem}
h4,.h4{font-size:1.02rem} h5,.h5{font-size:.94rem} h6,.h6{font-size:.86rem}
small,.small{font-size:.82rem}
a{ color: var(--uc-azul-claro); text-decoration:none; }
a:hover{ color: var(--uc-azul); text-decoration:underline; }
.text-muted{ color: var(--uc-muted) !important; }

/* nunca usar monospace para texto corrido (havia mistura no projeto) */
body, .card, .table, .form-control, .form-select, .btn, .badge, label{
  font-family: var(--uc-fonte) !important;
}
code,pre,kbd,samp,.font-monospace{
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
}

/* ---------- Barra superior padronizada ---------- */
.topbar{
  background: var(--uc-branco) !important;
  border-bottom: 1px solid var(--uc-linha) !important;
  box-shadow: var(--uc-sombra) !important;
}
/* logo removido por configuracao visual */
.topbar > .container.d-flex::before,
.topbar > .container-fluid.d-flex::before{
  content:none !important;
  display:none !important;
}
.uc-logo, .uc-logo--lg{ display:none !important; }

.brand-badge{
  display:inline-flex; align-items:center; gap:.4rem;
  background: linear-gradient(135deg, var(--uc-azul), var(--uc-azul-claro)) !important;
  color:#fff !important;
  font-weight:800; font-size:.78rem;
  padding:.36rem .7rem; border-radius:999px;
  border:0 !important;
}

/* ---------- Botões ---------- */
.btn{
  border-radius: 999px;
  font-weight: 700;
  letter-spacing:-.01em;
  padding:.52rem 1rem;
}
.btn-primary,.btn-mint{
  background: linear-gradient(135deg, var(--uc-azul), var(--uc-azul-claro)) !important;
  border:0 !important; color:#fff !important;
  box-shadow: 0 10px 22px rgba(23,69,127,.20);
}
.btn-primary:hover,.btn-mint:hover{ filter:brightness(1.06); color:#fff !important; }
.btn-success{
  background: linear-gradient(135deg, var(--uc-verde), var(--uc-verde-escuro)) !important;
  border:0 !important; color:#12300a !important; font-weight:800;
}
.btn-outline-primary{
  border:1.5px solid var(--uc-azul) !important; color: var(--uc-azul) !important; background:transparent !important;
}
.btn-outline-primary:hover{ background: var(--uc-azul) !important; color:#fff !important; }
.btn-secondary,.btn-outline-secondary{
  border-radius:999px;
}
.btn-outline-secondary{ border:1.5px solid var(--uc-linha) !important; color: var(--uc-texto) !important; }
.btn-outline-secondary:hover{ background: var(--uc-fundo) !important; color: var(--uc-ink) !important; }
.btn-danger{ background: var(--uc-erro) !important; border:0 !important; }
.btn-sm{ padding:.34rem .7rem; font-size:.8rem; }
.btn-lg{ padding:.7rem 1.3rem; font-size:1rem; }

/* ---------- Formulários ---------- */
.form-label{
  font-weight:700; font-size:.82rem; color: var(--uc-texto);
  margin-bottom:.28rem;
}
.form-control,.form-select{
  border-radius: var(--uc-radius-sm);
  border:1px solid var(--uc-linha);
  padding:.56rem .7rem;
  font-size:.9rem;
  color: var(--uc-texto);
  background: var(--uc-branco);
}
.form-control:focus,.form-select:focus{
  border-color: var(--uc-azul-claro);
  box-shadow: 0 0 0 .2rem rgba(43,123,191,.16);
}
.form-control::placeholder{ color:#9AA8B8; }
.form-control-sm,.form-select-sm{ padding:.38rem .55rem; font-size:.84rem; }
.input-group-text{
  background: var(--uc-fundo); border:1px solid var(--uc-linha);
  color: var(--uc-muted); border-radius: var(--uc-radius-sm);
}

/* ---------- Cartões / painéis ---------- */
.card,.panel,.box{
  background: var(--uc-branco);
  border:1px solid var(--uc-linha) !important;
  border-radius: var(--uc-radius) !important;
  box-shadow: var(--uc-sombra);
}
.card-header{
  background: var(--uc-branco) !important;
  border-bottom:1px solid var(--uc-linha) !important;
  font-weight:800; color: var(--uc-ink);
}

/* ---------- Tabelas ---------- */
.table{ font-size:.88rem; color: var(--uc-texto); }
.table > thead{
  background: var(--uc-fundo);
}
.table > thead th{
  font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:.4px;
  color: var(--uc-muted); border-bottom:1px solid var(--uc-linha);
  white-space:nowrap;
}
.table > tbody td{ border-color:#EEF2F7; vertical-align:middle; }
.table-hover > tbody > tr:hover > *{ background: rgba(43,123,191,.05); }

/* ---------- Selos / alertas ---------- */
.badge{ font-weight:800; font-size:.7rem; border-radius:999px; padding:.3rem .6rem; }
.bg-primary{ background: var(--uc-azul) !important; }
.bg-success{ background: var(--uc-verde) !important; color:#12300a !important; }
.bg-danger{ background: var(--uc-erro) !important; }
.bg-warning{ background: var(--uc-alerta) !important; color:#3a2a00 !important; }
.alert{
  border-radius: var(--uc-radius-sm);
  border:1px solid var(--uc-linha);
  font-size:.88rem;
}
.alert-success{ background:#EFF9EF; border-color:#CDE9C6; color:#1B5E20; }
.alert-danger{ background:#FDF0F1; border-color:#F3CDD0; color:#8E1F27; }
.alert-warning{ background:#FFF9E8; border-color:#F5E3B0; color:#6B4E00; }
.alert-info{ background:#EEF6FD; border-color:#CBE2F5; color:#144A75; }

/* ---------- Cabeçalhos escuros herdados (padroniza no azul da marca) ---------- */
.head, .login-header, .card-head, .panel-head{
  background: linear-gradient(135deg, var(--uc-azul), var(--uc-azul-claro)) !important;
  color:#fff !important;
}
.head::after, .login-header::after{
  background: radial-gradient(circle at 30% 30%, rgba(140,198,63,.34), rgba(23,69,127,0) 62%) !important;
}
.head img, .login-header img{ height:32px; width:auto; }
.head .sub, .login-header .sub,
.head p, .login-header p{ color: rgba(255,255,255,.86) !important; }

/* ---------- Página: cabeçalho de conteúdo ---------- */
.uc-page-head{
  display:flex; flex-wrap:wrap; align-items:center; gap:.75rem;
  margin: 1rem 0 1rem;
}
.uc-page-head h1{ margin:0; }
.uc-page-sub{ color: var(--uc-muted); font-size:.86rem; }

/* ---------- Tela de acesso (login) ---------- */
.uc-login{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  padding:24px 14px;
  background:
    radial-gradient(1000px 500px at 12% -10%, rgba(23,69,127,.14), transparent 60%),
    radial-gradient(820px 420px at 92% 0%, rgba(140,198,63,.18), transparent 58%),
    var(--uc-fundo);
}
.uc-login-card{
  width:100%; max-width:420px;
  background: var(--uc-branco);
  border:1px solid var(--uc-linha);
  border-radius:20px;
  box-shadow: var(--uc-sombra-md);
  overflow:hidden;
}
.uc-login-top{
  padding:26px 24px 18px;
  text-align:center;
  border-bottom:1px solid var(--uc-linha);
  background: linear-gradient(180deg,#FFFFFF, #F8FBFF);
}
.uc-login-top .uc-logo{ display:none !important; }
.uc-login-top h1{ font-size:1.06rem; margin:0 0 2px; }
.uc-login-top p{ margin:0; font-size:.82rem; color: var(--uc-muted); }
.uc-login-body{ padding:20px 22px 16px; }
.uc-login-foot{
  padding:12px 16px 16px; text-align:center;
  font-size:.74rem; color: var(--uc-muted);
  border-top:1px solid var(--uc-linha);
}
.uc-strip{ height:4px; background: linear-gradient(90deg, var(--uc-azul), var(--uc-azul-claro) 60%, var(--uc-verde)); }

/* ---------- Responsivo ---------- */
@media (max-width: 768px){
  body{ font-size:14.5px; }
  h1,.h1{font-size:1.35rem} h2,.h2{font-size:1.2rem}
  .topbar > .container.d-flex::before,
  .topbar > .container-fluid.d-flex::before{ width:104px; height:28px; }
  .table{ font-size:.82rem; }
  .btn{ padding:.5rem .9rem; }
}

/* ---------- Impressão ---------- */
@media print{
  .topbar,.no-print{ display:none !important; }
  body{ background:#fff; }
}
