:root{
  --cm-mamey: #E07A34;
  --cm-mamey-claro: #F2A05C;
  --cm-mamey-oscuro: #B85F24;
  --cm-negro: #1A1A1A;
  --cm-negro-suave: #2A2A2A;
  --cm-gris: #f4f5f9;
  --cm-borde: #e2e2e2;
  /* Alias retro-compatibles: algunas vistas todavia usan var(--cm-azul)/var(--cm-rojo) inline */
  --cm-azul: var(--cm-negro);
  --cm-azul-claro: var(--cm-negro-suave);
  --cm-rojo: var(--cm-mamey);
}

body{
  background: var(--cm-gris);
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
  color: #23263a;
}

/* ---------- Layout shell ---------- */
.cm-shell{ display:flex; min-height:100vh; }

.cm-sidebar{
  width: 260px;
  background: linear-gradient(180deg, var(--cm-negro) 0%, #000000 100%);
  color: #fff;
  position: fixed;
  top:0; bottom:0; left:0;
  overflow-y:auto;
  transition: transform .25s ease;
  z-index: 1030;
}
.cm-brand{ padding: 16px 16px 14px; border-bottom: 1px solid rgba(255,255,255,.12); display:flex; justify-content:center; }
.cm-brand-logo-full{ width:100%; max-width:210px; max-height:150px; object-fit:contain; background:#fff; border-radius:10px; padding:8px; }
.cm-brand-logo{ height: 42px; width: 42px; object-fit: contain; border-radius: 8px; background:#fff; padding:3px; }
.cm-brand-text{ line-height:1.15; }
.cm-brand-coordina{ font-weight:800; font-size:1.15rem; color:#fff; }
.cm-brand-moto{ font-weight:800; font-size:1.15rem; color:var(--cm-mamey-claro); }
.cm-brand-sub{ font-size:.68rem; letter-spacing:.05em; color:#c9c9c9; margin-top:2px; }

.cm-nav{ padding: 10px 10px 30px; }
.cm-nav .nav-link{
  color:#d6d6d6;
  border-radius:8px;
  padding:.6rem .8rem;
  margin-bottom:2px;
  font-size:.92rem;
}
.cm-nav .nav-link i{ width:22px; display:inline-block; }
.cm-nav .nav-link:hover{ background: rgba(255,255,255,.08); color:#fff; }
.cm-nav .nav-link.active{ background: var(--cm-mamey); color:#fff; }

.cm-main{ margin-left:260px; flex:1; min-width:0; }
.cm-topbar{
  background:#fff; border-bottom:1px solid var(--cm-borde);
  padding: .7rem 1.4rem; position: sticky; top:0; z-index:1020;
}
.cm-content{ padding: 1.4rem; }
.cm-user{ text-decoration:none; color:#23263a; font-size:.9rem; }
.cm-badge-rol{ background: var(--cm-negro); margin-left:6px; }
.cm-toggle{ border:1px solid var(--cm-borde); }

/* ---------- Cards / tablas ---------- */
.card{ border:1px solid var(--cm-borde); border-radius: 12px; }
.card-header{ background:#fff; border-bottom:1px solid var(--cm-borde); font-weight:600; }
.table thead th{ background: var(--cm-negro); color:#fff; font-weight:600; border:none; }
.table-hover tbody tr:hover{ background: #fbeee1; }

.btn-cm-primary{ background: var(--cm-negro); border-color: var(--cm-negro); color:#fff; }
.btn-cm-primary:hover{ background: var(--cm-negro-suave); color:#fff; }
.btn-cm-danger{ background: var(--cm-mamey-oscuro); border-color: var(--cm-mamey-oscuro); color:#fff; }
.btn-cm-danger:hover{ opacity:.9; color:#fff; }

/* ---------- Login ---------- */
.cm-login-wrap{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background: radial-gradient(circle at top, #2a2a2a, #000000 65%);
  padding: 20px;
}
.cm-login-card{
  background:#fff; border-radius:16px; padding:2.2rem; width:100%; max-width:400px;
  box-shadow: 0 20px 50px rgba(0,0,0,.4);
}
.cm-login-logo{ display:block; margin:0 auto 14px; height:76px; width:76px; object-fit:contain; }
.cm-login-logo-full{ display:block; margin:0 auto 22px; width:100%; max-width:260px; max-height:320px; object-fit:contain; }
.cm-login-title{ font-weight:800; text-align:center; }
.cm-login-title .mamey{ color: var(--cm-mamey); }

/* ---------- Responsive ---------- */
@media (max-width: 991.98px){
  .cm-sidebar{ transform: translateX(-100%); }
  body.cm-sidebar-open .cm-sidebar{ transform: translateX(0); }
  .cm-main{ margin-left:0; }
}

.kpi-card{ border-radius:14px; color:#fff; padding:1.2rem 1.4rem; }
.kpi-card h2{ font-weight:800; margin-bottom:0; }
.kpi-mamey{ background: linear-gradient(135deg, var(--cm-mamey), var(--cm-mamey-oscuro)); }
.kpi-negro{ background: linear-gradient(135deg, var(--cm-negro-suave), #000000); }
.kpi-mamey-claro{ background: linear-gradient(135deg, var(--cm-mamey-claro), var(--cm-mamey)); }
.kpi-gris{ background: linear-gradient(135deg, #55555a, #232323); }
/* Alias retro-compatibles por si algun componente todavia usa los nombres anteriores */
.kpi-azul{ background: linear-gradient(135deg, var(--cm-negro-suave), #000000); }
.kpi-rojo{ background: linear-gradient(135deg, var(--cm-mamey), var(--cm-mamey-oscuro)); }
.kpi-verde{ background: linear-gradient(135deg, var(--cm-mamey-claro), var(--cm-mamey)); }
