
:root{
  --kv-primary: #0d6efd;
  --kv-dark: #0b2239;
}
.kv-navbar{ background: linear-gradient(90deg, #0b2239 0%, #0d6efd 100%); }
.kv-sidebar{ background: #ffffff; border-right: 1px solid rgba(0,0,0,.08); }
.kv-sidebar-inner{ min-height: 100%; }

/* Sidebar desktop: sempre visível e com scroll interno */
@media (min-width: 992px){
  .kv-sidebar{
    position: sticky;
    top: 56px; /* altura do navbar */
    height: calc(100vh - 56px);
    overflow-y: auto;
  }
}

/* Sidebar/menu links */
.kv-sidebar .list-group-item{
  border: 0;
  border-radius: 12px;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
}
.kv-sidebar .list-group-item i{
  opacity: .9;
}
.kv-sidebar .list-group-item.active{ background: rgba(13,110,253,.12); color: #0d6efd; font-weight: 600; }
.kv-card{ border: 0; border-radius: 16px; box-shadow: 0 10px 24px rgba(0,0,0,.06); }
.kv-badge-paid{ background: rgba(25,135,84,.12); color: #198754; border: 1px solid rgba(25,135,84,.25); }
.kv-badge-pending{ background: rgba(255,193,7,.12); color: #b58100; border: 1px solid rgba(255,193,7,.25); }

/* Offcanvas (menu mobile) */
.kv-offcanvas .offcanvas-header{
  background: linear-gradient(90deg, #0b2239 0%, #0d6efd 100%);
  color: #fff;
}
.kv-offcanvas .btn-close{ filter: invert(1); }

/* Tabelas: cabeçalho fixo quando houver scroll interno */
.table thead th{ position: sticky; top: 0; background: #f8f9fa; z-index: 1; }

/* Impede overflow horizontal no mobile */
html, body{ max-width: 100%; overflow-x: hidden; }
.kv-main{ min-width: 0; }
img, svg, canvas, video{ max-width: 100%; height: auto; }

@media (max-width: 991.98px){
  .container-fluid{ padding-left: 12px; padding-right: 12px; }
}

@media (max-width: 575.98px){
  body{ font-size: 15px; }
  .btn{ padding: .55rem .85rem; }
  .form-control, .form-select{ min-height: 44px; }
  .input-group .btn{ min-height: 44px; }
  .kv-card{ border-radius: 14px; }
  .table td, .table th{ font-size: 13px; }
}

/* Utilitário: bloco de “metadados” dentro da célula de título (mobile) */
.kv-mobile-meta{ display: none; }
@media (max-width: 767.98px){
  .kv-mobile-meta{ display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
}
