/* Authoritative shared calendar presentation; embedded unchanged in static websites. */
.central-calendar-shell { overflow: hidden; }
.calendar-group-context { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .75rem; }
.central-calendar-toolbar { align-items: center; display: grid; gap: .5rem; grid-template-columns: 48px minmax(0, 1fr) 48px; margin-bottom: .5rem; }
.central-calendar-toolbar h2 { font-size: 1.2rem; margin: 0; overflow: hidden; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.central-calendar-page { font-size: 1.7rem; line-height: 1; padding: 0; }
.central-calendar-toolbar-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .75rem; }
.calendar-toolbar-button { background: #eef7fa; border-color: rgba(23, 107, 135, .35); color: var(--tp-navy); }
.calendar-toolbar-button:hover { background: #dff2f5; color: var(--tp-navy); }
.calendar-actions { position: relative; }
.calendar-actions summary { list-style: none; }
.calendar-actions summary::-webkit-details-marker { display: none; }
.calendar-actions-panel { background: var(--bs-body-bg); border: 1px solid rgba(16, 42, 67, .15); border-radius: .5rem; box-shadow: 0 .25rem .75rem rgba(16, 42, 67, .14); display: grid; gap: .5rem; left: 0; min-width: min(20rem, calc(100vw - 2rem)); padding: .75rem; position: absolute; top: calc(100% + .35rem); width: min(24rem, calc(100vw - 2rem)); z-index: 2; }
.calendar-actions-panel h3 { margin: 0; }
.calendar-actions-panel section { display: grid; gap: .35rem; }
.calendar-actions-panel h4 { margin: 0; }
.calendar-action-grid { display: grid; gap: .4rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.central-calendar-filters { margin-bottom: .75rem; }
.central-calendar-month { display: grid; gap: .35rem; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.central-calendar-weekday { color: var(--tp-navy); font-size: .82rem; font-weight: 700; padding: .25rem; text-align: center; }
.central-calendar-day { border: 1px solid rgba(16, 42, 67, .12); border-radius: .5rem; min-height: 8.5rem; min-width: 0; padding: .35rem; position: relative; }
.central-calendar-day-muted { background: #f7fafc; color: #73869a; }
.central-calendar-day-selected { box-shadow: inset 0 0 0 2px rgba(23, 107, 135, .45); }
.central-calendar-day-number { color: var(--tp-navy); display: block; font-weight: 750; inset: 0; padding: .35rem; position: absolute; text-decoration: none; }
.central-calendar-day-events { display: grid; gap: .2rem; margin-top: 1.7rem; position: relative; z-index: 1; }
.central-calendar-event { background: rgba(100, 204, 197, .14); border-radius: .3rem; color: var(--tp-text); display: block; font-size: .76rem; overflow: hidden; padding: .2rem .3rem; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.central-calendar-range { background: rgba(174, 117, 201, .18); border-radius: 0; color: #54325e; }
.central-calendar-more { color: #526b84; font-size: .72rem; }
.central-calendar-selected-day { border-top: 1px solid rgba(16, 42, 67, .12); margin-top: .9rem; padding-top: .75rem; }
.central-calendar-selected-day h3 { font-size: 1rem; margin-bottom: .5rem; }
.central-calendar-selected-events { display: grid; gap: .5rem; }
.central-calendar-selected-event { background: #f7fafc; border: 1px solid rgba(16, 42, 67, .12); border-radius: .5rem; color: var(--tp-text); display: grid; gap: .2rem; min-height: 48px; padding: .65rem .75rem; text-decoration: none; }
.central-calendar-selected-event:hover { background: #eef7fa; color: var(--tp-text); }
.central-calendar-selected-event small { color: #526b84; }
.central-calendar-list { display: grid; gap: 1rem; }
.central-calendar-list-day { background: #fbfdff; border: 1px solid rgba(16, 42, 67, .14); border-radius: .85rem; display: grid; gap: .5rem; padding: .8rem; }
.central-calendar-list-day h3 { align-items: center; border-bottom: 1px solid rgba(16, 42, 67, .12); display: flex; font-size: 1.05rem; gap: .45rem; margin: 0; padding-bottom: .4rem; }
.central-calendar-list-day-number { color: var(--tp-navy); font-size: 1.45rem; font-weight: 800; line-height: 1; }
.central-calendar-list-day-empty { gap: 0; padding-bottom: .55rem; }
.central-calendar-list-day-weekend { background: #e7ebef; }
.central-calendar-list-day-today { border-color: rgba(23, 107, 135, .65); box-shadow: inset 3px 0 0 var(--tp-teal); }
.central-calendar-today-badge { background: rgba(23, 107, 135, .12); border-radius: 1rem; color: var(--tp-navy); font-size: .72rem; font-weight: 700; margin-left: auto; padding: .15rem .45rem; }
.central-calendar-list-event { background: #f7fafc; border: 1px solid rgba(16, 42, 67, .12); border-radius: .5rem; color: var(--tp-text); display: grid; gap: .25rem; min-height: 48px; padding: .7rem .8rem; text-decoration: none; }
.central-calendar-list-event:hover { background: #eef7fa; color: var(--tp-text); }
.central-calendar-list-event small { color: #526b84; }
.central-calendar-own-appointment { background: rgba(78, 163, 117, .14); border-color: rgba(47, 122, 82, .5); box-shadow: inset 3px 0 0 #2f7a52; }
.central-calendar-own-appointment:hover { background: rgba(78, 163, 117, .2); }
.central-calendar-own-badge { align-self: start; background: rgba(47, 122, 82, .14); border-radius: .75rem; color: #225c3b; font-size: .72rem; font-weight: 700; padding: .08rem .4rem; }
@media (max-width: 767.98px) {
    .central-calendar-shell { margin-left: -.25rem; margin-right: -.25rem; padding: .45rem; }
    .central-calendar-toolbar { gap: .35rem; grid-template-columns: 48px minmax(0, 1fr) 48px; }
    .central-calendar-toolbar .btn { min-width: 48px; }
    .central-calendar-toolbar h2 { font-size: 1.08rem; }
    .central-calendar-toolbar-actions > .btn, .calendar-actions { flex: 1 1 0; }
    .calendar-actions summary { display: flex; width: 100%; }
    .calendar-actions-panel { inset: auto 1rem 1rem; min-width: 0; position: fixed; width: auto; }
    .central-calendar-filters { flex-wrap: wrap; padding-bottom: .2rem; }
    .central-calendar-filters .btn { flex: 0 0 auto; }
    .central-calendar-month { gap: .15rem; }
    .central-calendar-weekday { font-size: .66rem; padding: .1rem; }
    .central-calendar-day { min-height: 4.8rem; padding: .2rem; }
    .central-calendar-day-number { padding: .2rem; }
    .central-calendar-event { font-size: .62rem; padding: .14rem; }
    .central-calendar-day-events .central-calendar-event:nth-child(n+3) { display: none; }
    .central-calendar-auto-month { display: none; }
}
@media (min-width: 768px) { .central-calendar-auto-list { display: none; } }
.calendar-toolbar-button { background: #e9faf5; border-color: #b7e8db; color: var(--tp-primary); }
.calendar-toolbar-button:hover, .calendar-toolbar-button:focus { background: var(--tp-mint); color: var(--tp-primary); }
.calendar-actions-panel { background: var(--tp-surface); border-color: var(--tp-border); border-radius: var(--tp-radius-modal); box-shadow: var(--tp-shadow-overlay); }
.central-calendar-day, .central-calendar-selected-event, .central-calendar-list-day, .central-calendar-list-event { border-color: var(--tp-border); border-radius: var(--tp-radius-input); }
.central-calendar-day-muted { background: #f0f2ef; }
.central-calendar-day-selected { box-shadow: inset 0 0 0 2px var(--tp-accent); }
.central-calendar-event { background: #e6f5ff; border-left: 3px solid #317e9b; border-radius: 5px; }
.central-calendar-range { background: #f2ecfb; border-left-color: #8050a2; color: #513366; }
.central-calendar-own-appointment { background: #e9faf5; border-color: #b7e8db; border-left-color: var(--tp-success); box-shadow: none; }
.central-calendar-list-day-weekend { background: #f2f5f2; }
.central-calendar-list-day-today { border-color: var(--tp-accent); box-shadow: inset 3px 0 0 var(--tp-accent); }
.central-calendar-today-badge, .central-calendar-own-badge { background: #e9faf5; color: #116b5b; }

/* Shared event/holiday structure for both contexts, with link vs inline-detail adapters. */
.central-calendar-list-event h3{font-size:inherit;margin:0}.central-calendar-list-event>a{color:inherit;display:grid;gap:.25rem;text-decoration:none}.central-calendar-list-event small{display:block}.central-calendar-list-event summary{cursor:pointer;min-height:44px}.central-calendar-list-event summary h3{display:inline}.central-calendar-list-event .calendar-detail-label{display:block;font-size:.8rem}.calendar-event-holiday{background:#fff7e5;border-color:#f2d69d}.calendar-event-cancelled{color:#6b3540}.calendar-event-cancelled .calendar-event-title,.central-calendar-event.calendar-event-cancelled{text-decoration:line-through}.calendar-duty-available{background:transparent;border-color:#d6dde3;border-left-style:dashed;color:#526174}.central-calendar-list-event:focus{outline:2px solid var(--tp-accent)}.central-calendar-day-today{box-shadow:inset 0 0 0 2px var(--tp-accent)}.central-calendar-weekday abbr{text-decoration:none}

.central-calendar-shell .central-calendar-toolbar h2{margin:0;font-size:1.2rem}.central-calendar-shell .central-calendar-list-day h3{margin:0;font-size:1.05rem}.central-calendar-shell .central-calendar-list-event h3{margin:0;font-size:inherit}.central-calendar-shell .central-calendar-day{margin:0}.central-calendar-shell .central-calendar-day-number{font-size:1rem;line-height:1.5}.central-calendar-shell [hidden]{display:none!important}

.central-calendar-event .calendar-event-title,.central-calendar-list-event .calendar-event-title{display:block;font-size:inherit;margin:0}
