/* DentalGenius AI Social calendar refinement.
   Scope intentionally limited to admin AI Social calendar and its post preview modal. */

.dg-ai-social-page .dg-ai-calendar-panel .dg-tw-panel__body {
  padding: 1.15rem !important;
  overflow: visible !important;
}

.dg-ai-social-page .dg-ai-calendar {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(15, 36, 72, .08);
  border-radius: 1.35rem;
  background: rgba(255, 255, 255, .88);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72);
}

.dg-ai-social-page .dg-ai-calendar .fc {
  padding: 1rem 1rem 1.15rem !important;
}

.dg-ai-social-page .dg-ai-calendar .fc-header-toolbar {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin: 0 0 1rem !important;
  padding: .25rem .1rem .95rem !important;
  border-bottom: 1px solid rgba(15, 36, 72, .08);
}

.dg-ai-social-page .dg-ai-calendar .fc-toolbar-chunk {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .45rem;
}

.dg-ai-social-page .dg-ai-calendar .fc-button-group {
  display: inline-flex;
  gap: .38rem;
}

.dg-ai-social-page .dg-ai-calendar .fc-button {
  min-height: 2.35rem !important;
  padding: .55rem .82rem !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #fff !important;
  font-size: .78rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: .01em;
  background: linear-gradient(135deg, #004f7b, #00b8c2) !important;
  box-shadow: 0 .85rem 1.65rem rgba(0, 151, 167, .18) !important;
}

.dg-ai-social-page .dg-ai-calendar .fc-button:hover,
.dg-ai-social-page .dg-ai-calendar .fc-button:focus {
  transform: translateY(-1px);
  box-shadow: 0 1rem 1.9rem rgba(0, 151, 167, .24) !important;
}

.dg-ai-social-page .dg-ai-calendar .fc-button:focus {
  outline: 3px solid rgba(0, 201, 189, .18) !important;
  outline-offset: 2px !important;
}

.dg-ai-social-page .dg-ai-calendar .fc-button-active,
.dg-ai-social-page .dg-ai-calendar .fc-button-primary:not(:disabled).fc-button-active {
  background: linear-gradient(135deg, #071b4d, #004f7b) !important;
}

.dg-ai-social-page .dg-ai-calendar .fc-toolbar-title {
  color: #071b4d !important;
  font-size: clamp(1.15rem, 1.9vw, 1.65rem) !important;
  font-weight: 950 !important;
  letter-spacing: -.035em;
}

.dg-ai-social-page .dg-ai-calendar .fc-scrollgrid {
  overflow: hidden;
  border-radius: 1rem;
}

.dg-ai-social-page .dg-ai-calendar .fc-col-header-cell-cushion,
.dg-ai-social-page .dg-ai-calendar .fc-daygrid-day-number {
  color: #00aeb7 !important;
  font-weight: 850 !important;
  text-decoration: none !important;
}

.dg-ai-social-page .dg-ai-calendar .fc-daygrid-day-frame {
  padding: .22rem !important;
}

.dg-ai-social-page .dg-ai-calendar .fc-event,
.dg-ai-social-page .dg-ai-calendar .fc-h-event,
.dg-ai-social-page .dg-ai-calendar .fc-daygrid-event,
.dg-ai-social-page .dg-ai-calendar .fc-list-event-title a {
  color: #071b4d !important;
  text-decoration: none !important;
}

.dg-ai-social-page .dg-ai-calendar .fc-daygrid-event {
  margin: .12rem .14rem !important;
  padding: .23rem .42rem !important;
  border: 1px solid rgba(0, 201, 189, .24) !important;
  border-radius: .45rem !important;
  background: rgba(199, 246, 243, .96) !important;
  box-shadow: 0 .35rem .9rem rgba(0, 151, 167, .10);
}

.dg-ai-social-page .dg-ai-calendar .fc-daygrid-event:hover {
  border-color: rgba(0, 151, 167, .38) !important;
  background: #dffcf9 !important;
}

.dg-ai-social-page .dg-ai-calendar .fc-event-title,
.dg-ai-social-page .dg-ai-calendar .fc-event-main,
.dg-ai-social-page .dg-ai-calendar .fc-event-main-frame {
  min-width: 0;
  color: #071b4d !important;
  font-weight: 850 !important;
  line-height: 1.22 !important;
}

.dg-ai-social-page .dg-ai-calendar .dg-ai-calendar-event-approved {
  border-color: rgba(16, 185, 129, .28) !important;
  background: rgba(209, 250, 229, .96) !important;
}

.dg-ai-social-page .dg-ai-calendar .dg-ai-calendar-event-rejected,
.dg-ai-social-page .dg-ai-calendar .dg-ai-calendar-event-discarded {
  border-color: rgba(244, 63, 94, .22) !important;
  background: rgba(255, 228, 230, .96) !important;
}

.dg-ai-social-page .dg-ai-calendar .dg-ai-calendar-event-pending {
  border-color: rgba(0, 201, 189, .25) !important;
  background: rgba(199, 246, 243, .96) !important;
}

.dg-ai-social-page .dg-ai-calendar .fc-list-event:hover td {
  background: rgba(0, 201, 189, .08) !important;
}

.dg-tw-modal--ai-post {
  z-index: 2147483200 !important;
}

.dg-tw-modal--ai-post + .modal-backdrop,
body:has(.dg-tw-modal--ai-post.show) .dg-modal-backdrop,
body:has(.dg-tw-modal--ai-post.show) .modal-backdrop {
  z-index: 2147483100 !important;
}

.dg-tw-modal--ai-post .dg-tw-modal__body {
  padding: 1.1rem !important;
}

.dg-calendar-modal {
  display: grid;
  grid-template-columns: minmax(12rem, .9fr) minmax(0, 1.25fr);
  gap: 1rem;
  align-items: stretch;
}

.dg-calendar-modal-image {
  position: relative;
  overflow: hidden;
  min-height: 16rem;
  border: 1px solid rgba(0, 201, 189, .16);
  border-radius: 1.25rem;
  background: linear-gradient(135deg, rgba(0, 201, 189, .12), rgba(0, 79, 123, .08));
}

.dg-calendar-modal-image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 16rem;
  object-fit: cover;
}

.dg-calendar-modal-image-placeholder,
.dg-calendar-modal-image-empty {
  display: flex;
  min-height: 16rem;
  height: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  padding: 1rem;
  text-align: center;
  color: #4f647f;
  font-weight: 800;
}

.dg-calendar-modal-image-placeholder .icon-base,
.dg-calendar-modal-image-empty .icon-base {
  width: 2rem !important;
  height: 2rem !important;
  color: #00aeb7 !important;
}

.dg-calendar-modal-body {
  min-width: 0;
}

.dg-calendar-modal-title {
  margin: 0 0 .9rem;
  color: #071b4d;
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  font-weight: 950;
  line-height: 1.08;
  letter-spacing: -.035em;
}

.dg-calendar-modal-meta {
  display: grid;
  gap: .55rem;
}

.dg-calendar-modal-meta-item {
  display: grid;
  grid-template-columns: 2.15rem minmax(5.5rem, .58fr) minmax(0, 1fr);
  gap: .65rem;
  align-items: center;
  padding: .72rem .78rem;
  border: 1px solid rgba(15, 36, 72, .08);
  border-radius: 1rem;
  background: rgba(248, 253, 255, .85);
}

.dg-calendar-modal-meta-item .icon-base {
  display: inline-flex !important;
  width: 2.15rem !important;
  height: 2.15rem !important;
  align-items: center;
  justify-content: center;
  border-radius: .8rem;
  color: #00aeb7 !important;
  background: rgba(0, 201, 189, .12);
}

.dg-calendar-modal-meta-item span {
  color: #667994 !important;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.dg-calendar-modal-meta-item strong {
  min-width: 0;
  color: #071b4d;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.dg-calendar-modal-preview {
  margin-top: .9rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(0, 201, 189, .16);
  border-radius: 1rem;
  background: linear-gradient(135deg, rgba(0, 201, 189, .09), rgba(255, 255, 255, .82));
}

.dg-calendar-modal-preview span {
  display: block;
  margin-bottom: .35rem;
  color: #008d95;
  font-size: .75rem;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.dg-calendar-modal-preview p {
  margin: 0;
  color: #263e63;
  font-weight: 700;
  line-height: 1.55;
}

@media (max-width: 991.98px) {
  .dg-calendar-modal {
    grid-template-columns: 1fr;
  }

  .dg-calendar-modal-image,
  .dg-calendar-modal-image img,
  .dg-calendar-modal-image-placeholder,
  .dg-calendar-modal-image-empty {
    min-height: 12rem;
  }
}

@media (max-width: 767.98px) {
  .dg-ai-social-page .dg-ai-calendar-panel .dg-tw-panel__body {
    padding: .8rem !important;
  }

  .dg-ai-social-page .dg-ai-calendar .fc {
    padding: .75rem .72rem .9rem !important;
  }

  .dg-ai-social-page .dg-ai-calendar .fc-header-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: .7rem;
  }

  .dg-ai-social-page .dg-ai-calendar .fc-toolbar-chunk {
    justify-content: center;
  }

  .dg-ai-social-page .dg-ai-calendar .fc-toolbar-title {
    text-align: center;
  }

  .dg-ai-social-page .dg-ai-calendar .fc-button {
    min-height: 2.1rem !important;
    padding: .48rem .66rem !important;
    font-size: .72rem !important;
  }

  .dg-calendar-modal-meta-item {
    grid-template-columns: 2rem 1fr;
  }

  .dg-calendar-modal-meta-item strong {
    grid-column: 2;
  }
}


/* Mobile readability: previous responsive rules reduced events to anonymous
   colored bars. Keep the title visible, even on very narrow screens and inside
   FullCalendar popovers. */
.dg-ai-social-page .dg-ai-calendar .fc-daygrid-event .fc-event-main,
.dg-ai-social-page .dg-ai-calendar .fc-daygrid-event .fc-event-main-frame,
.dg-ai-social-page .dg-ai-calendar .fc-daygrid-event .fc-event-title,
.dg-ai-social-page .dg-ai-calendar .dg-ai-calendar-event-title,
.fc-popover .dg-ai-calendar-event-title {
  display: block !important;
  min-width: 0 !important;
  max-width: 100% !important;
  color: #071b4d !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: .72rem !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
}

.fc-popover {
  z-index: 2147482000 !important;
  max-width: min(20rem, calc(100vw - 1.5rem)) !important;
  border: 1px solid rgba(0, 201, 189, .18) !important;
  border-radius: 1rem !important;
  overflow: hidden !important;
  box-shadow: 0 1.25rem 3rem rgba(7, 26, 70, .18) !important;
}

.fc-popover .fc-popover-header {
  padding: .65rem .8rem !important;
  color: #071b4d !important;
  background: linear-gradient(135deg, rgba(0, 201, 189, .10), rgba(255, 255, 255, .98)) !important;
  font-weight: 950 !important;
}

.fc-popover .fc-popover-body {
  padding: .55rem !important;
  background: rgba(255, 255, 255, .98) !important;
}

.fc-popover .fc-daygrid-event,
.fc-popover .fc-h-event {
  height: auto !important;
  min-height: 1.85rem !important;
  margin: .25rem 0 !important;
  padding: .35rem .5rem !important;
  border: 1px solid rgba(0, 201, 189, .24) !important;
  border-radius: .6rem !important;
  background: rgba(199, 246, 243, .96) !important;
}

@media (max-width: 575.98px) {
  .dg-ai-social-page .dg-ai-calendar .fc {
    padding: .65rem !important;
  }

  .dg-ai-social-page .dg-ai-calendar .fc-daygrid-day-frame {
    min-height: 5.2rem !important;
  }

  .dg-ai-social-page .dg-ai-calendar .fc-daygrid-event,
  .dg-ai-social-page .dg-ai-calendar .fc-h-event,
  .dg-ai-social-page .dg-ai-calendar .fc-v-event {
    height: auto !important;
    min-height: 1.25rem !important;
    padding: .18rem .25rem !important;
    margin-top: .12rem !important;
    border-radius: .38rem !important;
  }

  .dg-ai-social-page .dg-ai-calendar .fc-daygrid-event .fc-event-main,
  .dg-ai-social-page .dg-ai-calendar .fc-daygrid-event .fc-event-main-frame,
  .dg-ai-social-page .dg-ai-calendar .fc-daygrid-event .fc-event-title,
  .dg-ai-social-page .dg-ai-calendar .dg-ai-calendar-event-title {
    display: block !important;
    color: #071b4d !important;
    font-size: .6rem !important;
    font-weight: 900 !important;
    line-height: 1.12 !important;
    white-space: normal !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
  }
}
