/* /public_html/assets/css/calendar/calendar-full.tablet.css
   Calendrier complet — tablette 720–1023px, V49.5.1
*/

@media (min-width: 720px) and (max-width: 1023px) {
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) {
    --calendar-tablet-navbar-height: calc(env(safe-area-inset-top, 0px) + 4rem);
    overflow: hidden !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .app-header {
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view > .calendar-full-panel,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view > .calendar-full-panel > .panel-body,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-panel-content,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-shell,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-content,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-frame {
    width: 100vw !important;
    max-width: none !important;
    height: 100svh !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .calendar-modern-frame {
    grid-template-rows: auto auto minmax(0, 1fr) !important;
  }

  .calendar-modern-hero__inner {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 22rem);
    gap: .9rem;
    min-height: 9.2rem;
    padding: calc(var(--calendar-tablet-navbar-height) + .42rem) .9rem .72rem;
  }

  .calendar-modern-hero h1 {
    font-size: clamp(1.85rem, 4vw, 2.55rem);
  }

  .calendar-modern-hero__description {
    max-width: 38rem;
    font-size: .78rem;
  }

  .calendar-modern-hero__stats {
    gap: .48rem;
  }

  .calendar-modern-stat {
    min-height: 4rem;
    padding: .62rem;
    border-radius: .86rem;
  }

  .calendar-modern-stat strong {
    font-size: 1.28rem;
  }

  .calendar-modern-stat span {
    font-size: .62rem;
  }

  .calendar-modern-dock {
    min-height: 3.72rem;
  }

  .calendar-modern-dock__inner {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .52rem;
    min-height: 3.72rem;
    padding: .4rem .78rem;
  }

  .calendar-modern-dock__nav {
    width: 2.1rem;
    height: 2.1rem;
    border-radius: .7rem;
  }

  .calendar-modern-dock__month {
    min-width: 7.8rem;
    min-height: 2.1rem;
    padding: 0 .68rem;
    border-radius: .7rem;
    font-size: .76rem;
  }

  .calendar-modern-dock__filters {
    gap: .38rem;
  }

  .calendar-modern-dock__count,
  .calendar-modern-chip {
    min-height: 2rem;
    padding: 0 .58rem;
    font-size: .67rem;
  }

  .calendar-modern-dock__chips {
    gap: .32rem;
  }

  .calendar-modern-dock__actions {
    gap: .32rem;
  }

  .calendar-modern-dock__action {
    width: 2.1rem !important;
    min-width: 2.1rem !important;
    height: 2.1rem !important;
    min-height: 2.1rem !important;
    padding: 0 !important;
    border-radius: .7rem !important;
  }

  .calendar-modern-dock__action .ui-btn__label,
  .calendar-modern-dock__action .ui-btn__label--full,
  .calendar-modern-dock__action .ui-btn__label--short,
  .calendar-modern-dock__action .btn-label,
  .calendar-modern-dock__action span:not(.ui-btn__icon) {
    display: none !important;
  }

  #calendar-full-body {
    min-height: 0 !important;
    height: 100% !important;
    padding: .68rem .75rem max(.68rem, env(safe-area-inset-bottom, 0px)) !important;
    overflow: hidden !important;
    background: var(--color-background, #020617);
  }

  .calendar-desktop-workspace {
    display: grid;
    grid-template-columns: minmax(20.5rem, .95fr) minmax(20.5rem, 1.05fr);
    gap: .72rem;
    width: 100%;
    height: 100%;
    min-height: 0;
  }

  .calendar-desktop-month,
  .calendar-desktop-agenda {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--color-border-subtle) 76%, transparent 24%);
    border-radius: 1rem;
    background:
      radial-gradient(circle at 92% 0%, rgba(56,189,248,.06), transparent 32%),
      color-mix(in srgb, var(--color-surface-soft) 84%, transparent 16%);
    box-shadow: 0 .8rem 2rem rgba(2,6,23,.16), inset 0 1px 0 rgba(255,255,255,.035);
  }

  .calendar-desktop-month {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    padding: .72rem;
  }

  .calendar-desktop-month__header,
  .calendar-desktop-agenda__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .7rem;
  }

  .calendar-desktop-month__eyebrow,
  .calendar-desktop-agenda__eyebrow {
    display: block;
    margin-bottom: .12rem;
    color: #7dd3fc;
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .11em;
    text-transform: uppercase;
  }

  .calendar-desktop-month h2,
  .calendar-desktop-agenda h2 {
    margin: 0;
    color: var(--color-text);
    font-size: 1.05rem;
    font-weight: 950;
    letter-spacing: -.035em;
    text-transform: capitalize;
  }

  .calendar-desktop-month__legend,
  .calendar-desktop-agenda__counts {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .28rem;
    color: var(--color-text-muted);
    font-size: .58rem;
    font-weight: 800;
  }

  .calendar-desktop-month__legend span,
  .calendar-desktop-agenda__counts span {
    display: inline-flex;
    align-items: center;
    gap: .24rem;
    min-height: 1.5rem;
    padding: 0 .42rem;
    border: 1px solid color-mix(in srgb, var(--color-border-subtle) 70%, transparent 30%);
    border-radius: 999px;
    background: rgba(2,6,23,.2);
  }

  .calendar-desktop-month__weekdays {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: .3rem;
    margin: .52rem 0 .32rem;
    color: var(--color-text-muted);
    font-size: .55rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-align: center;
    text-transform: uppercase;
  }

  .calendar-desktop-month__grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    grid-auto-rows: minmax(0, 1fr);
    gap: .3rem;
    min-height: 0;
  }

  .calendar-month-cell {
    position: relative;
    display: grid;
    place-items: center;
    min-width: 0;
    min-height: 0;
    padding: .25rem;
    border: 1px solid color-mix(in srgb, var(--color-border-subtle) 72%, transparent 28%);
    border-radius: .72rem;
    color: var(--color-text);
    background: color-mix(in srgb, var(--color-surface) 76%, transparent 24%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
  }

  .calendar-month-cell.is-selected {
    border-color: rgba(56,189,248,.82);
    background: radial-gradient(circle at 50% 38%, rgba(56,189,248,.18), transparent 62%), color-mix(in srgb, var(--color-surface) 78%, #0c4a6e 22%);
    box-shadow: 0 0 0 1px rgba(56,189,248,.26), 0 0 1.2rem rgba(56,189,248,.18);
  }

  .calendar-month-cell.is-today::before {
    content: '';
    position: absolute;
    inset: .16rem;
    border: 1px solid rgba(74,222,128,.7);
    border-radius: .56rem;
    pointer-events: none;
  }

  .calendar-month-cell.is-outside { opacity: .2; }
  .calendar-month-cell__day { font-size: .72rem; font-weight: 950; }
  .calendar-month-cell__markers { position: absolute; left: .25rem; bottom: .22rem; display: flex; gap: .18rem; }
  .calendar-month-cell__marker { display: inline-block; width: .3rem; height: .3rem; border-radius: 999px; box-shadow: 0 0 .5rem currentColor; }
  .calendar-month-cell__marker--course { color: #38bdf8; background: #38bdf8; }
  .calendar-month-cell__marker--event { color: #c084fc; background: #c084fc; }
  .calendar-month-cell__count { position: absolute; right: .2rem; top: .18rem; min-width: .95rem; height: .95rem; padding: 0 .16rem; border-radius: 999px; color: #e0f2fe; background: rgba(14,116,144,.52); font-size: .48rem; font-weight: 950; display: inline-flex; align-items: center; justify-content: center; }

  .calendar-desktop-agenda {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
  }

  .calendar-desktop-agenda__header {
    padding: .74rem .8rem .68rem;
    border-bottom: 1px solid color-mix(in srgb, var(--color-border-subtle) 72%, transparent 28%);
  }

  .calendar-desktop-agenda__list {
    display: flex;
    flex-direction: column;
    gap: .48rem;
    min-height: 0;
    padding: .62rem .7rem .78rem;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .calendar-desktop-agenda__list .calendar-day-item {
    flex: 0 0 auto;
    min-height: 4.35rem;
    margin: 0;
    padding: .62rem .7rem;
    border: 1px solid color-mix(in srgb, var(--calendar-card-accent, #38bdf8) 34%, var(--color-border-subtle) 66%);
    border-radius: .86rem;
    background: color-mix(in srgb, var(--color-surface) 84%, transparent 16%);
    box-shadow: inset 3px 0 0 color-mix(in srgb, var(--calendar-card-accent, #38bdf8) 82%, transparent 18%);
  }

  .calendar-desktop-agenda__list .calendar-day-item-course { --calendar-card-accent: var(--badge-color, #38bdf8); }
  .calendar-desktop-agenda__list .calendar-day-item-event { --calendar-card-accent: var(--calendar-event-color, #c084fc); }
  .calendar-desktop-agenda__list .calendar-day-item-time { font-size: .8rem; font-weight: 950; }
  .calendar-desktop-agenda__list .calendar-day-meta { font-size: .68rem; }
  .calendar-desktop-agenda__empty { display: grid; place-items: center; align-content: center; min-height: 100%; padding: 1.5rem; text-align: center; color: var(--color-text-muted); }

  .mobile-shell-navbar.is-tablet-mode .calendar-full-smartbar-shell,
  .mobile-shell-navbar[data-mobile-shell-navbar].is-tablet-mode .calendar-full-smartbar-shell {
    display: inline-flex !important;
    width: min(34rem, 100%) !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 2.55rem !important;
    border: 1px solid rgba(125,211,252,.13);
    border-radius: .9rem;
    background: rgba(2,6,23,.24);
  }

  @media (orientation: portrait) {
    body.is-dashboard-shell-visible:has(#calendar-full-panel-content) {
      overflow-y: auto !important;
    }

    body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view,
    body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view > .calendar-full-panel,
    body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view > .calendar-full-panel > .panel-body,
    body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-panel-content,
    body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-shell,
    body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-content,
    body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-frame {
      height: auto !important;
      min-height: 100svh !important;
      overflow: visible !important;
    }

    .calendar-modern-dock {
      position: sticky;
      top: var(--calendar-tablet-navbar-height);
      z-index: 38;
    }

    #calendar-full-body {
      height: auto !important;
      overflow: visible !important;
    }

    .calendar-desktop-workspace {
      grid-template-columns: minmax(0, 1fr);
      grid-template-rows: minmax(31rem, auto) minmax(34rem, auto);
      height: auto;
    }

    .calendar-desktop-month__grid {
      min-height: 26rem;
    }

    .calendar-desktop-agenda__list {
      max-height: 32rem;
    }
  }
}

/* V49.5.2 — respiration du jour actuel en tablette. */
@media (min-width: 720px) and (max-width: 1023px) {
  .calendar-month-cell.is-today {
    overflow: visible;
    animation: calendar-tablet-today-breathe 3.4s ease-in-out infinite;
  }

  .calendar-month-cell.is-today::after {
    content: '';
    position: absolute;
    inset: -.14rem;
    z-index: -1;
    border-radius: .86rem;
    background: radial-gradient(circle at 50% 50%, rgba(74,222,128,.2), transparent 64%);
    pointer-events: none;
    animation: calendar-tablet-today-aura 3.4s ease-in-out infinite;
  }

  @keyframes calendar-tablet-today-breathe {
    0%, 100% { box-shadow: 0 0 0 1px rgba(74,222,128,.18), 0 0 .9rem rgba(74,222,128,.14), inset 0 1px 0 rgba(255,255,255,.06); }
    50% { box-shadow: 0 0 0 2px rgba(74,222,128,.28), 0 0 1.55rem rgba(74,222,128,.26), inset 0 1px 0 rgba(255,255,255,.1); }
  }

  @keyframes calendar-tablet-today-aura {
    0%, 100% { opacity: .2; transform: scale(.98); }
    50% { opacity: .56; transform: scale(1.04); }
  }
}

@media (prefers-reduced-motion: reduce) {
  .calendar-month-cell.is-today,
  .calendar-month-cell.is-today::after {
    animation: none !important;
  }
}

/* V49.5.30 — occurrences de cours non ouvrables en rôle membre */
.calendar-desktop-agenda__list .calendar-day-item-course--readonly,
.calendar-desktop-agenda__list .calendar-day-item-course--readonly:hover,
.calendar-desktop-agenda__list .calendar-day-item-course--readonly:focus,
.calendar-desktop-agenda__list .calendar-day-item-course--readonly:focus-within {
  cursor: default;
  border-color: color-mix(in srgb, var(--calendar-card-accent, #38bdf8) 24%, var(--color-border-subtle) 76%);
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--calendar-card-accent, #38bdf8) 54%, transparent 46%);
  filter: none;
}
