.cgc-dashboard-wrap{
  max-width:1280px;
  margin:24px auto;
  padding:0 16px;
  font-family:Arial,sans-serif;
  color:#0f172a;
}

/* HEADER */
.cgc-dashboard-header{
  margin-bottom:18px;
}

.cgc-dashboard-title{
  margin:0;
  font-size:28px;
  font-weight:700;
}

/* FILTROS */
.cgc-dashboard-filtros{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-bottom:20px;
  padding:18px;
  background:#fff;
  border-radius:16px;
  border:1px solid #e5e7eb;
  box-shadow:0 6px 24px rgba(15,23,42,.04);
}

.cgc-filtro{
  display:flex;
  flex-direction:column;
}

.cgc-filtro label{
  font-size:12px;
  font-weight:700;
  color:#64748b;
  margin-bottom:6px;
}

.cgc-filtro select,
.cgc-filtro input{
  padding:10px 12px;
  border-radius:10px;
  border:1px solid #dbe4f0;
  font-size:13px;
}

/* KPI */
.cgc-dashboard-kpis{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-bottom:20px;
}

.cgc-kpi{
  background:#fff;
  border-radius:16px;
  padding:16px;
  border:1px solid #e5e7eb;
  box-shadow:0 6px 24px rgba(15,23,42,.04);
}

.cgc-kpi-label{
  display:block;
  font-size:12px;
  color:#64748b;
  margin-bottom:6px;
}

.cgc-kpi strong{
  font-size:22px;
}

/* TABLA */
.cgc-dashboard-agenda{
  background:#fff;
  border-radius:16px;
  border:1px solid #e5e7eb;
  box-shadow:0 6px 24px rgba(15,23,42,.04);
  padding:16px;
}

.cgc-agenda-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}

.cgc-agenda-table thead th{
  background:#f8fafc;
  padding:12px;
  text-align:left;
  border-bottom:1px solid #e2e8f0;
}

.cgc-agenda-table tbody th{
  background:#f8fafc;
  padding:12px;
  width:140px;
  border-right:1px solid #e2e8f0;
}

.cgc-agenda-table td{
  padding:12px;
  border-top:1px solid #f1f5f9;
  min-height:80px;
  vertical-align:top;
}

/* RESPONSIVE */
@media (max-width: 900px){
  .cgc-dashboard-filtros{
    grid-template-columns:1fr;
  }

  .cgc-dashboard-kpis{
    grid-template-columns:1fr;
  }
}

.cgc-card{
  border-radius:12px;
  padding:10px 10px 10px 12px;
  font-size:13px;
  margin-bottom:8px;
  border-left:4px solid transparent;
  cursor: pointer;
  transition:all .15s ease;
}

.cgc-card:hover{
  transform:translateY(-2px);
  box-shadow: 0 8px 18px rgba(15,23,42,.12);
}

.cgc-card-asesor{
  font-size:11px;
  font-weight:700;
  color:#1e3a8a;
  margin-bottom:4px;
}

/* MODAL */
.cgc-modal{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100%;
  z-index:999;
}

.cgc-modal-backdrop{
  position:absolute;
  width:100%;
  height:100%;
  background:rgba(15,23,42,.6);
}

.cgc-modal-dialog{
  position:relative;
  max-width:420px;
  margin:80px auto;
  background:#fff;
  border-radius:16px;
  padding:20px;
  z-index:2;
  box-shadow:0 20px 60px rgba(15,23,42,.2);
  animation:cgcFadeIn .2s ease;
}

@keyframes cgcFadeIn{
  from{
    transform:translateY(10px);
    opacity:0;
  }
  to{
    transform:translateY(0);
    opacity:1;
  }
}

.cgc-modal{
  position:fixed;
  inset:0;
  z-index:9999;
}

.cgc-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.42);
}

.cgc-modal-dialog{
  position:relative;
  max-width:420px;
  margin:80px auto;
  background:#fff;
  border-radius:16px;
  padding:20px;
  z-index:2;
  box-shadow:0 20px 60px rgba(15,23,42,.20);
  animation:cgcFadeIn .2s ease;
}

.cgc-modal-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:12px;
}

.cgc-modal-header h3{
  margin:0;
  font-size:18px;
  color:#0f172a;
}

.cgc-modal-close{
  width:34px;
  height:34px;
  border:none;
  border-radius:999px;
  background:#e2e8f0;
  color:#0f172a;
  font-size:20px;
  font-weight:700;
  line-height:34px;
  text-align:center;
  cursor:pointer;
  padding:0;
}

.cgc-modal-close:hover{
  background:#cbd5e1;
}

.cgc-modal-body{
  font-size:14px;
  margin-bottom:16px;
  color:#334155;
}

.cgc-modal-actions{
  display:flex;
  gap:10px;
}

/* ===== TABS ===== */
.cgc-dashboard-tabs{
  display:flex;
  gap:10px;
  margin-bottom:16px;
}

.cgc-tab-btn{
  padding:10px 16px;
  border-radius:10px;
  border:1px solid #e5e7eb;
  background:#f8fafc;
  cursor:pointer;
  font-weight:700;
  font-size:13px;
  color:#334155;
  transition:all .15s ease;
}

.cgc-tab-btn:hover{
  background:#e2e8f0;
}

.cgc-tab-btn.is-active{
  background:#0f172a;
  color:#fff;
  border-color:#0f172a;
}

/* ===== VISTA MES ===== */
.cgc-vista-mes-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:10px;
}

.cgc-mes-dia{
  min-height:100px;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:6px;
  font-size:12px;
  position:relative;
}

/* número del día (lo agregaremos después dinámico) */
.cgc-mes-dia::before{
  content:attr(data-dia);
  position:absolute;
  top:6px;
  right:8px;
  font-size:11px;
  color:#94a3b8;
  font-weight:700;
}

/* tarjetas compactas en mes */
.cgc-card-mini{
  background:#e2e8f0;
  border-radius:8px;
  padding:4px 6px;
  font-size:11px;
  margin-top:4px;
  line-height:1.2;
  cursor:pointer;
}

.cgc-card-fecha{
  font-size:11px;
  font-weight:700;
  color:#475569;
  margin-bottom:4px;
}

.cgc-btn:disabled{
  opacity:.5;
  cursor:not-allowed;
}

.cgc-card-estado{
  display:inline-block;
  font-size:11px;
  font-weight:700;
  padding:3px 8px;
  border-radius:999px;
  margin-bottom:6px;
  border:1px solid transparent;
}

.cgc-estado-planificada{
  background:#fef3c7;
  color:#92400e;
  border-color:#fcd34d;
}

.cgc-estado-terminada{
  background:#dcfce7;
  color:#166534;
  border-color:#86efac;
}

.cgc-estado-cancelada{
  background:#fee2e2;
  color:#991b1b;
  border-color:#fca5a5;
}

.cgc-vista-mes-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:12px;
}

.cgc-vista-mes-header h3{
  margin:0;
  font-size:18px;
  font-weight:700;
  color:#0f172a;
}