:root{
  --cacip-primary:#0f5ea8;
  --cacip-primary-dark:#0a3f72;
  --cacip-accent:#18a999;
  --cacip-bg:#f4f7fb;
  --cacip-card:#ffffff;
  --cacip-text:#17324d;
  --cacip-muted:#6f8092;
  --cacip-border:#dfe7ef;
  --cacip-danger:#c63d4f;
  --cacip-warning:#e09b2d;
  --cacip-success:#25875f;
}
html,body{max-width:100%;overflow-x:hidden}
body{background:var(--cacip-bg)!important;color:var(--cacip-text);font-family:Inter,Segoe UI,Arial,sans-serif}
.sb-topnav{background:linear-gradient(135deg,var(--cacip-primary-dark),var(--cacip-primary))!important;min-height:68px;box-shadow:0 2px 14px rgba(15,62,105,.18)}
.navbar-brand img{max-height:46px!important;width:auto!important;margin:0!important;padding:4px 8px;border-radius:10px;background:#fff}
.sb-sidenav-dark{background:linear-gradient(180deg,#102f4a,#0c2237)!important}
.sb-sidenav-dark .nav-link{color:#d9e7f3!important;border-radius:10px;margin:2px 10px;padding:.72rem .8rem}
.sb-sidenav-dark .nav-link:hover{background:rgba(255,255,255,.09);color:#fff!important}
.sb-sidenav-menu-heading{font-size:.72rem!important;letter-spacing:.08em;opacity:.8}
#layoutSidenav_content{background:var(--cacip-bg)!important}
main{padding:1rem}
.card,.modal-content{border:1px solid var(--cacip-border)!important;border-radius:16px!important;box-shadow:0 8px 24px rgba(30,72,112,.06)!important}
.card-header{background:#fff!important;border-bottom:1px solid var(--cacip-border)!important;border-radius:16px 16px 0 0!important}
.btn{border-radius:10px!important;font-weight:600}
.btn-primary{background:var(--cacip-primary)!important;border-color:var(--cacip-primary)!important}
.btn-success{background:var(--cacip-success)!important;border-color:var(--cacip-success)!important}
.form-control,.form-select{border-radius:10px!important;border-color:#ccd8e4!important;min-height:42px}
.form-control:focus,.form-select:focus{border-color:var(--cacip-primary)!important;box-shadow:0 0 0 .18rem rgba(15,94,168,.12)!important}
.table{background:#fff;border-color:var(--cacip-border)}
.table thead th{white-space:nowrap;background:#edf4fa!important;color:#294962!important;border-bottom:1px solid var(--cacip-border)!important}
.table-responsive,.table-wrap{border-radius:12px;overflow:auto;-webkit-overflow-scrolling:touch}
.alert{border-radius:12px!important}
.badge{border-radius:999px!important;padding:.45em .7em}
.cacip-page-title{font-size:1.4rem;font-weight:700;margin-bottom:.25rem}
.cacip-page-subtitle{color:var(--cacip-muted);margin-bottom:1rem}
.cacip-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.cacip-metric{background:#fff;border:1px solid var(--cacip-border);border-radius:16px;padding:16px}
.cacip-metric small{display:block;color:var(--cacip-muted);margin-bottom:6px}
.cacip-metric strong{font-size:1.45rem;color:var(--cacip-text)}
.cacip-dashboard-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:16px}
.cacip-panel{background:#fff;border:1px solid var(--cacip-border);border-radius:16px;padding:16px}
.cacip-quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cacip-quick-actions a{text-decoration:none;border:1px solid var(--cacip-border);border-radius:14px;padding:14px;color:var(--cacip-text);background:#fff;display:flex;align-items:center;gap:10px}
.cacip-quick-actions a:hover{border-color:#a8c5df;background:#f7fbff}
.cacip-notification-link{position:relative;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;color:#fff;text-decoration:none}
.cacip-notification-link:hover{background:rgba(255,255,255,.12);color:#fff}
.cacip-notification-badge{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#e74a5f;color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;border:2px solid var(--cacip-primary)}
.cacip-mobile-nav{display:none}
.cacip-status-regular{color:var(--cacip-success)}
.cacip-status-inadimplente{color:var(--cacip-warning)}
.cacip-status-bloqueada{color:var(--cacip-danger)}
@media (max-width:991.98px){
  main{padding:.75rem .5rem 5.5rem}
  .cacip-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cacip-dashboard-grid{grid-template-columns:1fr}
  .cacip-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sb-topnav .navbar-brand{max-width:160px}
  .cacip-mobile-nav{display:flex;position:fixed;left:8px;right:8px;bottom:8px;z-index:1040;background:#fff;border:1px solid var(--cacip-border);border-radius:18px;box-shadow:0 10px 28px rgba(20,60,95,.18);padding:7px;justify-content:space-around}
  .cacip-mobile-nav a{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:#557085;font-size:.72rem;min-width:58px;padding:5px 7px;border-radius:12px}
  .cacip-mobile-nav a i{font-size:1rem}
  .cacip-mobile-nav a:hover{background:#eef5fb;color:var(--cacip-primary)}
}
@media (max-width:575.98px){
  .cacip-metrics{grid-template-columns:1fr 1fr;gap:8px}
  .cacip-metric{padding:12px}
  .cacip-metric strong{font-size:1.15rem}
  .cacip-quick-actions{grid-template-columns:1fr}
  h1,h2,h3{word-break:break-word}
  .btn{min-height:42px}
  .row>[class*='col-']{margin-bottom:.3rem}
  .modal-dialog{margin:.5rem}
}

/* =========================================================
   CACIP V2 - TELAS DE LOGIN
   Corrige contraste quando o CSS global e o CSS da tela
   são carregados juntos.
   ========================================================= */
body.cacip-login-page{
  min-height:100vh;
  background:linear-gradient(135deg,#0969bc 0%,#073a73 48%,#060025 100%)!important;
  color:#17324d!important;
}
body.cacip-login-page .login-choice,
body.cacip-login-page .login-card{
  background:rgba(255,255,255,.97)!important;
  border:1px solid rgba(255,255,255,.8)!important;
  box-shadow:0 18px 48px rgba(0,0,0,.30)!important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
body.cacip-login-page .logo-sistema h1,
body.cacip-login-page .login-title,
body.cacip-login-page .section-title{
  color:#17324d!important;
}
body.cacip-login-page .logo-sistema p,
body.cacip-login-page .rodape{
  color:#6f8092!important;
}
body.cacip-login-page .subtitulo{
  color:#0f5ea8!important;
}
body.cacip-login-page .form-label{
  color:#294962!important;
  font-weight:600!important;
}
body.cacip-login-page .form-control,
body.cacip-login-page .form-select{
  color:#17324d!important;
  background:#fff!important;
  border:1px solid #ccd8e4!important;
}
body.cacip-login-page .form-control::placeholder{
  color:#8191a1!important;
  opacity:1;
}
body.cacip-login-page .form-control:focus,
body.cacip-login-page .form-select:focus{
  border-color:#0f5ea8!important;
  box-shadow:0 0 0 .2rem rgba(15,94,168,.14)!important;
}
body.cacip-login-page .link-senha{
  color:#0f5ea8!important;
  font-weight:600;
}
body.cacip-login-page .link-senha:hover{
  color:#0a3f72!important;
  text-decoration:underline;
}
body.cacip-login-page .logo-banner{
  background:#fff;
  border-radius:16px;
  padding:6px;
}
body.cacip-login-page .login-choice .btn-choice{
  color:#fff!important;
}
body.cacip-login-page > h5{
  color:#fff!important;
  text-shadow:0 2px 8px rgba(0,0,0,.25);
}
body.cacip-login-page .modal-content{
  color:#17324d!important;
  background:#fff!important;
}
@media(max-width:575.98px){
  body.cacip-login-page{padding:14px!important;align-items:flex-start!important;}
  body.cacip-login-page .login-choice,
  body.cacip-login-page .login-card{margin-top:12px;padding:24px 20px!important;border-radius:20px!important;}
  body.cacip-login-page .logo-banner{max-width:140px!important;max-height:105px!important;}
}
