/* Actividades: calendario mensual, independiente del Cronograma. */
#view-actividades { min-width: 0; }
#view-cronograma .cronograma-layout { grid-template-columns: minmax(0, 1fr); }
#view-actividades * { box-sizing: border-box; }
.activities-page { display: grid; gap: 20px; padding-bottom: 110px; color: #1a2d37; }
.activities-header { display: flex; justify-content: space-between; align-items: end; gap: 20px; }
.activities-heading .eyebrow { margin: 0 0 5px; color: #086970; font-size: 11px; font-weight: 850; letter-spacing: .15em; }
.activities-heading h2 { margin: 0; color: #192b38; font-size: clamp(32px, 4vw, 46px); line-height: 1.08; letter-spacing: -.045em; }
.activities-heading > p:last-child { margin: 7px 0 0; color: #607481; font-size: 15px; }
.activities-manage { flex: none; min-height: 42px; margin: 0; padding: 0 17px; border: 0; border-radius: 13px; background: #0b3e43; color: #fff; font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; }
.activities-manage:hover { background: #086970; }
.activities-calendar { min-width: 0; overflow: hidden; border: 1px solid #dbe8e9; border-radius: 26px; background: #fff; box-shadow: 0 14px 36px rgba(12, 49, 58, .07); }
.activities-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 20px 22px; border-bottom: 1px solid #e5edef; }
.activities-month-controls { display: flex; align-items: center; gap: 8px; min-width: 0; }
.activities-month-controls h3 { min-width: 0; margin: 0 0 0 12px; color: #1a2d37; font-size: clamp(20px, 2.2vw, 28px); line-height: 1.2; white-space: nowrap; }
.activities-today, .activities-month-arrow, .activities-undated { display: inline-grid; place-items: center; flex: none; min-height: 38px; margin: 0; padding: 0 13px; border: 1px solid #d4e4e6; border-radius: 12px; background: #fff; color: #0b555d; font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; }
.activities-month-arrow { width: 38px; padding: 0; font-size: 26px; line-height: 1; }
.activities-today:hover, .activities-month-arrow:hover, .activities-undated:hover { border-color: #0097a3; background: #effafa; }
.activities-toolbar-meta { display: flex; align-items: center; gap: 10px; color: #657985; font-size: 13px; white-space: nowrap; }
.activities-undated { min-height: 33px; padding: 0 10px; color: #76551d; border-color: #ead7a6; background: #fff9e8; font-size: 12px; }
.activities-weekdays, .activities-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.activities-weekdays { border-bottom: 1px solid #e5edef; background: #f7fafb; }
.activities-weekdays span { padding: 12px 8px; color: #607481; font-size: 12px; font-weight: 850; text-align: center; text-transform: uppercase; }
.activities-day { position: relative; display: flex; flex-direction: column; align-items: stretch; gap: 8px; min-width: 0; min-height: 132px; margin: 0; padding: 9px; border: 0; border-right: 1px solid #e9eff0; border-bottom: 1px solid #e9eff0; border-radius: 0; background: #fff; color: #1a2d37; font: inherit; text-align: left; cursor: pointer; }
.activities-day:nth-child(7n) { border-right: 0; }
.activities-day:hover, .activities-day:focus-visible { background: #f1faf9; outline: 0; }
.activities-day:focus-visible { box-shadow: inset 0 0 0 2px #0097a3; }
.activities-day.is-outside { background: #fafcfc; }
.activities-day.is-outside .activities-day-number { color: #a6b4ba; }
.activities-day-number { display: inline-grid; place-items: center; align-self: flex-end; width: 28px; height: 28px; border-radius: 50%; font-size: 13px; font-weight: 750; }
.activities-day.is-today .activities-day-number { background: #086970; color: #fff; }
.activities-day-events { display: grid; gap: 4px; min-width: 0; }
.activities-event { display: block; min-width: 0; overflow: hidden; padding: 4px 6px; border-radius: 7px; color: #064f54; background: #d8f4ee; font-size: 11px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.activities-event.is-range-start:not(.is-range-single) { position: relative; z-index: 3; overflow: visible; margin-right: -10px; border-radius: 7px 0 0 7px; }
.activities-event.is-range-middle { position: relative; z-index: 1; margin-inline: -10px; border-radius: 0; }
.activities-event.is-range-end:not(.is-range-single) { position: relative; z-index: 1; margin-left: -10px; border-radius: 0 7px 7px 0; }
.activities-event-caption { display: block; width: var(--range-caption-width, 100%); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.activity-color-1.activities-event { background: #e5edff; color: #3a4e9c; }
.activity-color-2.activities-event { background: #fff0dc; color: #86591b; }
.activity-color-3.activities-event { background: #f0e8ff; color: #6a4a9d; }
.activity-color-turquesa.activities-event { background: #c9f1e9; color: #07555c; }
.activity-color-azul.activities-event { background: #c9d9ff; color: #243f86; }
.activity-color-naranja.activities-event { background: #ffc789; color: #633600; }
.activity-color-violeta.activities-event { background: #e5d1ff; color: #542a83; }
.activity-color-verde.activities-event { background: #c7efd4; color: #215235; }
.activity-color-rosa.activities-event { background: #ffd1e0; color: #7d2d50; }
.activity-color-amarillo.activities-event { background: #ffe58a; color: #664900; }
.activities-more-events { color: #506b75; font-size: 11px; font-weight: 750; }
.activities-mobile-count { display: none; }
.activities-loading { display: grid; place-items: center; gap: 10px; min-height: 280px; padding: 24px; border: 1px solid #dbe8e9; border-radius: 24px; background: #fff; color: #086970; font-size: 16px; font-weight: 750; text-align: center; }
.activities-error { color: #1a2d37; }
.activities-error span { color: #607481; font-size: 14px; font-weight: 500; }
.activities-error button { min-height: 40px; padding: 0 15px; border: 0; border-radius: 10px; background: #0b3e43; color: #fff; font: inherit; cursor: pointer; }
.activities-dialog { position: fixed; inset: 0; z-index: 12000; display: grid; place-items: center; padding: 16px; }
.activities-dialog-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; border: 0; border-radius: 0; background: rgba(6, 31, 35, .68); cursor: default; }
.activities-dialog-panel { position: relative; width: min(500px, 100%); max-height: calc(100dvh - 32px); overflow-y: auto; border-radius: 22px; background: #fff; box-shadow: 0 22px 70px rgba(0, 0, 0, .28); color: #1a2d37; }
.activities-dialog-panel > header { display: flex; justify-content: space-between; align-items: start; gap: 15px; padding: 22px 24px; border-bottom: 1px solid #e6eeef; }
.activities-dialog-panel > header span { color: #086970; font-size: 11px; font-weight: 900; letter-spacing: .14em; }
.activities-dialog-panel h3 { margin: 5px 0 0; color: #1a2d37; font-size: 23px; line-height: 1.2; }
.activities-dialog-close { display: grid; place-items: center; flex: none; width: 38px; height: 38px; margin: 0; padding: 0; border: 0; border-radius: 11px; background: #eff5f6; color: #234550; font-size: 26px; cursor: pointer; }
.activities-dialog-body { display: grid; gap: 12px; padding: 20px 24px 25px; }
.activity-detail { display: grid; grid-template-columns: 5px minmax(0, 1fr); gap: 13px; padding: 14px; border: 1px solid #e4ecee; border-radius: 14px; background: #f8fbfb; }
.activity-detail-accent { border-radius: 99px; background: #00b686; }
.activity-detail.activity-color-1 .activity-detail-accent { background: #7996e4; }
.activity-detail.activity-color-2 .activity-detail-accent { background: #e9b667; }
.activity-detail.activity-color-3 .activity-detail-accent { background: #a882d5; }
.activity-detail.activity-color-turquesa .activity-detail-accent { background: #00a9a0; }
.activity-detail.activity-color-azul .activity-detail-accent { background: #5275e6; }
.activity-detail.activity-color-naranja .activity-detail-accent { background: #ee8a22; }
.activity-detail.activity-color-violeta .activity-detail-accent { background: #925bd2; }
.activity-detail.activity-color-verde .activity-detail-accent { background: #36a469; }
.activity-detail.activity-color-rosa .activity-detail-accent { background: #d35d8c; }
.activity-detail.activity-color-amarillo .activity-detail-accent { background: #d29d1d; }
.activity-detail strong { display: block; color: #1a2d37; font-size: 17px; overflow-wrap: anywhere; }
.activity-detail time { display: block; margin-top: 4px; color: #086970; font-size: 13px; font-weight: 750; }
.activity-detail-time { display: block; margin-top: 5px; color: #0b3e43; font-size: 13px; font-weight: 850; }
.activity-detail-recurrence { display: block; margin-top: 5px; color: #526873; font-size: 12px; font-weight: 750; }
.activity-detail p { margin: 10px 0 0; color: #526873; font-size: 14px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.activity-detail-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 13px; }
.activity-detail-actions button, .activity-time-form button { min-height: 36px; padding: 7px 11px; border: 1px solid #9bcfd0; border-radius: 10px; background: #ebf8f8; color: #0b3e43; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.activity-detail-actions .activity-detail-exclude { border-color: #edcaca; background: #fff2f1; color: #9a3535; }
.activity-time-form { display: flex; flex-wrap: wrap; align-items: end; gap: 8px; margin-top: 12px; padding: 12px; border: 1px solid #dbe8e9; border-radius: 12px; background: #fff; }
.activity-time-form label { display: grid; gap: 4px; color: #526873; font-size: 12px; font-weight: 800; }
.activity-time-form input { min-height: 36px; max-width: 130px; padding: 5px 8px; border: 1px solid #cfdddf; border-radius: 8px; background: #fff; color: #1a2d37; font: inherit; }
.activity-time-form p { flex-basis: 100%; margin: 0; color: #9a3535; font-size: 12px; }
.activities-dialog-empty { color: #607481; }
#view-admin .activities-recurrence-hint, #view-admin .activities-date-hint { display: block; margin-top: 6px; color: #607481; font-size: 12px; line-height: 1.45; }
#view-admin .anuncio-admin-form .cronograma-field > span { color: #506a76; }
#view-admin .anuncio-admin-recurrence { display: block; margin-top: 5px; color: #086970; font-size: 12px; font-weight: 750; }
#view-admin .anuncio-admin-form .cronograma-field > .activities-color-preview { --activity-swatch: #00a9a0; display: inline-flex; align-items: center; gap: 8px; justify-self: start; min-height: 30px; padding: 4px 10px; border: 1px solid #d4e4e6; border-radius: 99px; background: #f5fbfb; color: #0b3e43; font-size: 12px; font-weight: 750; letter-spacing: normal; text-transform: none; }
#view-admin .activities-color-preview i, #view-admin .anuncio-admin-color-badge i { flex: none; width: 13px; height: 13px; border-radius: 50%; background: var(--activity-swatch); box-shadow: inset 0 0 0 1px #0001; }
#view-admin .activities-color-preview strong { font: inherit; }
#view-admin .activities-color-preview[data-color="automatico"] { --activity-swatch: #9eafb5; }
#view-admin :is(.activities-color-preview,.anuncio-admin-color-badge)[data-color="turquesa"] { --activity-swatch: #00a9a0; }
#view-admin :is(.activities-color-preview,.anuncio-admin-color-badge)[data-color="azul"] { --activity-swatch: #5275e6; }
#view-admin :is(.activities-color-preview,.anuncio-admin-color-badge)[data-color="naranja"] { --activity-swatch: #ee8a22; }
#view-admin :is(.activities-color-preview,.anuncio-admin-color-badge)[data-color="violeta"] { --activity-swatch: #925bd2; }
#view-admin :is(.activities-color-preview,.anuncio-admin-color-badge)[data-color="verde"] { --activity-swatch: #36a469; }
#view-admin :is(.activities-color-preview,.anuncio-admin-color-badge)[data-color="rosa"] { --activity-swatch: #d35d8c; }
#view-admin :is(.activities-color-preview,.anuncio-admin-color-badge)[data-color="amarillo"] { --activity-swatch: #d29d1d; }
#view-admin .anuncio-admin-color-badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 8px; border: 1px solid #d4e4e6; border-radius: 99px; color: #435d65; background: #f5fbfb; font-size: 11px; font-weight: 750; white-space: nowrap; }
#view-admin .anuncio-admin-exceptions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 9px; }
#view-admin .anuncio-admin-exceptions small { color: #526873; font-size: 12px; font-weight: 800; }
#view-admin .anuncio-admin-exceptions button { min-height: 30px; margin: 0; padding: 4px 8px; border: 1px solid #cfe2e2; border-radius: 8px; background: #f3fafa; color: #0b3e43; font-size: 11px; font-weight: 800; cursor: pointer; }
#view-admin .anuncio-admin-row-actions { display: flex; flex-wrap: wrap; justify-content: end; gap: 7px; }
#view-admin .anuncio-admin-row-actions button { min-height: 38px; margin: 0; padding: 0 11px; border-radius: 11px; font-size: 12px; font-weight: 750; }
#view-admin #cancelEditAnuncioBtn[hidden] { display: none; }
@media (max-width: 850px) {
  .activities-toolbar { flex-wrap: wrap; }
  .activities-toolbar-meta { width: 100%; justify-content: flex-start; }
  .activities-day { min-height: 100px; padding: 6px; }
}
@media (max-width: 600px) {
  .activities-page { gap: 14px; }
  .activities-header { align-items: start; flex-wrap: wrap; padding: 0 2px; }
  .activities-heading h2 { font-size: 35px; }
  .activities-heading > p:last-child { font-size: 13px; }
  .activities-manage { width: 100%; }
  .activities-calendar { border-radius: 20px; }
  .activities-toolbar { padding: 14px 12px 10px; }
  .activities-month-controls { flex-wrap: wrap; gap: 6px; width: 100%; }
  .activities-month-controls h3 { order: -1; flex-basis: 100%; margin: 0 0 7px; font-size: 22px; }
  .activities-today, .activities-month-arrow { min-height: 36px; }
  .activities-toolbar-meta { font-size: 12px; }
  .activities-weekdays span { padding: 9px 0; font-size: 10px; }
  .activities-day { min-height: 67px; padding: 5px 2px; gap: 5px; align-items: center; }
  .activities-day-number { align-self: center; width: 25px; height: 25px; font-size: 12px; }
  .activities-day-events { display: block; width: 100%; min-height: 5px; margin-top: auto; }
  .activities-day-events .activities-event, .activities-day-events .activities-more-events { display: none; }
  .activities-day-events .activities-event[class*="is-range-"] { display: block; height: 5px; padding: 0; overflow: visible; font-size: 0; }
  .activities-day-events .activities-event.is-range-start:not(.is-range-single) { margin-right: -3px; }
  .activities-day-events .activities-event.is-range-middle { margin-inline: -3px; }
  .activities-day-events .activities-event.is-range-end:not(.is-range-single) { margin-left: -3px; }
  .activities-mobile-count { display: grid; place-items: center; min-width: 19px; height: 19px; padding: 0 4px; border-radius: 99px; background: #d8f4ee; color: #086970; font-size: 10px; font-weight: 850; }
  .activities-dialog-panel > header { padding: 18px; }
  .activities-dialog-body { padding: 17px; }
  #view-admin .anuncio-admin-row-actions { grid-column: 2; justify-content: start; }
}

/* Vista compartida sin el menú ni las herramientas de administración. */
body.public-activities-mode { margin: 0; background: #eef7f7; }
.public-activities-screen { width: min(1160px, 100%); min-height: 100dvh; margin: 0 auto; padding: clamp(16px, 3vw, 36px); color: #1a2d37; }
.public-activities-header { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 22px; padding: 18px 22px; border-radius: 22px; background: #0b3e43; color: #fff; }
.public-activities-header img { width: min(160px, 43vw); max-height: 55px; object-fit: contain; object-position: left center; }
.public-activities-header span { font-size: 11px; font-weight: 850; letter-spacing: .14em; text-align: right; }
.public-activities-calendar .activities-page { padding-bottom: 20px; }
.public-activities-screen > footer { padding: 14px 2px 0; color: #607481; font-size: 12px; text-align: center; }
@media (max-width: 600px) { .public-activities-header { padding: 15px; } .public-activities-header span { font-size: 9px; } }
