.cop-agenda-home {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: 18px clamp(16px, 2.2vw, 38px) 0;
  box-sizing: border-box;
}
.cop-agenda-layout {
  display: grid;
  grid-template-columns: minmax(270px, .48fr) minmax(0, 1fr);
  align-items: stretch;
  gap: 14px;
}
.cop-home-access, .cop-home-agenda { min-width: 0; }
.cop-quick-access { padding: 22px; }
.cop-quick-access__list { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.cop-agenda__content { grid-template-columns: minmax(350px, .82fr) minmax(0, 1.18fr); gap: 20px; }
.cop-agenda__events { max-height: 390px; }
@media (max-width: 980px) {
  .cop-agenda__content { grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr); gap: 14px; }
}
@media (max-width: 760px) {
  .cop-agenda-home { padding: 12px 14px 0; }
  .cop-agenda-layout { grid-template-columns: minmax(0, 1fr); }
  .cop-agenda__content { grid-template-columns: 1fr; }
}

.cop-agenda {
  --cop-agenda-navy: #07365f;
  --cop-agenda-teal: #087d96;
  --cop-agenda-border: #e5edf2;
  --cop-agenda-blue: #1684f8;
  --cop-agenda-green: #43a95b;
  --cop-agenda-orange: #ff8a00;
  --cop-agenda-red: #d51f39;
  padding: 22px;
  border: 1px solid #edf2f5;
  border-radius: 14px;
  background: linear-gradient(145deg, #fff 0%, #fbfcfd 100%);
  box-shadow: 0 8px 26px rgba(9, 52, 82, .06);
  color: var(--cop-agenda-navy);
  box-sizing: border-box;
}
.cop-agenda * { box-sizing: border-box; }
.cop-agenda__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.cop-agenda__heading { display: flex; align-items: flex-start; gap: 15px; }
.cop-agenda__calendar-icon { display: grid; flex: 0 0 62px; width: 62px; height: 62px; place-items: center; border-radius: 50%; background: #e7f6fa; color: var(--cop-agenda-teal); }
.cop-agenda__calendar-icon svg { width: 34px; height: 34px; }
.cop-agenda__heading h2 { margin: 0; color: var(--cop-agenda-navy); font-size: clamp(1.5rem, 2vw, 2rem); line-height: 1.2; font-weight: 700; }
.cop-agenda__rule { display: inline-block; width: 40px; height: 4px; margin: 8px 8px 0 0; border-radius: 4px; background: var(--cop-agenda-teal); vertical-align: middle; }
.cop-agenda__heading p { display: inline; margin: 0; color: #53657b; font-size: 13px; }
.cop-agenda__all { display: inline-flex; align-items: center; justify-content: center; gap: 9px; flex: 0 0 auto; padding: 10px 14px; border-radius: 8px; background: var(--cop-agenda-teal); color: #fff; font-size: 13px; text-decoration: none; }
.cop-agenda__all:hover, .cop-agenda__all:focus-visible { background: #06677d; color: #fff; text-decoration: none; }
.cop-agenda__all:focus-visible, .cop-calendar button:focus-visible, .cop-calendar__day:focus-visible { outline: 3px solid #75c7dc; outline-offset: 2px; }
.cop-agenda__content { display: grid; grid-template-columns: minmax(290px, 1fr) minmax(300px, .94fr); gap: 18px; align-items: stretch; }
.cop-calendar { min-width: 0; }
.cop-calendar__toolbar { display: grid; grid-template-columns: 40px minmax(0, 1fr) 40px auto; align-items: center; min-height: 43px; border: 1px solid var(--cop-agenda-border); border-radius: 9px 9px 0 0; background: #fbfcfd; }
.cop-calendar__month { margin: 0; text-align: center; color: var(--cop-agenda-navy); font-size: 18px; font-weight: 700; }
.cop-calendar__nav, .cop-calendar__today { border: 0; cursor: pointer; color: var(--cop-agenda-navy); }
.cop-calendar__nav { height: 40px; background: transparent; font-size: 28px; line-height: 1; }
.cop-calendar__today { margin: 0 5px; padding: 7px 10px; border-radius: 7px; background: #eef4f7; font-size: 13px; font-weight: 700; }
.cop-calendar__grid { border: 1px solid var(--cop-agenda-border); border-top: 0; border-radius: 0 0 9px 9px; overflow: hidden; }
.cop-calendar__weekday { display: inline-grid; width: 14.2857%; height: 32px; place-items: center; border-bottom: 1px solid var(--cop-agenda-border); background: #fbfcfd; color: #53657b; font-size: 12px; font-weight: 700; }
.cop-calendar__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cop-calendar__day { position: relative; display: flex; min-width: 0; min-height: 48px; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border: 0; border-right: 1px solid #edf1f4; border-bottom: 1px solid #edf1f4; background: #fff; color: var(--cop-agenda-navy); cursor: pointer; font: inherit; font-size: 14px; }
.cop-calendar__day:nth-child(7n) { border-right: 0; }
.cop-calendar__day--outside { color: #aab2bb; background: #fafbfc; }
.cop-calendar__day--today .cop-calendar__number { font-weight: 800; }
.cop-calendar__day--selected .cop-calendar__number { display: grid; width: 37px; height: 37px; place-items: center; border-radius: 50%; background: var(--cop-agenda-teal); color: #fff; }
.cop-calendar__day--today:not(.cop-calendar__day--selected) .cop-calendar__number { display: grid; width: 34px; height: 34px; place-items: center; border: 2px solid #c8e7f0; border-radius: 50%; }
.cop-calendar__markers { display: flex; min-height: 5px; justify-content: center; gap: 3px; }
.cop-calendar__marker { width: 7px; height: 7px; border-radius: 50%; }
.cop-calendar__marker--training, .cop-agenda__dot--training { background: var(--cop-agenda-blue); }
.cop-calendar__marker--college, .cop-agenda__dot--college { background: var(--cop-agenda-green); }
.cop-calendar__marker--event, .cop-agenda__dot--event { background: var(--cop-agenda-orange); }
.cop-calendar__marker--holiday, .cop-agenda__dot--holiday { background: var(--cop-agenda-red); }
.cop-calendar__status { min-height: 18px; margin: 6px 2px 0; color: #69798c; font-size: 11px; }
.cop-agenda__day { min-width: 0; border: 1px solid var(--cop-agenda-border); border-radius: 10px; background: #fff; overflow: hidden; }
.cop-agenda__day-title { margin: 0; padding: 10px 12px; border-bottom: 1px solid var(--cop-agenda-border); color: var(--cop-agenda-navy); font-size: 15px; font-weight: 700; }
.cop-agenda__events { max-height: 330px; overflow-y: auto; padding: 0 10px; }
.cop-agenda__event { display: grid; grid-template-columns: 54px minmax(0, 1fr) 18px; gap: 11px; align-items: start; padding: 12px 2px; border-bottom: 1px solid #edf1f4; color: inherit; text-decoration: none; }
.cop-agenda__event:last-child { border-bottom: 0; }
.cop-agenda__event:hover, .cop-agenda__event:focus-visible { color: inherit; text-decoration: none; background: #fbfdfe; }
.cop-agenda__event-date { display: grid; min-height: 52px; place-items: center; border-radius: 8px; background: #f2f7fa; color: var(--cop-agenda-navy); font-size: 12px; font-weight: 700; }
.cop-agenda__event-copy { min-width: 0; }
.cop-agenda__event-title { display: block; margin: 1px 0 7px; color: var(--cop-agenda-navy); font-size: 13px; line-height: 1.35; font-weight: 700; }
.cop-agenda__event-type { display: inline-block; padding: 3px 8px; border-radius: 12px; background: #e4f1ff; color: #075dae; font-size: 10px; }
.cop-agenda__event-type--event { background: #fff0dc; color: #8b4b00; }
.cop-agenda__event-description { display: block; margin-top: 7px; color: #53657b; font-size: 12px; line-height: 1.4; }
.cop-agenda__event-image { display: block; max-width: 100%; max-height: 90px; margin-top: 8px; border-radius: 6px; object-fit: cover; }
.cop-agenda__event-arrow { align-self: center; color: var(--cop-agenda-navy); font-size: 23px; }
.cop-agenda__empty { margin: 0; padding: 24px 12px; color: #69798c; text-align: center; font-size: 13px; }
.cop-agenda__legend { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 14px; margin: 10px 2px 0; padding: 0; list-style: none; color: #53657b; font-size: 11px; }
.cop-agenda__legend li { display: inline-flex; align-items: center; gap: 6px; }
.cop-agenda__dot { width: 10px; height: 10px; border-radius: 50%; }
@media (max-width: 1100px) {
  .cop-agenda__content { grid-template-columns: minmax(260px, 1fr) minmax(260px, 1fr); gap: 12px; }
  .cop-agenda { padding: 18px; }
  .cop-agenda__all { padding: 9px 11px; }
}
@media (max-width: 760px) {
  .cop-agenda__header { flex-wrap: wrap; }
  .cop-agenda__content { grid-template-columns: 1fr; }
  .cop-agenda__events { max-height: none; }
  .cop-agenda__legend { justify-content: flex-start; }
}
@media (max-width: 480px) {
  .cop-agenda { padding: 15px; }
  .cop-agenda__heading { gap: 10px; }
  .cop-agenda__calendar-icon { flex-basis: 48px; width: 48px; height: 48px; }
  .cop-agenda__calendar-icon svg { width: 27px; height: 27px; }
  .cop-agenda__heading p { display: block; margin-top: 4px; line-height: 1.35; }
  .cop-agenda__rule { display: block; margin: 7px 0 0; }
  .cop-calendar__toolbar { grid-template-columns: 34px minmax(0, 1fr) 34px auto; }
  .cop-calendar__month { font-size: 16px; }
  .cop-calendar__day { min-height: 43px; font-size: 12px; }
  .cop-agenda__legend { gap: 8px 11px; font-size: 10px; }
}

/* Disposición específica de index2: accesos a la izquierda y agenda ampliada a la derecha. */
body.cop-index2 .cop-agenda-home {
  width: 100%;
  max-width: none;
  padding: 18px clamp(16px, 2vw, 36px) 0;
}
body.cop-index2 .cop-agenda-layout {
  display: grid;
  grid-template-columns: minmax(270px, .46fr) minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
}
body.cop-index2 .cop-home-access,
body.cop-index2 .cop-home-agenda { min-width: 0; }
body.cop-index2 .cop-quick-access { height: 100%; }
body.cop-index2 .cop-quick-access__list { grid-template-columns: minmax(0, 1fr); }
body.cop-index2 .cop-agenda__content {
  grid-template-columns: minmax(250px, .95fr) minmax(250px, 1.05fr);
  gap: 14px;
}
@media (max-width: 980px) {
  body.cop-index2 .cop-agenda__content { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  body.cop-index2 .cop-agenda-home { padding: 12px 14px 0; }
  body.cop-index2 .cop-agenda-layout { grid-template-columns: minmax(0, 1fr); }
  body.cop-index2 .cop-agenda__content { grid-template-columns: minmax(0, 1fr); }
}

/* El panel de actividades empieza arriba, junto al título de la agenda. */
body.cop-index2 .cop-agenda__layout {
  display: grid;
  grid-template-columns: minmax(250px, .92fr) minmax(260px, 1.08fr);
  gap: 16px;
  align-items: stretch;
}
body.cop-index2 .cop-agenda__calendar-column { min-width: 0; }
body.cop-index2 .cop-agenda__header { margin-bottom: 12px; }
body.cop-index2 .cop-agenda__day { align-self: stretch; }
body.cop-index2 .cop-agenda__events { max-height: 440px; }
@media (max-width: 980px) {
  body.cop-index2 .cop-agenda__layout { grid-template-columns: minmax(0, 1fr); }
  body.cop-index2 .cop-agenda__events { max-height: 390px; }
}
@media (max-width: 760px) {
  body.cop-index2 .cop-agenda__layout { grid-template-columns: minmax(0, 1fr); }
  body.cop-index2 .cop-agenda__events { max-height: none; }
}
