.celebrations-page .page-content { padding-bottom: 2rem; }
.celebrations-page__surface { border-color: var(--ictus-border); box-shadow: 0 3px 12px rgba(31, 45, 61, .04); }
#main.celebrations-page .celebrations-page__notification,
#main.celebrations-page .celebrations-page__search-toggle { display: none; }
.celebrations-page__toolbar { align-items: center; flex-wrap: nowrap; gap: .75rem; }
.celebrations-page__toolbar > .visitors-list-page__toolbar-filters { flex: 0 0 auto; flex-wrap: nowrap; gap: .5rem; width: auto; }
.celebrations-page__filter { align-items: center; display: inline-flex; gap: .55rem; height: 42px; white-space: nowrap; }
.celebrations-page__filter-chevron { font-size: .7rem; margin-left: .2rem; }
.celebrations-page__toolbar > .celebrations-page__search { flex: 1 1 0; flex-wrap: nowrap; min-width: 0; width: auto; }
.celebrations-page__search .form-control { min-width: 0; }
.celebrations-page__search .btn { flex-shrink: 0; }
.celebrations-page__filter:disabled,
.celebrations-page__search :disabled,
.celebrations-page__create:disabled { cursor: not-allowed; opacity: .72; }
.celebrations-page__more-menu { min-width: 245px; padding: .45rem; z-index: 1050; }
.celebrations-page__more-menu .dropdown-item { align-items: center; display: flex; gap: .6rem; padding: .55rem .7rem; }
.celebrations-page__more-menu .dropdown-item small { color: var(--ictus-lead); font-size: .68rem; margin-left: auto; }
.celebrations-page__more-menu .dropdown-item:disabled { opacity: .7; }
.celebrations-page__more-menu .dropdown-header { font-size: .7rem; letter-spacing: .04em; text-transform: uppercase; }
.celebrations-page__tab-icon { display: none; }
.celebrations-page__tabs-toolbar { align-items: center; border-bottom: 1px solid var(--ictus-border); display: flex; gap: .75rem; min-width: 0; }
.celebrations-page__tabs-toolbar > .celebrations-page__tabs { border-bottom: 0; flex: 1 1 auto; min-width: 0; }
.celebrations-page__message-list-controls { align-items: center; display: flex; flex: 0 0 auto; gap: .65rem; margin-right: 1.25rem; }
.celebrations-page__messages-total { color: var(--ictus-lead); flex: 0 0 auto; white-space: nowrap; }
.celebrations-page__panel { min-height: 420px; }
.celebrations-page__intro { margin-bottom: 1.35rem; }
.celebrations-page__intro > span { color: var(--ictus-ocean); font-size: .72rem; font-weight: 900; letter-spacing: .09em; }
.celebrations-page__intro h4 { color: var(--ictus-blue); font-size: 1.45rem; font-weight: 900; margin: .25rem 0 .3rem; }
.celebrations-page__intro p { color: var(--ictus-lead); margin: 0; }
.celebrations-page__empty { align-items: center; background: var(--ictus-white); border: 1px dashed var(--ictus-border); border-radius: 14px; display: flex; flex-direction: column; justify-content: center; min-height: 265px; padding: 2rem; text-align: center; }
.celebrations-page__empty-icon { align-items: center; background: var(--ictus-cyan-mist); border-radius: 14px; color: var(--ictus-ocean); display: inline-flex; font-size: 1.6rem; height: 54px; justify-content: center; margin-bottom: 1rem; width: 54px; }
.celebrations-page__empty h5 { color: var(--ictus-blue); font-size: 1.05rem; font-weight: 850; margin-bottom: .4rem; }
.celebrations-page__empty p { color: var(--ictus-lead); margin: 0; max-width: 440px; }
.celebrations-page__empty-tag { border: 1px solid var(--ictus-border); border-radius: 999px; color: var(--ictus-lead); font-size: .7rem; font-weight: 700; margin-top: 1.15rem; padding: .28rem .65rem; }
.celebrations-page__calendar-toolbar { align-items: center; background: var(--ictus-white); border: 1px solid var(--ictus-border); border-radius: 14px; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: .85rem; padding: .7rem .85rem; }
.celebrations-page__calendar-nav { align-items: center; display: flex; gap: .5rem; min-width: 0; }
.celebrations-page__calendar-nav h5 { color: var(--ictus-blue); font-size: 1.04rem; font-weight: 850; margin: 0; min-width: 190px; text-align: center; }
.celebrations-page__nav-button, .celebrations-page__today-button { align-items: center; background: transparent; border: 1px solid var(--ictus-border); border-radius: 9px; color: var(--ictus-blue); display: inline-flex; font-size: .88rem; font-weight: 700; height: 38px; justify-content: center; padding: 0 .75rem; transition: background .15s ease, border-color .15s ease; }
.celebrations-page__nav-button { flex: 0 0 38px; padding: 0; }
.celebrations-page__nav-button:hover, .celebrations-page__today-button:hover { background: var(--ictus-cyan-mist); border-color: var(--ictus-ocean); }
.celebrations-page__calendar-views { background: #eef3f9; border: 1px solid var(--ictus-border); border-radius: 10px; display: flex; gap: 2px; padding: 3px; }
.celebrations-page__calendar-views button { align-items: center; background: transparent; border: 0; border-radius: 7px; color: var(--ictus-lead); display: inline-flex; font-size: .83rem; font-weight: 750; gap: .45rem; justify-content: center; min-height: 32px; padding: .3rem .85rem; }
.celebrations-page__calendar-views button.is-active { background: var(--ictus-white); box-shadow: 0 1px 5px rgba(10, 40, 73, .11); color: var(--ictus-blue); }
.celebrations-page__calendar-summary { align-items: center; color: var(--ictus-lead); display: flex; font-size: .82rem; gap: .65rem; margin: 0 0 .8rem; padding: 0 .15rem; }
.celebrations-page__calendar-summary strong { color: var(--ictus-blue); font-weight: 850; }
.celebrations-page__summary-separator { background: var(--ictus-border); height: 14px; width: 1px; }
.celebrations-page__calendar-loading { min-height: 290px; }
.celebrations-page__calendar { background: var(--ictus-white); border: 1px solid var(--ictus-border); border-radius: 14px; box-shadow: 0 4px 20px rgba(16, 48, 88, .045); overflow: hidden; }
.celebrations-page__calendar-weekdays { background: #f2f6fb; color: var(--ictus-lead); display: grid; font-size: .68rem; font-weight: 850; grid-template-columns: repeat(7, minmax(0, 1fr)); letter-spacing: .07em; text-align: center; text-transform: uppercase; }
.celebrations-page__calendar-weekdays span { border-bottom: 1px solid var(--ictus-border); padding: .75rem .2rem; }
.celebrations-page__calendar-weekdays span + span { border-left: 1px solid var(--ictus-border); }
.celebrations-page__calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.celebrations-page__calendar-day { border-bottom: 1px solid var(--ictus-border); border-right: 1px solid var(--ictus-border); min-height: 130px; min-width: 0; padding: .5rem; transition: background .15s ease; }
.celebrations-page__calendar-day:nth-child(7n) { border-right: 0; }
.celebrations-page__calendar-day:nth-last-child(-n+7) { border-bottom: 0; }
.celebrations-page__calendar-day.is-outside { background: #f8fafd; }
.celebrations-page__calendar-day.is-selected { background: #eaf7ff; box-shadow: inset 0 0 0 2px var(--ictus-ocean); }
.celebrations-page__calendar-day:hover:not(.is-selected) { background: #f7fbfe; }
.celebrations-page__calendar-day-button { align-items: center; background: transparent; border: 0; color: var(--ictus-blue); display: flex; font-weight: 800; gap: .3rem; justify-content: flex-end; min-height: 28px; padding: 0; width: 100%; }
.celebrations-page__calendar-day.is-outside .celebrations-page__calendar-day-button { color: #8998aa; }
.celebrations-page__calendar-number { align-items: center; border-radius: 999px; display: inline-flex; height: 28px; justify-content: center; width: 28px; }
.celebrations-page__calendar-day.is-today .celebrations-page__calendar-number { background: var(--ictus-blue); color: var(--ictus-white); }
.celebrations-page__calendar-weekday, .celebrations-page__calendar-mobile-count { display: none; }
.celebrations-page__calendar-day-events { display: flex; flex-direction: column; gap: .25rem; margin-top: .35rem; }
.celebrations-page__calendar-event { background: #eef5fb; border: 1px solid #dbe8f2; border-left: 4px solid var(--ictus-ocean); border-radius: 6px; color: var(--ictus-blue); display: block; font-size: .69rem; line-height: 1.25; min-width: 0; overflow: hidden; padding: .3rem .4rem; text-align: left; text-overflow: ellipsis; white-space: nowrap; width: 100%; }
.celebrations-page__calendar-event strong { margin-right: .25rem; }
.celebrations-page__calendar-event:hover { background: #dceeff; }
.celebrations-page__calendar-more, .celebrations-page__calendar-add { align-items: center; background: transparent; border: 0; color: var(--ictus-ocean); display: inline-flex; font-size: .7rem; font-weight: 750; gap: .15rem; padding: .2rem; text-align: left; }
.celebrations-page__calendar-more:hover, .celebrations-page__calendar-add:hover { text-decoration: underline; }
.celebrations-page__calendar.is-week .celebrations-page__calendar-day { min-height: 210px; }
.celebrations-page__calendar.is-week .celebrations-page__calendar-day-button { justify-content: flex-start; }
.celebrations-page__calendar.is-week .celebrations-page__calendar-weekday { color: var(--ictus-lead); display: inline; font-size: .75rem; font-weight: 650; }
.celebrations-page__day-details { background: var(--ictus-white); border: 1px solid var(--ictus-border); border-radius: 14px; margin-top: 1rem; overflow: hidden; scroll-margin-top: 132px; }
.celebrations-page__day-heading { align-items: center; display: flex; gap: 1rem; justify-content: space-between; padding: 1rem 1.25rem; }
.celebrations-page__day-eyebrow { color: var(--ictus-ocean); font-size: .68rem; font-weight: 900; letter-spacing: .09em; }
.celebrations-page__day-heading h5 { color: var(--ictus-blue); font-size: 1.1rem; font-weight: 850; margin: .15rem 0; }
.celebrations-page__day-heading p { color: var(--ictus-lead); font-size: .8rem; margin: 0; }
.celebrations-page__day-empty { align-items: center; background: #f8fafd; border-top: 1px solid var(--ictus-border); color: var(--ictus-lead); display: flex; gap: .65rem; padding: 1.25rem; }
.celebrations-page__day-empty i { color: var(--ictus-ocean); font-size: 1.2rem; }
.celebrations-page__day-details .celebrations-page__plan-list { border: 0; border-radius: 0; border-top: 1px solid var(--ictus-border); }
.celebrations-page__calendar button:focus-visible, .celebrations-page__calendar-toolbar button:focus-visible { outline: 2px solid var(--ictus-ocean); outline-offset: 2px; }
.celebrations-page__plan-list { border: 1px solid var(--ictus-border); border-radius: 12px; overflow: hidden; }
.celebrations-page__plan { align-items: center; background: var(--ictus-white); display: flex; gap: 1rem; padding: 1rem; }
.celebrations-page__plan + .celebrations-page__plan { border-top: 1px solid var(--ictus-border); }
.celebrations-page__plan-date { align-items: center; background: var(--ictus-cyan-mist); border-radius: 10px; color: var(--ictus-blue); display: flex; flex: 0 0 72px; flex-direction: column; justify-content: center; min-height: 66px; }
.celebrations-page__plan-date strong { font-size: 1.05rem; }
.celebrations-page__plan-date span { font-size: .78rem; }
.celebrations-page__plan-info { flex: 1 1 auto; min-width: 0; }
.celebrations-page__plan-info h5 { color: var(--ictus-blue); font-size: 1rem; font-weight: 800; margin: 0 0 .25rem; }
.celebrations-page__plan-info p, .celebrations-page__plan-info small { color: var(--ictus-lead); display: block; margin: 0; }
.celebrations-page__team-color { border: 1px solid rgba(20, 41, 70, .22); border-radius: 50%; display: inline-block; height: 10px; margin-right: .35rem; vertical-align: baseline; width: 10px; }
.celebrations-page__plan-actions { display: flex; flex: 0 0 auto; gap: .4rem; }
.celebration-plan-form-page__card .card-body { padding: 1.5rem; }
.celebration-plan-form-page__songs { border-top: 1px solid var(--ictus-border); margin-top: 1.5rem; padding-top: 1.5rem; }
.celebration-plan-form-page__songs-title h5 { color: var(--ictus-blue); font-weight: 800; margin: 0 0 .2rem; }
.celebration-plan-form-page__songs-title p { color: var(--ictus-lead); margin-bottom: 1rem; }
.celebration-plan-form-page__song-list { list-style: none; margin: 1rem 0 0; padding: 0; }
.celebration-plan-form-page__song-list li { align-items: center; border: 1px solid var(--ictus-border); border-radius: 8px; display: flex; justify-content: space-between; margin-bottom: .5rem; padding: .5rem .75rem; position: relative; transition: border-color .16s ease, box-shadow .16s ease, opacity .16s ease, transform .16s ease; }
.celebration-plan-form-page__song-actions { display: flex; flex: 0 0 auto; gap: .3rem; }
.celebration-plan-form-page__song-item--dragging { box-shadow: 0 10px 24px rgba(16, 48, 88, .15); cursor: grabbing; opacity: .58; transform: scale(.992); }
.celebration-plan-form-page__song-item--drop-before { box-shadow: inset 0 4px 0 var(--ictus-cyan); }
.celebration-plan-form-page__song-item--drop-after { box-shadow: inset 0 -4px 0 var(--ictus-cyan); }
.celebration-plan-form-page__run { border-top: 1px solid var(--ictus-border); margin-top: 1.5rem; padding-top: 1.5rem; }
.celebration-plan-form-page__run-heading { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: 1rem; }
.celebration-plan-form-page__eyebrow { color: var(--ictus-ocean); font-size: .68rem; font-weight: 900; letter-spacing: .09em; }
.celebration-plan-form-page__run-heading h5 { color: var(--ictus-blue); font-weight: 850; margin: .2rem 0; }
.celebration-plan-form-page__run-heading p { color: var(--ictus-lead); font-size: .85rem; margin: 0; }
.celebration-plan-form-page__run-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.celebration-plan-form-page__run-summary { background: var(--ictus-cyan-mist); border: 1px solid var(--ictus-border); border-radius: 9px; color: var(--ictus-blue); display: flex; flex-wrap: wrap; font-size: .8rem; font-weight: 700; gap: .5rem 1.25rem; margin-bottom: .85rem; padding: .65rem .85rem; }
.celebration-plan-form-page__run-empty { align-items: center; background: #f8fafd; border: 1px dashed var(--ictus-border); border-radius: 10px; color: var(--ictus-lead); display: flex; gap: .9rem; padding: 1.25rem; }
.celebration-plan-form-page__run-empty > i { color: var(--ictus-ocean); font-size: 1.4rem; }
.celebration-plan-form-page__run-empty strong { color: var(--ictus-blue); }
.celebration-plan-form-page__run-empty p { font-size: .82rem; margin: .15rem 0 0; }
.celebration-plan-form-page__run-list { display: grid; gap: .6rem; list-style: none; margin: 0; padding: 0; }
.celebration-plan-form-page__run-item { border: 1px solid var(--ictus-border); border-radius: 10px; overflow: hidden; position: relative; transition: border-color .16s ease, box-shadow .16s ease, opacity .16s ease, transform .16s ease; }
.celebration-plan-form-page__run-item--dragging { box-shadow: 0 12px 28px rgba(16, 48, 88, .16); cursor: grabbing; opacity: .58; transform: scale(.992); }
.celebration-plan-form-page__run-item--drop-before { box-shadow: inset 0 4px 0 var(--ictus-cyan); }
.celebration-plan-form-page__run-item--drop-after { box-shadow: inset 0 -4px 0 var(--ictus-cyan); }
.celebration-plan-form-page__run-top { align-items: center; display: flex; gap: .7rem; min-height: 64px; padding: .65rem .8rem; }
.celebration-plan-form-page__run-drag { align-items: center; background: transparent; border: 0; border-radius: 7px; color: var(--ictus-lead); cursor: grab; display: inline-flex; flex: 0 0 28px; font-size: 1.15rem; height: 34px; justify-content: center; padding: 0; touch-action: none; }
.celebration-plan-form-page__run-drag:hover { background: var(--ictus-cyan-mist); color: var(--ictus-blue); }
.celebration-plan-form-page__run-drag:active { cursor: grabbing; }
.celebration-plan-form-page__run-drag:focus-visible { outline: 2px solid var(--ictus-ocean); outline-offset: 2px; }
.celebration-plan-form-page__run-order { align-items: center; background: var(--ictus-cyan-mist); border-radius: 8px; color: var(--ictus-blue); display: flex; flex: 0 0 30px; font-size: .8rem; font-weight: 850; height: 30px; justify-content: center; }
.celebration-plan-form-page__run-time { color: var(--ictus-ocean); flex: 0 0 60px; font-size: .84rem; font-weight: 850; }
.celebration-plan-form-page__run-copy { flex: 1 1 auto; min-width: 0; }
.celebration-plan-form-page__run-copy strong { color: var(--ictus-blue); display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.celebration-plan-form-page__run-copy small { color: var(--ictus-lead); display: block; font-size: .75rem; }
.celebration-plan-form-page__run-item-actions { display: flex; flex: 0 0 auto; gap: .25rem; }
.celebration-plan-form-page__run-item-actions .btn { align-items: center; display: inline-flex; height: 32px; justify-content: center; padding: 0; width: 32px; }
.celebration-plan-form-page__run-editor { background: #f8fafd; border-top: 1px solid var(--ictus-border); padding: 1rem; }
.celebration-plan-form-page__run-notes { border-top: 1px solid var(--ictus-border); color: var(--ictus-lead); font-size: .8rem; margin: 0; padding: .7rem .85rem; white-space: pre-wrap; }
#main.celebration-plan-form-page > .page-content { max-width: none; width: 100%; }
#main.celebration-plan-form-page > .page-content > .celebration-plan-form-page__workspace { margin-left: 0; margin-right: 0; max-width: none; width: 100%; }
.celebration-plan-form-page__workspace { align-self: stretch; display: flex; flex-direction: column; gap: 1rem; width: 100%; }
.celebration-plan-form-page__section { align-self: stretch; background: var(--ictus-white); border: 1px solid var(--ictus-border); border-radius: 14px; box-shadow: 0 3px 14px rgba(16, 48, 88, .045); max-width: none; padding: 1.35rem; width: 100%; }
.celebration-plan-form-page__section.is-context { background: linear-gradient(120deg, rgba(var(--ictus-cyan-rgb), .09), rgba(var(--ictus-cyan-rgb), .025) 55%, var(--ictus-white)); border-top: 4px solid var(--ictus-ocean); }
.celebration-plan-form-page__section-heading { align-items: flex-start; display: flex; gap: .8rem; margin-bottom: 1.2rem; }
.celebration-plan-form-page__section-heading > span { align-items: center; background: var(--ictus-cyan-mist); border-radius: 10px; color: var(--ictus-ocean); display: inline-flex; flex: 0 0 40px; font-size: 1.05rem; height: 40px; justify-content: center; }
.celebration-plan-form-page__section-heading > div { min-width: 0; }
.celebration-plan-form-page__section-heading small { color: var(--ictus-ocean); display: block; font-size: .62rem; font-weight: 900; letter-spacing: .08em; }
.celebration-plan-form-page__section-heading h4 { color: var(--ictus-blue); font-size: 1.08rem; font-weight: 900; margin: .12rem 0 .15rem; }
.celebration-plan-form-page__section-heading p { color: var(--ictus-lead); font-size: .78rem; margin: 0; }
.celebration-plan-form-page__section-heading.is-compact { align-items: center; margin-bottom: .85rem; }
.celebration-plan-form-page__context-grid { display: grid; gap: 1rem; grid-template-columns: minmax(170px, .8fr) minmax(140px, .65fr) minmax(260px, 1.55fr); }
.celebration-plan-form-page__context-grid > div { min-width: 0; }
.celebration-plan-form-page__context-grid > div > small { color: var(--ictus-lead); display: block; font-size: .67rem; margin-top: .28rem; }
.celebration-plan-form-page__message-source { align-items: center; background: #f7f9fc; border: 1px dashed var(--ictus-border); border-radius: 12px; display: grid; gap: .8rem; grid-template-columns: 42px minmax(240px, 1fr) auto; margin-bottom: 1rem; padding: .85rem; }
.celebration-plan-form-page__message-source.has-source { background: rgba(var(--ictus-cyan-rgb), .07); border-style: solid; border-color: var(--ictus-cyan); }
.celebration-plan-form-page__message-source-icon { align-items: center; background: var(--ictus-white); border: 1px solid var(--ictus-border); border-radius: 10px; color: var(--ictus-ocean); display: flex; font-size: 1.1rem; height: 42px; justify-content: center; }
.celebration-plan-form-page__message-source-control { min-width: 0; }
.celebration-plan-form-page__message-source-control .form-label { font-size: .75rem; margin-bottom: .3rem; }
.celebration-plan-form-page__message-source-control > small { color: var(--ictus-lead); display: block; font-size: .65rem; margin-top: .25rem; }
.celebration-plan-form-page__message-source-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .3rem; justify-content: flex-end; }
.celebration-plan-form-page__message-source-actions .btn { align-items: center; display: inline-flex; gap: .35rem; white-space: nowrap; }
.celebration-plan-form-page__songs-empty { align-items: center; background: #f8fafd; border: 1px dashed var(--ictus-border); border-radius: 9px; color: var(--ictus-lead); display: flex; font-size: .76rem; gap: .6rem; margin-top: .75rem; padding: .8rem; }
.celebration-plan-form-page__songs-empty i { color: var(--ictus-ocean); font-size: 1.05rem; }
.celebration-plan-form-page__song-list li { gap: .65rem; justify-content: flex-start; }
.celebration-plan-form-page__song-drag { align-items: center; background: transparent; border: 0; border-radius: 7px; color: var(--ictus-lead); cursor: grab; display: inline-flex; flex: 0 0 28px; font-size: 1.1rem; height: 32px; justify-content: center; padding: 0; touch-action: none; }
.celebration-plan-form-page__song-drag:hover { background: var(--ictus-cyan-mist); color: var(--ictus-blue); }
.celebration-plan-form-page__song-drag:active { cursor: grabbing; }
.celebration-plan-form-page__song-drag:focus-visible { outline: 2px solid var(--ictus-ocean); outline-offset: 2px; }
.celebration-plan-form-page__song-order { align-items: center; background: var(--ictus-cyan-mist); border-radius: 7px; color: var(--ictus-blue); display: inline-flex; flex: 0 0 30px; font-size: .72rem; font-weight: 850; height: 30px; justify-content: center; }
.celebration-plan-form-page__song-name { align-items: center; display: grid; flex: 1 1 auto; gap: .7rem; grid-template-columns: minmax(140px, 1fr) minmax(280px, 420px); min-width: 0; }
.celebration-plan-form-page__song-name strong { color: var(--ictus-blue); display: block; font-size: .82rem; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.celebration-plan-form-page__song-name small { align-items: center; display: grid; gap: .28rem; grid-template-columns: minmax(0, 1.6fr) minmax(85px, 1fr) minmax(48px, .5fr); margin: 0; min-width: 0; }
.celebration-plan-form-page__song-name small span { align-items: center; background: #f4f7fb; border: 1px solid var(--ictus-border); border-radius: 999px; color: var(--ictus-lead); display: inline-flex; font-size: .62rem; font-weight: 700; gap: .25rem; justify-content: flex-start; line-height: 1; min-width: 0; overflow: hidden; padding: .24rem .45rem; text-overflow: ellipsis; white-space: nowrap; }
.celebration-plan-form-page__song-name small span.is-reference { grid-column: 1; }
.celebration-plan-form-page__song-name small span.is-category { grid-column: 2; }
.celebration-plan-form-page__song-name small span.is-key { grid-column: 3; justify-content: center; }
.celebration-plan-form-page__song-name small span i { color: var(--ictus-ocean); font-size: .65rem; }
.celebration-plan-form-page__song-name small span.is-category { background: rgba(var(--ictus-cyan-rgb), .08); color: var(--ictus-ocean); }
.celebration-plan-form-page__song-name small span.is-key { background: var(--ictus-cyan-mist); color: var(--ictus-blue); font-weight: 850; }
.repertoire-page__key { align-items: center; background: var(--ictus-cyan-mist); border: 1px solid var(--ictus-border); border-radius: 7px; color: var(--ictus-blue); display: inline-flex; font-size: .78rem; font-weight: 850; justify-content: center; min-width: 36px; padding: .25rem .45rem; }
.celebration-plan-form-page__section.celebration-plan-form-page__run { margin-top: 0; padding-top: 1.35rem; }
.celebration-plan-form-page__run-heading h4 { color: var(--ictus-blue); font-size: 1.08rem; font-weight: 900; margin: .12rem 0 .15rem; }
.celebration-plan-form-page__actions { align-self: stretch; background: rgba(255, 255, 255, .96); border: 1px solid var(--ictus-border); border-radius: 12px; bottom: .75rem; box-shadow: 0 8px 28px rgba(16, 48, 88, .13); margin-left: 0; margin-right: 0; margin-top: .15rem; max-width: none; padding: .8rem; position: sticky; width: 100%; z-index: 20; }
body.theme-dark .celebration-plan-form-page__section,
body.theme-dark .celebration-plan-form-page__actions { background: var(--ictus-dark-surface); border-color: var(--ictus-dark-border); }
body.theme-dark .celebration-plan-form-page__section.is-context { background: linear-gradient(120deg, rgba(var(--ictus-cyan-rgb), .09), var(--ictus-dark-surface)); }
body.theme-dark .celebration-plan-form-page__section-heading h4,
body.theme-dark .celebration-plan-form-page__run-heading h4,
body.theme-dark .celebration-plan-form-page__song-name strong { color: var(--ictus-white); }
body.theme-dark .celebration-plan-form-page__song-name small span { background: var(--ictus-dark-surface-hover); border-color: var(--ictus-dark-border); color: var(--ictus-dark-muted); }
body.theme-dark .celebration-plan-form-page__song-name small span.is-category,
body.theme-dark .celebration-plan-form-page__song-name small span.is-key { background: rgba(var(--ictus-cyan-rgb), .12); color: var(--ictus-white); }
body.theme-dark .repertoire-page__key { background: var(--ictus-dark-surface-hover); border-color: var(--ictus-dark-border); color: var(--ictus-white); }
body.theme-dark .celebration-plan-form-page__section-heading p,
body.theme-dark .celebration-plan-form-page__context-grid > div > small,
body.theme-dark .celebration-plan-form-page__message-source-control > small { color: var(--ictus-dark-muted); }
body.theme-dark .celebration-plan-form-page__message-source,
body.theme-dark .celebration-plan-form-page__songs-empty { background: var(--ictus-dark-surface-hover); border-color: var(--ictus-dark-border); }
body.theme-dark .celebration-plan-form-page__message-source.has-source { border-color: var(--ictus-cyan); }
body.theme-dark .celebration-plan-form-page__message-source-icon { background: var(--ictus-dark-surface); border-color: var(--ictus-dark-border); }
body.theme-dark .celebration-plan-form-page__run-drag { color: var(--ictus-dark-muted); }
body.theme-dark .celebration-plan-form-page__run-drag:hover { background: var(--ictus-dark-surface-hover); color: var(--ictus-white); }
body.theme-dark .celebration-plan-form-page__song-drag { color: var(--ictus-dark-muted); }
body.theme-dark .celebration-plan-form-page__song-drag:hover { background: var(--ictus-dark-surface-hover); color: var(--ictus-white); }
.celebrations-page__realized-badge { color: #198754; font-weight: 800; margin-left: .45rem; }
.celebration-realization-page__intro { position: relative; }
.celebration-realization-page__status { align-items: center; background: #fff4e5; border: 1px solid #f6d6a8; border-radius: 999px; color: #805111; display: inline-flex; font-size: .75rem; font-weight: 800; gap: .35rem; margin-top: .7rem; padding: .3rem .7rem; }
.celebration-realization-page__status.is-done { background: #e7f6ef; border-color: #b7e3ca; color: #16784c; }
.celebration-realization-page__summary { display: grid; gap: .65rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1.25rem 0; }
.celebration-realization-page__summary > div { background: #f8fafd; border: 1px solid var(--ictus-border); border-radius: 10px; padding: .9rem; }
.celebration-realization-page__summary span { color: var(--ictus-lead); display: block; font-size: .76rem; }
.celebration-realization-page__summary strong { color: var(--ictus-blue); display: block; font-size: 1.35rem; font-weight: 900; margin-top: .1rem; }
.celebration-realization-page__timing { align-items: end; }
.celebration-realization-page__timing-note { align-items: center; color: var(--ictus-lead); display: flex; font-size: .82rem; gap: .5rem; min-height: 42px; }
.celebration-realization-page__timing-note i { color: var(--ictus-ocean); }
.celebration-realization-page__performed { align-items: center; border: 1px solid var(--ictus-border); border-radius: 7px; color: var(--ictus-blue); cursor: pointer; display: inline-flex; flex: 0 0 auto; font-size: .74rem; font-weight: 750; gap: .35rem; margin: 0; padding: .35rem .5rem; white-space: nowrap; }
.celebration-realization-page__performed input { accent-color: #198754; height: 16px; margin: 0; width: 16px; }
.celebration-realization-page__run-item.is-skipped, .celebration-realization-page .celebration-plan-form-page__run-item.is-skipped { background: #f8fafd; }
.celebration-realization-page .celebration-plan-form-page__run-item.is-skipped .celebration-plan-form-page__run-copy { opacity: .62; }
.celebration-realization-page__notes { border-top: 1px solid var(--ictus-border); margin-top: 1.5rem; padding-top: 1.5rem; }
body.theme-dark .celebrations-page__intro > span { color: var(--ictus-cyan-light); }
body.theme-dark .celebrations-page__intro h4,
body.theme-dark .celebrations-page__empty h5 { color: var(--ictus-white); }
body.theme-dark .celebrations-page__intro p,
body.theme-dark .celebrations-page__empty p,
body.theme-dark .celebrations-page__empty-tag { color: var(--ictus-dark-muted); }
body.theme-dark .celebrations-page__empty { background: var(--ictus-dark-surface); border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__empty-icon { background: var(--ictus-dark-surface-hover); color: var(--ictus-cyan-light); }
body.theme-dark .celebrations-page__empty-tag { border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__calendar-toolbar, body.theme-dark .celebrations-page__calendar, body.theme-dark .celebrations-page__day-details { background: var(--ictus-dark-surface); border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__calendar-nav h5, body.theme-dark .celebrations-page__calendar-summary strong, body.theme-dark .celebrations-page__day-heading h5, body.theme-dark .celebrations-page__plan-info h5, body.theme-dark .celebration-plan-form-page__songs-title h5 { color: var(--ictus-white); }
body.theme-dark .celebrations-page__calendar-weekdays, body.theme-dark .celebrations-page__calendar-views, body.theme-dark .celebrations-page__calendar-day.is-outside, body.theme-dark .celebrations-page__day-empty { background: var(--ictus-dark-surface-hover); }
body.theme-dark .celebrations-page__calendar-day.is-selected { background: #153d5b; }
body.theme-dark .celebrations-page__calendar-day:hover:not(.is-selected) { background: var(--ictus-dark-surface-hover); }
body.theme-dark .celebrations-page__calendar-day, body.theme-dark .celebrations-page__calendar-weekdays span, body.theme-dark .celebrations-page__day-empty, body.theme-dark .celebrations-page__day-details .celebrations-page__plan-list { border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__calendar-day-button, body.theme-dark .celebrations-page__calendar-event, body.theme-dark .celebrations-page__nav-button, body.theme-dark .celebrations-page__today-button { color: var(--ictus-white); }
body.theme-dark .celebrations-page__calendar-event { background: var(--ictus-dark-surface-hover); border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__calendar-views button.is-active { background: var(--ictus-midnight); color: var(--ictus-white); }
body.theme-dark .celebrations-page__calendar-summary, body.theme-dark .celebrations-page__day-heading p, body.theme-dark .celebrations-page__day-empty { color: var(--ictus-dark-muted); }
body.theme-dark .celebrations-page__plan { background: var(--ictus-dark-surface); }
body.theme-dark .celebrations-page__plan-list, body.theme-dark .celebrations-page__plan + .celebrations-page__plan, body.theme-dark .celebration-plan-form-page__songs, body.theme-dark .celebration-plan-form-page__song-list li { border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__plan-date { background: var(--ictus-dark-surface-hover); color: var(--ictus-cyan-light); }
body.theme-dark .celebrations-page__plan-info p, body.theme-dark .celebrations-page__plan-info small, body.theme-dark .celebration-plan-form-page__songs-title p { color: var(--ictus-dark-muted); }
body.theme-dark .celebration-plan-form-page__run, body.theme-dark .celebration-plan-form-page__run-item, body.theme-dark .celebration-plan-form-page__run-editor, body.theme-dark .celebration-plan-form-page__run-notes { border-color: var(--ictus-dark-border); }
body.theme-dark .celebration-plan-form-page__run-heading h5, body.theme-dark .celebration-plan-form-page__run-empty strong, body.theme-dark .celebration-plan-form-page__run-copy strong { color: var(--ictus-white); }
body.theme-dark .celebration-plan-form-page__run-heading p, body.theme-dark .celebration-plan-form-page__run-empty, body.theme-dark .celebration-plan-form-page__run-copy small, body.theme-dark .celebration-plan-form-page__run-notes { color: var(--ictus-dark-muted); }
body.theme-dark .celebration-plan-form-page__run-summary, body.theme-dark .celebration-plan-form-page__run-empty, body.theme-dark .celebration-plan-form-page__run-editor { background: var(--ictus-dark-surface-hover); }
body.theme-dark .celebration-plan-form-page__run-summary, body.theme-dark .celebration-plan-form-page__run-empty { border-color: var(--ictus-dark-border); color: var(--ictus-white); }
body.theme-dark .celebration-realization-page__summary > div, body.theme-dark .celebration-realization-page .celebration-plan-form-page__run-item.is-skipped { background: var(--ictus-dark-surface-hover); border-color: var(--ictus-dark-border); }
body.theme-dark .celebration-realization-page__summary strong, body.theme-dark .celebration-realization-page__performed { color: var(--ictus-white); }
body.theme-dark .celebration-realization-page__summary span, body.theme-dark .celebration-realization-page__timing-note { color: var(--ictus-dark-muted); }
body.theme-dark .celebration-realization-page__performed, body.theme-dark .celebration-realization-page__notes { border-color: var(--ictus-dark-border); }

@media (min-width: 768px) and (max-width: 1100px) {
  #main.celebrations-page .visitors-list-page__title-row,
  #main.celebrations-page .visitors-list-page__header-actions { align-items: center; flex-direction: row; }
  #main.celebrations-page .visitors-list-page__header-actions { flex: 0 0 auto; width: auto; }
  #main.celebrations-page .visitors-list-page__header-actions .btn { flex: 0 0 40px; height: 40px; justify-content: center; padding: 0; width: 40px; }
  #main.celebrations-page .visitors-list-page__header-actions .btn > span { display: none; }
  .celebrations-page__filter { justify-content: center; padding: 0; width: 42px; }
  #main.celebrations-page .celebrations-page__filter span,
  #main.celebrations-page .celebrations-page__filter-chevron { display: none; }
  .celebrations-page__calendar-nav h5 { min-width: 150px; }
  .celebrations-page__calendar-day { min-height: 112px; padding: .35rem; }
  .celebrations-page__calendar-event { font-size: .62rem; }
}

@media (min-width: 768px) and (max-width: 1100px) {
  .celebrations-page__message-list-controls { gap: .4rem; margin-right: .75rem; }
  .celebrations-page__message-view-toggle .btn { min-width: 38px; padding-left: .55rem; padding-right: .55rem; }
  .celebrations-page__message-view-toggle .btn span { display: none; }
}

@media (max-width: 767.98px) {
  body #main.celebrations-page .page-content { margin-top: 120px; padding-top: 12px; }
  body #main.celebrations-page .page-heading.fixed-top { border-bottom: 0; height: 60px; padding: 10px 12px; z-index: 990; }
  #main.celebrations-page .visitors-list-page__title-row { gap: 4px; }
  #main.celebrations-page .visitors-list-page__title-copy { min-width: 0; gap: 6px; }
  #main.celebrations-page .visitors-list-page__title-copy > div { min-width: 0; }
  #main.celebrations-page .visitors-list-page__title-copy h3 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  #main.celebrations-page .visitors-list-page__header-actions { display: flex; flex: 0 0 auto; flex-direction: row; gap: 0; margin: 0; }
  body #main.celebrations-page .page-heading .celebrations-page__notification { display: flex; margin: 0; position: relative; }
  #main.celebrations-page .celebrations-page__notification a,
  #main.celebrations-page .celebrations-page__search-toggle,
  #main.celebrations-page .celebrations-page__create,
  #main.celebrations-page .celebrations-page__more-toggle { align-items: center; display: inline-flex; flex: 0 0 40px; height: 40px; justify-content: center; padding: 0; width: 40px; }
  #main.celebrations-page .celebrations-page__create span { display: none; }
  #main.celebrations-page .celebrations-page__more { background: transparent; border: 0; box-shadow: none; width: 40px; }
  #main.celebrations-page .celebrations-page__more-menu { z-index: 1050; }
  #main.celebrations-page #celebrations-search-panel { display: none; flex-wrap: wrap; }
  #main.celebrations-page #celebrations-search-panel.is-open { display: flex; }
  #main.celebrations-page .celebrations-page__toolbar > .visitors-list-page__toolbar-filters { flex: 1 1 100%; flex-wrap: wrap; width: 100%; }
  #main.celebrations-page .celebrations-page__filter { flex: 1 1 auto; justify-content: center; }
  #main.celebrations-page .celebrations-page__toolbar > .celebrations-page__search { flex: 1 1 100%; width: 100%; }
  #main.celebrations-page .celebrations-page__tabs-toolbar { border: 0; display: block; min-height: 0; }
  #main.celebrations-page .celebrations-page__message-list-controls { justify-content: flex-end; margin: 0; padding: .75rem 1rem 0; width: 100%; }
  #main.celebrations-page .celebrations-page__tabs { background: var(--ictus-blue); border: 0; border-radius: 0; box-shadow: none; display: flex; flex-wrap: nowrap; gap: 0; height: 60px; left: 0; margin: 0; overflow-x: auto; overflow-y: hidden; padding: 0 4px; position: fixed; right: 0; scrollbar-width: none; top: 60px; width: 100%; z-index: 989; }
  body.theme-dark #main.celebrations-page .celebrations-page__tabs { background: var(--ictus-midnight); }
  #main.celebrations-page .celebrations-page__tabs::-webkit-scrollbar { display: none; }
  #main.celebrations-page .celebrations-page__tabs .visitors-list-page__tab { align-items: center; background: transparent; border: 0; border-bottom: 3px solid transparent; border-radius: 0; box-shadow: none; color: var(--ictus-white); display: flex; flex: 1 1 0; flex-direction: column; gap: 4px; justify-content: center; margin: 0; min-height: 60px; min-width: 0; opacity: .78; padding: 6px 5px; }
  #main.celebrations-page .celebrations-page__tabs .visitors-list-page__tab.is-active { border-bottom-color: var(--ictus-cyan-light); color: var(--ictus-white); opacity: 1; }
  #main.celebrations-page .celebrations-page__tabs .visitors-list-page__tab:focus-visible { outline: 2px solid var(--ictus-cyan-light); outline-offset: -4px; }
  #main.celebrations-page .celebrations-page__tab-icon { display: inline-block; font-size: 19px; line-height: 1; }
  #main.celebrations-page .celebrations-page__tabs .visitors-list-page__tab span { color: inherit; font-size: 10px; line-height: 1.2; white-space: nowrap; }
  #main.celebrations-page .celebrations-page__panel { min-height: 0; padding: 1.1rem 1rem; }
  #main.celebrations-page .celebrations-page__intro h4 { font-size: 1.2rem; }
  #main.celebrations-page .celebrations-page__empty { min-height: 235px; padding: 1.5rem 1rem; }
  #main.celebrations-page .celebrations-page__tabs .visitors-list-page__tab { flex: 0 0 25%; }
  #main.celebrations-page .celebrations-page__calendar-toolbar { align-items: stretch; flex-direction: column; gap: .65rem; padding: .75rem; }
  #main.celebrations-page .celebrations-page__calendar-nav { justify-content: space-between; width: 100%; }
  #main.celebrations-page .celebrations-page__calendar-nav h5 { flex: 1 1 auto; font-size: .88rem; min-width: 0; }
  #main.celebrations-page .celebrations-page__nav-button, #main.celebrations-page .celebrations-page__today-button { height: 36px; }
  #main.celebrations-page .celebrations-page__nav-button { flex-basis: 36px; }
  #main.celebrations-page .celebrations-page__today-button { padding: 0 .5rem; }
  #main.celebrations-page .celebrations-page__calendar-views { width: 100%; }
  #main.celebrations-page .celebrations-page__calendar-views button { flex: 1; }
  #main.celebrations-page .celebrations-page__calendar-summary { font-size: .7rem; flex-wrap: wrap; }
  #main.celebrations-page .celebrations-page__calendar-weekdays { font-size: .6rem; }
  #main.celebrations-page .celebrations-page__calendar-weekdays span { padding: .5rem 0; }
  #main.celebrations-page .celebrations-page__calendar-day { min-height: 60px; padding: .2rem; }
  #main.celebrations-page .celebrations-page__calendar-day-button { flex-direction: column; gap: 1px; justify-content: center; min-height: 36px; }
  #main.celebrations-page .celebrations-page__calendar-number { font-size: .8rem; height: 26px; width: 26px; }
  #main.celebrations-page .celebrations-page__calendar-mobile-count { background: var(--ictus-ocean); border-radius: 999px; color: var(--ictus-white); display: inline-block; font-size: .55rem; font-weight: 850; line-height: 13px; min-width: 13px; padding: 0 2px; }
  #main.celebrations-page .celebrations-page__calendar:not(.is-week) .celebrations-page__calendar-day-events { display: none; }
  #main.celebrations-page .celebrations-page__calendar.is-week .celebrations-page__calendar-grid { grid-template-columns: 1fr; }
  #main.celebrations-page .celebrations-page__calendar.is-week .celebrations-page__calendar-day { align-items: flex-start; display: flex; gap: .75rem; min-height: 70px; padding: .7rem; }
  #main.celebrations-page .celebrations-page__calendar.is-week .celebrations-page__calendar-day + .celebrations-page__calendar-day { border-top: 1px solid var(--ictus-border); }
  #main.celebrations-page .celebrations-page__calendar.is-week .celebrations-page__calendar-day { border-bottom: 0; border-right: 0; }
  #main.celebrations-page .celebrations-page__calendar.is-week .celebrations-page__calendar-day-button { flex: 0 0 44px; }
  #main.celebrations-page .celebrations-page__calendar.is-week .celebrations-page__calendar-weekday { font-size: .68rem; }
  #main.celebrations-page .celebrations-page__calendar.is-week .celebrations-page__calendar-day-events { flex: 1 1 auto; margin-top: 0; min-width: 0; }
  #main.celebrations-page .celebrations-page__calendar.is-week .celebrations-page__calendar-mobile-count { display: none; }
  #main.celebrations-page .celebrations-page__calendar.is-week .celebrations-page__calendar-event { font-size: .75rem; }
  #main.celebrations-page .celebrations-page__day-heading { align-items: flex-start; flex-direction: column; gap: .8rem; padding: 1rem; }
  #main.celebrations-page .celebrations-page__day-heading .btn { width: 100%; }
  #main.celebrations-page .celebrations-page__day-heading h5 { font-size: 1rem; }
  #main.celebrations-page .celebrations-page__plan { align-items: flex-start; flex-wrap: wrap; gap: .65rem; }
  #main.celebrations-page .celebrations-page__plan-date { flex-basis: 62px; min-height: 58px; }
  #main.celebrations-page .celebrations-page__plan-info { flex-basis: calc(100% - 75px); }
  #main.celebrations-page .celebrations-page__plan-actions { justify-content: flex-end; width: 100%; }
  .celebration-plan-form-page__card .card-body { padding: 1rem; }
  .celebration-plan-form-page__workspace { gap: .75rem; }
  .celebration-plan-form-page__section { border-radius: 12px; padding: 1rem; }
  .celebration-plan-form-page__section-heading { gap: .65rem; margin-bottom: 1rem; }
  .celebration-plan-form-page__section-heading > span { flex-basis: 36px; height: 36px; }
  .celebration-plan-form-page__section-heading h4 { font-size: .98rem; }
  .celebration-plan-form-page__section-heading p { font-size: .72rem; line-height: 1.4; }
  .celebration-plan-form-page__context-grid { grid-template-columns: 1fr 1fr; }
  .celebration-plan-form-page__context-grid > div:last-child { grid-column: 1 / -1; }
  .celebration-plan-form-page__message-source { align-items: start; grid-template-columns: 36px minmax(0, 1fr); padding: .7rem; }
  .celebration-plan-form-page__message-source-icon { height: 36px; }
  .celebration-plan-form-page__message-source-actions { grid-column: 1 / -1; justify-content: stretch; }
  .celebration-plan-form-page__message-source-actions .btn { justify-content: center; }
  .celebration-plan-form-page__message-source-actions .btn:first-child { flex: 1 1 auto; }
  .celebration-plan-form-page__actions { bottom: .4rem; display: grid; grid-template-columns: 1fr 1fr; }
  .celebration-plan-form-page__actions .btn { justify-content: center; }
  .celebration-plan-form-page__actions .btn-primary { grid-column: 1 / -1; grid-row: 1; }
  .celebration-plan-form-page__run-heading { flex-direction: column; }
  .celebration-plan-form-page__run-actions, .celebration-plan-form-page__run-actions .btn { width: 100%; }
  .celebration-plan-form-page__song-list li { align-items: flex-start; flex-wrap: wrap; }
  .celebration-plan-form-page__song-name { align-items: flex-start; flex-basis: calc(100% - 96px); gap: .35rem; grid-template-columns: minmax(0, 1fr); padding-top: .12rem; }
  .celebration-plan-form-page__song-name small { grid-template-columns: minmax(0, 1fr) minmax(74px, auto) minmax(42px, auto); width: 100%; }
  .celebration-plan-form-page__song-actions { justify-content: flex-end; margin-left: auto; width: 100%; }
  .celebration-plan-form-page__run-top { align-items: flex-start; flex-wrap: wrap; gap: .45rem; }
  .celebration-plan-form-page__run-time { flex: 0 0 54px; padding-top: .25rem; }
  .celebration-plan-form-page__run-copy { flex-basis: calc(100% - 112px); }
  .celebration-plan-form-page__run-item-actions { justify-content: flex-end; width: 100%; }
  .celebration-plan-form-page__run-item-actions .btn { height: 36px; width: 36px; }
  .celebration-realization-page__summary { gap: .4rem; }
  .celebration-realization-page__summary > div { padding: .65rem; }
  .celebration-realization-page__summary span { font-size: .66rem; line-height: 1.2; }
  .celebration-realization-page__summary strong { font-size: 1.1rem; }
  .celebration-realization-page__performed { margin-left: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .celebrations-page__calendar-day, .celebrations-page__nav-button, .celebrations-page__today-button { transition: none; }
}

/* Séries de mensagens */
.celebrations-page__message-status-filter > .btn { align-items: center; display: inline-flex; gap: .5rem; min-width: 190px; text-align: left; white-space: nowrap; }
.celebrations-page__message-status-filter > .btn::after { margin-left: auto; }
.celebrations-page__message-status-filter > .dropdown-menu { min-width: 100%; }
.celebrations-page__message-view-toggle .btn { align-items: center; display: inline-flex; gap: .4rem; justify-content: center; min-height: 36px; }
.celebrations-page__series-grid { display: grid; gap: 1.35rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.celebrations-page__series-card { --series-ink: var(--ictus-blue); --series-muted: var(--ictus-lead); background: linear-gradient(145deg, rgba(var(--ictus-cyan-rgb), .045), transparent 48%), var(--ictus-white); border: 1px solid var(--ictus-border); border-top: 4px solid var(--ictus-cyan); border-radius: 16px; box-shadow: 0 4px 18px rgba(16, 48, 88, .06); display: flex; flex-direction: column; min-width: 0; overflow: hidden; padding: 22px; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.celebrations-page__series-card:hover { box-shadow: 0 12px 30px rgba(0, 35, 75, .12); transform: translateY(-3px); }
.celebrations-page__series-card.is-inactive { opacity: .72; }
.celebrations-page__series-heading { align-items: center; display: flex; gap: .5rem; justify-content: space-between; margin-bottom: 1rem; }
.celebrations-page__series-emblem { align-items: center; background: var(--ictus-cyan-mist); border-radius: 12px; color: var(--series-ink); display: inline-flex; flex: 0 0 40px; font-size: 1.15rem; height: 40px; justify-content: center; }
.celebrations-page__series-status { align-items: center; border: 1px solid var(--ictus-border); border-radius: 999px; display: inline-flex; font-size: .65rem; font-weight: 800; gap: .35rem; justify-content: center; margin-left: auto; padding: .3rem .6rem; }
.celebrations-page__series-status.is-current { background: #dff3e8; color: #1d7146; }
.celebrations-page__series-status.is-upcoming { background: #fff0d1; color: #8b5c0e; }
.celebrations-page__series-status.is-finished { background: #eaf0f6; color: #526579; }
.celebrations-page__series-status.is-inactive { background: #eceff2; color: #687480; }
.celebrations-page__series-actions { display: flex; flex: 0 0 auto; gap: .1rem; }
.celebrations-page__series-actions button { align-items: center; background: transparent; border: 0; border-radius: 8px; color: var(--series-muted); display: inline-flex; height: 34px; justify-content: center; padding: 0; position: relative; width: 30px; }
.celebrations-page__series-actions button:hover { background: var(--ictus-cyan-mist); color: var(--series-ink); }
.celebrations-page__series-actions button.is-danger:hover { background: rgba(var(--ictus-critical-fill-rgb), .09); color: var(--ictus-critical-text); }
.celebrations-page__series-eyebrow { color: var(--series-muted); font-size: .65rem; font-weight: 850; letter-spacing: .07em; margin-bottom: .35rem; }
.celebrations-page__series-title { background: transparent; border: 0; color: var(--series-ink); display: -webkit-box; font-family: var(--ictus-font-heading); font-size: 1.15rem; font-weight: 850; line-height: 1.4; margin: 0 0 .75rem; min-height: 3.22rem; overflow: hidden; overflow-wrap: anywhere; padding: 0; text-align: left; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.celebrations-page__series-title:hover { color: var(--ictus-ocean); }
.celebrations-page__series-cover { border-radius: 11px; height: 120px; margin-bottom: .85rem; overflow: hidden; }
.celebrations-page__series-cover img { height: 100%; object-fit: cover; width: 100%; }
.celebrations-page__series-description { color: var(--series-muted); display: -webkit-box; font-size: .78rem; line-height: 1.45; margin: 0 0 1rem; min-height: 2.25rem; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.celebrations-page__series-description.is-empty { color: #93a0ae; font-style: italic; }
.celebrations-page__series-metrics { display: grid; gap: .3rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: .2rem 0 1.1rem; }
.celebrations-page__series-metrics > div { align-items: center; border-right: 1px solid var(--ictus-border); display: flex; flex-direction: column; gap: .2rem; min-width: 0; text-align: center; }
.celebrations-page__series-metrics > div:last-child { border: 0; }
.celebrations-page__series-metrics strong { color: var(--series-ink); font-size: 1.2rem; line-height: 1.3; }
.celebrations-page__series-metrics span { color: var(--series-muted); font-size: .62rem; line-height: 1.25; }
.celebrations-page__series-metrics .has-pending strong { color: var(--ictus-attention-text); }
.celebrations-page__series-period { align-items: center; background: #f5f8fc; border: 1px solid var(--ictus-border); border-radius: 10px; display: flex; gap: .65rem; margin-top: auto; padding: .75rem; }
.celebrations-page__series-period > i { color: var(--series-muted); }
.celebrations-page__series-period > div { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.celebrations-page__series-period span { color: var(--series-muted); font-size: .62rem; }
.celebrations-page__series-period strong { color: var(--series-ink); font-size: .75rem; overflow-wrap: anywhere; }
.celebrations-page__series-next { display: flex; flex-direction: column; margin: .65rem 0 .9rem; min-height: 3.2rem; }
.celebrations-page__series-next > span { color: var(--ictus-ocean); font-size: .6rem; font-weight: 900; letter-spacing: .07em; }
.celebrations-page__series-next strong { color: var(--ictus-blue); font-size: .84rem; margin: .15rem 0; }
.celebrations-page__series-next small { color: var(--ictus-lead); font-size: .71rem; }
.celebrations-page__series-next.is-complete,
.celebrations-page__series-next.is-empty { color: var(--series-muted); }
.celebrations-page__series-footer { align-items: center; border-top: 1px solid var(--ictus-border); display: flex; gap: .5rem; justify-content: space-between; padding-top: .85rem; }
.celebrations-page__series-people { align-items: center; display: flex; min-width: 0; }
.celebrations-page__series-avatar { align-items: center; background: #f5f8fc; border: 2px solid var(--ictus-white); border-radius: 50%; color: var(--series-ink); display: inline-flex; flex: 0 0 32px; font-size: .58rem; font-weight: 850; height: 32px; justify-content: center; overflow: hidden; width: 32px; }
.celebrations-page__series-avatar + .celebrations-page__series-avatar { margin-left: -9px; }
.celebrations-page__series-avatar img { height: 100%; object-fit: cover; width: 100%; }
.celebrations-page__series-people small { color: var(--series-muted); font-size: .62rem; margin-left: .45rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.celebrations-page__series-open { align-items: center; background: transparent; border: 1px solid var(--ictus-border); border-radius: 50%; color: var(--series-ink); display: inline-flex; flex: 0 0 32px; height: 32px; justify-content: center; padding: 0; width: 32px; }
.celebrations-page__series-open:hover { background: var(--ictus-cyan-mist); border-color: var(--ictus-cyan); }
.celebrations-page__series-list { border: 1px solid var(--ictus-border); border-radius: 14px; overflow: hidden; }
.celebrations-page__series-list table { min-width: 1080px; }
.celebrations-page__series-list thead th { background: #f4f7fb; color: var(--ictus-lead); font-size: .67rem; font-weight: 850; letter-spacing: .035em; padding: .75rem; text-transform: uppercase; white-space: nowrap; }
.celebrations-page__series-list tbody th,
.celebrations-page__series-list tbody td { border-color: var(--ictus-border); color: var(--ictus-lead); font-size: .74rem; padding: .8rem .75rem; vertical-align: middle; }
.celebrations-page__series-list tbody tr.is-inactive { opacity: .68; }
.celebrations-page__series-list tbody td > strong,
.celebrations-page__series-list tbody td > small { display: block; }
.celebrations-page__series-list tbody td > strong { color: var(--ictus-blue); font-size: .76rem; margin-bottom: .15rem; }
.celebrations-page__series-list tbody td > small + small { margin-top: .15rem; }
.celebrations-page__series-list-identity { align-items: center; display: flex; gap: .7rem; min-width: 250px; }
.celebrations-page__series-list-cover { align-items: center; background: var(--ictus-cyan-mist); border: 2px solid var(--ictus-cyan); border-radius: 10px; color: var(--ictus-blue); display: inline-flex; flex: 0 0 48px; height: 48px; justify-content: center; overflow: hidden; }
.celebrations-page__series-list-cover img { height: 100%; object-fit: cover; width: 100%; }
.celebrations-page__series-list-cover i { font-size: 1.15rem; }
.celebrations-page__series-list-copy { display: flex; flex-direction: column; min-width: 0; }
.celebrations-page__series-list-copy button { background: transparent; border: 0; color: var(--ictus-blue); font-weight: 850; overflow: hidden; padding: 0; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.celebrations-page__series-list-copy button:hover { color: var(--ictus-ocean); text-decoration: underline; }
.celebrations-page__series-list-copy small { display: block; font-weight: 400; max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.celebrations-page__series-list .celebrations-page__series-status { margin-left: 0; white-space: nowrap; }
.celebrations-page__series-list .celebrations-page__series-people { margin-bottom: .25rem; min-height: 30px; }
.celebrations-page__series-list .celebrations-page__series-avatar { flex-basis: 30px; height: 30px; width: 30px; }
.celebrations-page__series-list-period { min-width: 180px; }
.celebrations-page__message-calendar { display: flex; flex-direction: column; gap: 1rem; }
.celebrations-page__message-calendar-toolbar { align-items: center; background: linear-gradient(120deg, var(--ictus-blue), #164d82); border-radius: 14px; color: var(--ictus-white); display: flex; gap: 1rem; justify-content: space-between; padding: .9rem 1rem; }
.celebrations-page__message-calendar-navigation { align-items: center; display: flex; gap: .65rem; }
.celebrations-page__message-calendar-navigation > div { min-width: 116px; text-align: center; }
.celebrations-page__message-calendar-navigation span { display: block; font-size: .58rem; font-weight: 850; letter-spacing: .075em; opacity: .72; }
.celebrations-page__message-calendar-navigation h5 { color: inherit; font-size: 1.28rem; font-weight: 900; line-height: 1; margin: .18rem 0 0; }
.celebrations-page__message-calendar-navigation .celebrations-page__nav-button { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.3); color: var(--ictus-white); }
.celebrations-page__message-calendar-navigation .celebrations-page__nav-button:hover { background: rgba(255,255,255,.22); }
.celebrations-page__message-calendar-today { border-color: rgba(255,255,255,.55); color: var(--ictus-white); margin-left: .25rem; }
.celebrations-page__message-calendar-today:hover { background: var(--ictus-white); border-color: var(--ictus-white); color: var(--ictus-blue); }
.celebrations-page__message-calendar-today:disabled { border-color: rgba(255,255,255,.24); color: rgba(255,255,255,.55); }
.celebrations-page__message-calendar-summary { align-items: stretch; display: flex; gap: .45rem; }
.celebrations-page__message-calendar-summary > span { align-items: center; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.16); border-radius: 9px; display: flex; flex-direction: column; font-size: .61rem; justify-content: center; min-width: 72px; padding: .42rem .6rem; }
.celebrations-page__message-calendar-summary strong { color: inherit; font-size: 1rem; line-height: 1.15; }
.celebrations-page__message-calendar-half { background: var(--ictus-white); border: 1px solid var(--ictus-border); border-radius: 14px; overflow: hidden; }
.celebrations-page__message-calendar-half-heading { align-items: center; display: flex; justify-content: space-between; padding: .75rem .9rem; }
.celebrations-page__message-calendar-half-heading > div > span { color: var(--ictus-ocean); font-size: .58rem; font-weight: 900; letter-spacing: .08em; }
.celebrations-page__message-calendar-half-heading h6 { color: var(--ictus-blue); font-size: .9rem; font-weight: 850; margin: .1rem 0 0; }
.celebrations-page__message-calendar-half-heading > small { color: var(--ictus-lead); font-size: .62rem; }
.celebrations-page__message-calendar-half-heading > small i { margin-right: .2rem; }
.celebrations-page__message-calendar-scroll { border-top: 1px solid var(--ictus-border); scrollbar-color: var(--ictus-cyan) transparent; scrollbar-width: thin; }
.celebrations-page__message-calendar-table { border-collapse: collapse; table-layout: fixed; width: 100%; }
.celebrations-page__message-calendar-table th,
.celebrations-page__message-calendar-table td { border-right: 1px solid var(--ictus-border); text-align: center; }
.celebrations-page__message-calendar-table tr > :last-child { border-right: 0; }
.celebrations-page__message-calendar-months th { background: var(--ictus-blue); border-color: rgba(255,255,255,.18); color: var(--ictus-white); font-size: .63rem; font-weight: 850; letter-spacing: .07em; padding: .42rem .25rem; }
.celebrations-page__message-calendar-dates th { background: #f4f7fb; color: var(--ictus-blue); font-size: .71rem; padding: .34rem .15rem; }
.celebrations-page__message-calendar-dates th span,
.celebrations-page__message-calendar-dates th small { display: block; }
.celebrations-page__message-calendar-dates th small { color: var(--ictus-lead); font-size: .48rem; font-weight: 700; text-transform: uppercase; }
.celebrations-page__message-calendar-dates th.is-today { background: var(--ictus-cyan-mist); box-shadow: inset 0 3px 0 var(--ictus-ocean); color: var(--ictus-ocean); }
.celebrations-page__message-calendar-series-row td { background: #fafbfd; border-top: 1px solid var(--ictus-border); height: 42px; padding: .24rem; }
.celebrations-page__message-calendar-series-row td.is-empty { background: repeating-linear-gradient(135deg, #fbfcfd, #fbfcfd 6px, #f5f7fa 6px, #f5f7fa 12px); }
.celebrations-page__message-calendar-series-row button { border: 0; border-radius: 6px; display: block; font-size: .61rem; font-weight: 850; height: 32px; overflow: hidden; padding: .25rem .4rem; text-overflow: ellipsis; transition: filter .15s ease, transform .15s ease; white-space: nowrap; width: 100%; }
.celebrations-page__message-calendar-series-row button:hover { filter: brightness(.96); transform: translateY(-1px); }
.celebrations-page__message-calendar-series-row td > span { display: block; min-height: 32px; }
.celebrations-page__message-calendar-message-row td { background: var(--ictus-white); border-top: 1px solid var(--ictus-border); color: #c3cad2; height: 38px; padding: .2rem; }
.celebrations-page__message-calendar-message-row td.has-series { background: rgba(var(--ictus-cyan-rgb), .035); color: var(--ictus-lead); }
.celebrations-page__message-calendar-message-row td.has-message { color: var(--ictus-ocean); }
.celebrations-page__message-calendar-message-row td.is-today { box-shadow: inset 0 -3px 0 var(--ictus-ocean); }
.celebrations-page__message-calendar-message-row button { align-items: center; background: transparent; border: 0; color: inherit; display: inline-flex; font-size: .82rem; gap: .12rem; height: 28px; justify-content: center; padding: 0; width: 100%; }
.celebrations-page__message-calendar-message-row button span { align-items: center; background: var(--ictus-ocean); border-radius: 999px; color: var(--ictus-white); display: inline-flex; font-size: .48rem; font-weight: 850; height: 14px; justify-content: center; min-width: 14px; padding: 0 3px; }
.celebrations-page__message-calendar-legend { background: #f7f9fc; border: 1px solid var(--ictus-border); border-radius: 12px; padding: .75rem .85rem; }
.celebrations-page__message-calendar-legend > strong { color: var(--ictus-blue); display: block; font-size: .67rem; margin-bottom: .5rem; text-transform: uppercase; }
.celebrations-page__message-calendar-legend > div { display: flex; flex-wrap: wrap; gap: .4rem; }
.celebrations-page__message-calendar-legend button { align-items: center; background: var(--ictus-white); border: 1px solid var(--ictus-border); border-radius: 999px; color: var(--ictus-lead); display: inline-flex; font-size: .64rem; gap: .35rem; max-width: 240px; padding: .3rem .55rem; }
.celebrations-page__message-calendar-legend button:hover { border-color: var(--ictus-cyan); color: var(--ictus-blue); }
.celebrations-page__message-calendar-legend button i { border: 1px solid rgba(12,40,76,.16); border-radius: 50%; flex: 0 0 10px; height: 10px; width: 10px; }
.celebrations-page__message-calendar-legend button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.celebrations-page__message-calendar-empty { align-items: center; background: var(--ictus-white); border: 1px dashed var(--ictus-border); border-radius: 12px; color: var(--ictus-lead); display: flex; gap: .8rem; padding: 1rem; }
.celebrations-page__message-calendar-empty > i { color: var(--ictus-ocean); font-size: 1.4rem; }
.celebrations-page__message-calendar-empty strong,
.celebrations-page__message-calendar-empty span { display: block; }
.celebrations-page__message-calendar-empty strong { color: var(--ictus-blue); font-size: .82rem; }
.celebrations-page__message-calendar-empty span { font-size: .7rem; margin-top: .12rem; }

.repertoire-page__form-card.message-series-form__card { margin-left: 0; margin-right: 0; max-width: none; width: 100%; }
.message-series-form__cover-field { align-items: center; background: #f8fafd; border: 1px solid var(--ictus-border); border-radius: 12px; display: grid; gap: 1rem; grid-template-columns: minmax(220px, 38%) 1fr; margin-bottom: 1.25rem; overflow: hidden; padding: .8rem; }
.message-series-form__cover-preview { aspect-ratio: 16 / 7; background: #eaf0f6; border-radius: 9px; min-height: 130px; overflow: hidden; position: relative; }
.message-series-form__cover-preview img { height: 100%; object-fit: cover; width: 100%; }
.message-series-form__cover-preview > span { align-items: center; color: var(--ictus-lead); display: flex; flex-direction: column; gap: .3rem; inset: 0; justify-content: center; position: absolute; }
.message-series-form__cover-preview > span i { color: var(--ictus-ocean); font-size: 1.65rem; }
.message-series-form__cover-preview > span small { font-size: .72rem; font-weight: 750; }
.message-series-form__cover-copy { align-items: flex-start; display: flex; flex-direction: column; gap: .8rem; min-width: 0; }
.message-series-form__cover-copy > div:first-child > span { color: var(--ictus-ocean); font-size: .65rem; font-weight: 900; letter-spacing: .08em; }
.message-series-form__cover-copy h5 { color: var(--ictus-blue); font-size: .98rem; font-weight: 850; margin: .15rem 0 .25rem; }
.message-series-form__cover-copy p { color: var(--ictus-lead); font-size: .8rem; line-height: 1.45; margin: 0; }
.message-series-form__cover-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.message-series-form__color { display: flex; gap: .5rem; }
.message-series-form__color .form-control-color { border: 1px solid rgba(12, 40, 76, .34); flex: 0 0 52px; height: 42px; padding: .2rem; }
.message-series-form__palette { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: -.25rem; }
.message-series-form__palette button { border: 2px solid var(--ictus-white); border-radius: 50%; box-shadow: 0 0 0 1px rgba(12, 40, 76, .25); height: 28px; padding: 0; transition: transform .15s ease, box-shadow .15s ease; width: 28px; }
.message-series-form__palette button:hover { transform: scale(1.08); }
.message-series-form__palette button.is-selected { box-shadow: 0 0 0 3px var(--ictus-ocean); transform: scale(1.06); }
.message-series-form__planning { border-top: 1px solid var(--ictus-border); margin-top: 1.5rem; padding-top: 1.4rem; }
.message-series-form__planning-heading { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: 1rem; }
.message-series-form__planning-heading > div:first-child { min-width: 0; }
.message-series-form__planning-heading > div:last-child { display: flex; flex: 0 0 auto; gap: .5rem; }
.message-series-form__planning-heading > div > span { color: var(--ictus-ocean); font-size: .68rem; font-weight: 900; letter-spacing: .08em; }
.message-series-form__planning-heading h5 { color: var(--ictus-blue); font-weight: 850; margin: .2rem 0; }
.message-series-form__planning-heading p { color: var(--ictus-lead); font-size: .84rem; margin: 0; }
.message-series-form__empty { align-items: center; background: #f8fafd; border: 1px dashed var(--ictus-border); border-radius: 10px; color: var(--ictus-lead); display: flex; flex-direction: column; gap: .25rem; justify-content: center; min-height: 145px; padding: 1.2rem; text-align: center; }
.message-series-form__empty i { color: var(--ictus-ocean); font-size: 1.6rem; }
.message-series-form__empty strong { color: var(--ictus-blue); }
.message-series-form__empty span { font-size: .8rem; }
.message-series-form__message { border: 1px solid var(--ictus-border); border-radius: 11px; margin-top: .75rem; overflow: hidden; padding: 1rem; }
.message-series-form__message > header { align-items: center; border-bottom: 1px solid var(--ictus-border); display: flex; justify-content: space-between; margin: -1rem -1rem 1rem; padding: .65rem 1rem; }
.message-series-form__date-mark { align-items: center; border-left: 4px solid var(--ictus-ocean); color: var(--ictus-blue); display: flex; font-size: .8rem; font-weight: 800; gap: .5rem; min-height: 30px; padding-left: .65rem; }
.message-series-form__date-mark i { color: var(--ictus-ocean); }

body.theme-dark .celebrations-page__series-next strong,
body.theme-dark .message-series-form__planning-heading h5,
body.theme-dark .message-series-form__empty strong,
body.theme-dark .message-series-form__date-mark { color: var(--ictus-white); }
body.theme-dark .celebrations-page__series-card { background: var(--ictus-dark-surface); border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__series-list { border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__series-list thead th { background: var(--ictus-dark-surface-hover); color: var(--ictus-dark-muted); }
body.theme-dark .celebrations-page__series-list tbody th,
body.theme-dark .celebrations-page__series-list tbody td { background: var(--ictus-dark-surface); border-color: var(--ictus-dark-border); color: var(--ictus-dark-muted); }
body.theme-dark .celebrations-page__series-list tbody td > strong,
body.theme-dark .celebrations-page__series-list-copy button { color: var(--ictus-white); }
body.theme-dark .celebrations-page__message-calendar-half,
body.theme-dark .celebrations-page__message-calendar-message-row td,
body.theme-dark .celebrations-page__message-calendar-empty { background: var(--ictus-dark-surface); border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__message-calendar-half-heading h6,
body.theme-dark .celebrations-page__message-calendar-legend > strong,
body.theme-dark .celebrations-page__message-calendar-empty strong { color: var(--ictus-white); }
body.theme-dark .celebrations-page__message-calendar-half-heading > small,
body.theme-dark .celebrations-page__message-calendar-empty { color: var(--ictus-dark-muted); }
body.theme-dark .celebrations-page__message-calendar-scroll,
body.theme-dark .celebrations-page__message-calendar-table th,
body.theme-dark .celebrations-page__message-calendar-table td { border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__message-calendar-dates th,
body.theme-dark .celebrations-page__message-calendar-series-row td,
body.theme-dark .celebrations-page__message-calendar-legend { background: var(--ictus-dark-surface-hover); border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__message-calendar-series-row td.is-empty { background: var(--ictus-dark-surface-hover); }
body.theme-dark .celebrations-page__message-calendar-message-row td.has-series { background: rgba(var(--ictus-cyan-rgb), .06); }
body.theme-dark .celebrations-page__message-calendar-legend button { background: var(--ictus-dark-surface); border-color: var(--ictus-dark-border); color: var(--ictus-dark-muted); }
body.theme-dark .celebrations-page__tabs-toolbar { border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__messages-total { border-color: var(--ictus-dark-border); color: var(--ictus-dark-muted); }
body.theme-dark .celebrations-page__series-card { --series-ink: var(--ictus-white); --series-muted: var(--ictus-dark-muted); }
body.theme-dark .celebrations-page__series-period,
body.theme-dark .celebrations-page__series-avatar,
body.theme-dark .message-series-form__empty,
body.theme-dark .message-series-form__cover-field,
body.theme-dark .message-series-form__cover-preview { background: var(--ictus-dark-surface-hover); border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__series-avatar { border-color: var(--ictus-dark-surface); }
body.theme-dark .message-series-form__planning,
body.theme-dark .message-series-form__message,
body.theme-dark .message-series-form__message > header { border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__series-description,
body.theme-dark .celebrations-page__series-next small,
body.theme-dark .message-series-form__planning-heading p,
body.theme-dark .message-series-form__empty { color: var(--ictus-dark-muted); }
body.theme-dark .message-series-form__cover-copy h5 { color: var(--ictus-white); }
body.theme-dark .message-series-form__cover-copy p,
body.theme-dark .message-series-form__cover-preview > span { color: var(--ictus-dark-muted); }

@media (max-width: 1399.98px) {
  .celebrations-page__series-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
  #main.celebrations-page .celebrations-page__message-status-filter,
  #main.celebrations-page .celebrations-page__message-status-filter > .btn { width: 100%; }
  .celebrations-page__message-view-toggle { display: flex; width: 100%; }
  .celebrations-page__message-view-toggle .btn { flex: 1 1 0; padding-left: .45rem; padding-right: .45rem; }
  .celebrations-page__message-calendar-toolbar { align-items: stretch; flex-direction: column; }
  .celebrations-page__message-calendar-navigation { justify-content: center; }
  .celebrations-page__message-calendar-navigation > div { min-width: 90px; }
  .celebrations-page__message-calendar-today { margin-left: 0; padding-left: .5rem; padding-right: .5rem; }
  .celebrations-page__message-calendar-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .celebrations-page__message-calendar-summary > span { min-width: 0; }
  .celebrations-page__message-calendar-half-heading { align-items: flex-start; flex-direction: column; gap: .25rem; }
  .celebrations-page__message-calendar-half-heading > small { display: block; }
  .celebrations-page__message-calendar-legend { padding: .65rem; }
  .celebrations-page__series-grid { grid-template-columns: 1fr; }
  .celebrations-page__series-card { padding: 18px; }
  .celebrations-page__series-cover { height: 112px; }
  .celebrations-page__series-heading { gap: .4rem; }
  .celebrations-page__series-actions button { width: 28px; }
  .message-series-form__cover-field { grid-template-columns: 1fr; padding: .65rem; }
  .message-series-form__cover-preview { min-height: 0; }
  .message-series-form__cover-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .message-series-form__cover-actions .btn:only-child { grid-column: 1 / -1; }
  .message-series-form__planning-heading { flex-direction: column; }
  .message-series-form__planning-heading > div:last-child { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .message-series-form__planning-heading .btn { padding-left: .45rem; padding-right: .45rem; }
  .message-series-form__message { padding: .85rem; }
  .message-series-form__message > header { margin: -.85rem -.85rem .85rem; padding: .6rem .85rem; }
}

.celebrations-page__plan-timeline-empty { align-items: center; background: var(--ictus-white); border: 1px dashed var(--ictus-border); border-radius: 14px; display: flex; gap: 1rem; min-height: 150px; padding: 1.25rem; }
.celebrations-page__plan-timeline-empty > span { align-items: center; background: var(--ictus-cyan-mist); border-radius: 12px; color: var(--ictus-ocean); display: inline-flex; flex: 0 0 48px; font-size: 1.25rem; height: 48px; justify-content: center; }
.celebrations-page__plan-timeline-empty > div { flex: 1 1 auto; }
.celebrations-page__plan-timeline-empty strong { color: var(--ictus-blue); display: block; }
.celebrations-page__plan-timeline-empty p { color: var(--ictus-lead); font-size: .8rem; margin: .18rem 0 0; }
.celebrations-page__plan-timeline { display: flex; flex-direction: column; gap: 1.15rem; }
.celebrations-page__timeline-day { min-width: 0; position: relative; }
.celebrations-page__timeline-day-heading { align-items: center; display: flex; gap: .75rem; margin-bottom: .55rem; padding: 0 .25rem; }
.celebrations-page__timeline-date-mark { align-items: center; background: var(--ictus-blue); border-radius: 10px; color: var(--ictus-white); display: flex; flex: 0 0 46px; flex-direction: column; height: 46px; justify-content: center; }
.celebrations-page__timeline-date-mark.is-today { background: var(--ictus-ocean); box-shadow: 0 0 0 4px rgba(var(--ictus-cyan-rgb), .18); }
.celebrations-page__timeline-date-mark strong { font-size: 1rem; line-height: 1; }
.celebrations-page__timeline-date-mark span { font-size: .55rem; font-weight: 800; margin-top: .15rem; text-transform: uppercase; }
.celebrations-page__timeline-day-heading > div:nth-child(2) { flex: 1 1 auto; min-width: 0; }
.celebrations-page__timeline-day-heading > div:nth-child(2) > span { color: var(--ictus-ocean); font-size: .58rem; font-weight: 900; letter-spacing: .08em; }
.celebrations-page__timeline-day-heading h5 { color: var(--ictus-blue); font-size: .92rem; font-weight: 850; margin: .08rem 0 0; text-transform: capitalize; }
.celebrations-page__timeline-day-heading > small { color: var(--ictus-lead); font-size: .68rem; white-space: nowrap; }
.celebrations-page__timeline-plan { --plan-color: var(--ictus-ocean); background: var(--ictus-white); border: 1px solid var(--ictus-border); border-left: 5px solid var(--plan-color); border-radius: 14px; box-shadow: 0 4px 18px rgba(16, 48, 88, .045); margin-left: 23px; overflow: hidden; position: relative; }
.celebrations-page__timeline-plan + .celebrations-page__timeline-plan { margin-top: .6rem; }
.celebrations-page__timeline-plan::before { background: var(--ictus-border); content: ''; height: calc(100% + .65rem); left: -29px; position: absolute; top: -1px; width: 2px; }
.celebrations-page__timeline-plan-main { display: flex; min-width: 0; }
.celebrations-page__timeline-time { align-items: center; background: #f5f8fc; border-right: 1px solid var(--ictus-border); display: flex; flex: 0 0 90px; flex-direction: column; justify-content: center; padding: 1rem .55rem; text-align: center; }
.celebrations-page__timeline-time strong { color: var(--ictus-blue); font-size: 1.15rem; font-weight: 900; }
.celebrations-page__timeline-time span { color: var(--ictus-lead); font-size: .6rem; margin-top: .2rem; }
.celebrations-page__timeline-content { flex: 1 1 auto; min-width: 0; padding: 1rem 1.1rem; }
.celebrations-page__timeline-plan-heading { align-items: flex-start; display: flex; gap: .75rem; justify-content: space-between; }
.celebrations-page__timeline-plan-heading > div { min-width: 0; }
.celebrations-page__timeline-celebration { color: var(--ictus-ocean); display: block; font-size: .62rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.celebrations-page__timeline-plan-heading h4 { color: var(--ictus-blue); font-size: 1.08rem; font-weight: 900; margin: .16rem 0 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.celebrations-page__timeline-readiness { align-items: center; background: #edf7f2; border: 1px solid #c7e8d7; border-radius: 999px; color: #147248; display: inline-flex; flex: 0 0 auto; font-size: .65rem; font-weight: 800; gap: .35rem; padding: .34rem .55rem; }
.celebrations-page__timeline-readiness.is-pending { background: #fff4e5; border-color: #f4d29c; color: #8a5510; }
.celebrations-page__timeline-readiness.is-realized { background: #e7f5ff; border-color: #b7dcf5; color: #155f93; }
.celebrations-page__timeline-connections { display: grid; gap: .6rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: .85rem; }
.celebrations-page__timeline-connections section { align-items: center; background: #f7f9fc; border: 1px solid var(--ictus-border); border-radius: 10px; display: flex; gap: .6rem; min-width: 0; padding: .65rem .7rem; }
.celebrations-page__timeline-connections section > i { align-items: center; background: var(--ictus-cyan-mist); border-radius: 8px; color: var(--ictus-ocean); display: inline-flex; flex: 0 0 32px; height: 32px; justify-content: center; }
.celebrations-page__timeline-connections section > div { min-width: 0; }
.celebrations-page__timeline-connections span, .celebrations-page__timeline-connections strong, .celebrations-page__timeline-connections small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.celebrations-page__timeline-connections span { color: var(--ictus-ocean); font-size: .55rem; font-weight: 900; letter-spacing: .06em; }
.celebrations-page__timeline-connections strong { color: var(--ictus-blue); font-size: .74rem; margin: .08rem 0; }
.celebrations-page__timeline-connections small { color: var(--ictus-lead); font-size: .62rem; }
.celebrations-page__timeline-pending { align-items: center; color: #8a5510; display: flex; font-size: .66rem; gap: .4rem; margin-top: .65rem; }
.celebrations-page__timeline-actions { align-items: center; border-top: 1px solid var(--ictus-border); display: flex; gap: .4rem; justify-content: flex-end; margin-top: .8rem; padding-top: .8rem; }
.celebrations-page__timeline-actions .btn { align-items: center; display: inline-flex; gap: .35rem; }
.celebrations-page__timeline-delete { margin-left: .2rem; }
.celebrations-page__timetable { background: #f8fafd; border-top: 1px solid var(--ictus-border); padding: 1rem 1.2rem 1.15rem 7.6rem; }
.celebrations-page__timetable > header { align-items: flex-end; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: .85rem; }
.celebrations-page__timetable > header span { color: var(--ictus-ocean); font-size: .57rem; font-weight: 900; letter-spacing: .08em; }
.celebrations-page__timetable > header h5 { color: var(--ictus-blue); font-size: .88rem; font-weight: 850; margin: .1rem 0 0; }
.celebrations-page__timetable > header small { color: var(--ictus-lead); font-size: .64rem; }
.celebrations-page__timetable ol { list-style: none; margin: 0; padding: 0; }
.celebrations-page__timetable li { align-items: center; display: grid; gap: .65rem; grid-template-columns: 48px 30px minmax(0, 1fr); min-height: 48px; position: relative; }
.celebrations-page__timetable li:not(:last-child)::after { background: var(--ictus-border); content: ''; height: calc(100% - 24px); left: 62px; position: absolute; top: 36px; width: 2px; }
.celebrations-page__timetable time { color: var(--ictus-blue); font-size: .7rem; font-weight: 850; text-align: right; }
.celebrations-page__timetable-dot { align-items: center; background: var(--ictus-white); border: 2px solid var(--ictus-ocean); border-radius: 50%; color: var(--ictus-ocean); display: inline-flex; height: 30px; justify-content: center; position: relative; width: 30px; z-index: 1; }
.celebrations-page__timetable-dot.is-message { border-color: #7c4d9e; color: #7c4d9e; }
.celebrations-page__timetable-dot.is-other { border-color: #607d8b; color: #607d8b; }
.celebrations-page__timetable li > div { min-width: 0; }
.celebrations-page__timetable li strong { color: var(--ictus-blue); display: block; font-size: .75rem; }
.celebrations-page__timetable li small { color: var(--ictus-lead); display: block; font-size: .63rem; margin-top: .08rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

body.theme-dark .celebrations-page__plan-timeline-empty,
body.theme-dark .celebrations-page__timeline-plan { background: var(--ictus-dark-surface); border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__plan-timeline-empty strong,
body.theme-dark .celebrations-page__timeline-day-heading h5,
body.theme-dark .celebrations-page__timeline-time strong,
body.theme-dark .celebrations-page__timeline-plan-heading h4,
body.theme-dark .celebrations-page__timeline-connections strong,
body.theme-dark .celebrations-page__timetable > header h5,
body.theme-dark .celebrations-page__timetable time,
body.theme-dark .celebrations-page__timetable li strong { color: var(--ictus-white); }
body.theme-dark .celebrations-page__timeline-time,
body.theme-dark .celebrations-page__timeline-connections section,
body.theme-dark .celebrations-page__timetable { background: var(--ictus-dark-surface-hover); border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__timeline-plan::before,
body.theme-dark .celebrations-page__timetable li:not(:last-child)::after { background: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__timeline-actions { border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__timetable-dot { background: var(--ictus-dark-surface); }

.celebrations-page__simple-filter-menu { max-height: 310px; min-width: 215px; overflow-y: auto; padding: .4rem; }
.celebrations-page__simple-filter-menu .dropdown-item { align-items: center; border-radius: 7px; display: flex; gap: .4rem; padding: .48rem .65rem; }
.celebrations-page__worship-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.celebrations-page__worship-card { background: var(--ictus-white); border: 1px solid var(--ictus-border); border-radius: 16px; border-top: 6px solid var(--ictus-ocean); box-shadow: 0 5px 20px rgba(16, 48, 88, .06); display: flex; flex-direction: column; min-height: 480px; padding: 1.35rem; }
.celebrations-page__worship-card-heading { align-items: flex-start; display: flex; gap: .65rem; justify-content: space-between; margin-bottom: 1.15rem; }
.celebrations-page__worship-date strong { color: var(--ictus-blue); display: block; font-size: .84rem; font-weight: 850; }
.celebrations-page__worship-date span { color: var(--ictus-lead); display: block; font-size: .75rem; margin-top: .08rem; }
.celebrations-page__worship-status { align-items: center; background: #edf7f2; border: 1px solid #c7e8d7; border-radius: 999px; color: #147248; display: inline-flex; font-size: .68rem; font-weight: 800; gap: .35rem; line-height: 1.2; padding: .35rem .55rem; white-space: nowrap; }
.celebrations-page__worship-status.is-pending { background: #fff4e5; border-color: #f4d29c; color: #8a5510; }
.celebrations-page__worship-status.is-realized { background: #e7f5ff; border-color: #b7dcf5; color: #155f93; }
.celebrations-page__worship-eyebrow { color: var(--ictus-ocean); font-size: .66rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.celebrations-page__worship-title { background: transparent; border: 0; color: var(--ictus-blue); display: -webkit-box; font-size: 1.2rem; font-weight: 900; line-height: 1.2; margin: .28rem 0 .35rem; min-height: 2.4em; overflow: hidden; padding: 0; text-align: left; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.celebrations-page__worship-title:hover { color: var(--ictus-ocean); }
.celebrations-page__worship-passage { align-items: center; color: var(--ictus-lead); display: flex; font-size: .76rem; gap: .4rem; margin: 0 0 1rem; }
.celebrations-page__worship-passage i { color: var(--ictus-ocean); }
.celebrations-page__worship-people { border-bottom: 1px solid var(--ictus-border); border-top: 1px solid var(--ictus-border); display: grid; gap: .75rem; margin-top: auto; padding: 1rem 0; }
.celebrations-page__worship-people > div { align-items: center; display: flex; gap: .7rem; min-width: 0; }
.celebrations-page__worship-detail-icon { align-items: center; background: var(--ictus-cyan-mist); border-radius: 9px; color: var(--ictus-ocean); display: inline-flex; flex: 0 0 36px; height: 36px; justify-content: center; }
.celebrations-page__worship-people > div > span:last-child { min-width: 0; }
.celebrations-page__worship-people small, .celebrations-page__worship-people strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.celebrations-page__worship-people small { color: var(--ictus-lead); font-size: .65rem; }
.celebrations-page__worship-people strong { color: var(--ictus-blue); font-size: .8rem; margin-top: .08rem; }
.celebrations-page__worship-repertoire { background: #f6f9fc; border: 1px solid var(--ictus-border); border-radius: 11px; margin-top: .9rem; padding: .8rem; }
.celebrations-page__worship-repertoire > div { align-items: center; display: flex; justify-content: space-between; }
.celebrations-page__worship-repertoire > div span { color: var(--ictus-ocean); font-size: .6rem; font-weight: 900; letter-spacing: .08em; }
.celebrations-page__worship-repertoire > div strong { color: var(--ictus-blue); font-size: .72rem; }
.celebrations-page__worship-repertoire p { color: var(--ictus-lead); font-size: .72rem; line-height: 1.45; margin: .4rem 0 0; }
.celebrations-page__worship-repertoire.is-empty { background: #fffaf0; border-color: #efdab6; }
.celebrations-page__worship-pending { align-items: center; color: #8a5510; display: flex; font-size: .7rem; gap: .45rem; padding: .65rem .1rem 0; }
.celebrations-page__worship-card-footer { align-items: center; border-top: 1px solid var(--ictus-border); color: var(--ictus-lead); display: flex; font-size: .68rem; gap: .5rem; justify-content: space-between; margin-top: .85rem; padding-top: .85rem; }
.celebrations-page__worship-card-footer > span { align-items: center; display: inline-flex; gap: .35rem; }
.celebrations-page__worship-card-footer > span i { color: var(--ictus-ocean); }
.celebrations-page__worship-list { background: var(--ictus-white); border: 1px solid var(--ictus-border); border-radius: 14px; overflow: hidden; }
.celebrations-page__worship-list thead th { background: #f2f6fb; border-bottom-color: var(--ictus-border); color: var(--ictus-lead); font-size: .67rem; letter-spacing: .04em; padding: .8rem 1rem; text-transform: uppercase; }
.celebrations-page__worship-list tbody th, .celebrations-page__worship-list tbody td { border-color: var(--ictus-border); color: var(--ictus-lead); font-size: .78rem; padding: .8rem 1rem; }
.celebrations-page__worship-list-title { align-items: center; display: flex; gap: .7rem; min-width: 270px; }
.celebrations-page__worship-list-title > span { align-items: center; background: var(--ictus-cyan-mist); border-left: 4px solid var(--ictus-ocean); border-radius: 8px; display: flex; flex: 0 0 48px; flex-direction: column; min-height: 48px; justify-content: center; }
.celebrations-page__worship-list-title > span strong { color: var(--ictus-blue); font-size: .92rem; line-height: 1; }
.celebrations-page__worship-list-title > span small { color: var(--ictus-lead); font-size: .58rem; margin-top: .2rem; }
.celebrations-page__worship-list-title > div { min-width: 0; }
.celebrations-page__worship-list-title button { background: transparent; border: 0; color: var(--ictus-blue); display: block; font-weight: 850; max-width: 300px; overflow: hidden; padding: 0; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.celebrations-page__worship-list-title button:hover { color: var(--ictus-ocean); text-decoration: underline; }
.celebrations-page__worship-list-title > div small, .celebrations-page__worship-list-songs { display: block; font-size: .68rem; font-weight: 400; margin-top: .12rem; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.celebrations-page__worship-calendar { display: flex; flex-direction: column; gap: .8rem; }
.celebrations-page__worship-calendar-toolbar { align-items: center; background: linear-gradient(120deg, var(--ictus-blue), #164d82); border-radius: 14px; color: var(--ictus-white); display: flex; justify-content: center; padding: .75rem 1rem; }
.celebrations-page__worship-calendar-toolbar > div { min-width: 230px; text-align: center; }
.celebrations-page__worship-calendar-toolbar span { display: block; font-size: .58rem; font-weight: 850; letter-spacing: .08em; opacity: .72; }
.celebrations-page__worship-calendar-toolbar h5 { color: inherit; font-size: 1.1rem; font-weight: 900; margin: .12rem 0 0; }
.celebrations-page__worship-calendar-toolbar .celebrations-page__nav-button { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.3); color: var(--ictus-white); }

body.theme-dark .celebrations-page__worship-card,
body.theme-dark .celebrations-page__worship-list { background: var(--ictus-dark-surface); border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__worship-date strong,
body.theme-dark .celebrations-page__worship-title,
body.theme-dark .celebrations-page__worship-people strong,
body.theme-dark .celebrations-page__worship-repertoire > div strong,
body.theme-dark .celebrations-page__worship-list-title button { color: var(--ictus-white); }
body.theme-dark .celebrations-page__worship-people,
body.theme-dark .celebrations-page__worship-card-footer,
body.theme-dark .celebrations-page__worship-list tbody th,
body.theme-dark .celebrations-page__worship-list tbody td { border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__worship-repertoire,
body.theme-dark .celebrations-page__worship-list thead th,
body.theme-dark .celebrations-page__worship-list-title > span { background: var(--ictus-dark-surface-hover); border-color: var(--ictus-dark-border); }
body.theme-dark .celebrations-page__worship-list tbody th,
body.theme-dark .celebrations-page__worship-list tbody td { background: var(--ictus-dark-surface); color: var(--ictus-dark-muted); }

@media (max-width: 1399.98px) {
  .celebrations-page__worship-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
  .celebrations-page__plan-list-controls { width: 100%; }
  .celebrations-page__plan-timeline-empty { align-items: flex-start; flex-wrap: wrap; }
  .celebrations-page__plan-timeline-empty > div { flex-basis: calc(100% - 64px); }
  .celebrations-page__plan-timeline-empty .btn { width: 100%; }
  .celebrations-page__timeline-day-heading > small { display: none; }
  .celebrations-page__timeline-plan { margin-left: 0; }
  .celebrations-page__timeline-plan::before { display: none; }
  .celebrations-page__timeline-plan-main { display: block; }
  .celebrations-page__timeline-time { align-items: center; border-bottom: 1px solid var(--ictus-border); border-right: 0; flex-direction: row; gap: .45rem; justify-content: flex-start; min-height: 42px; padding: .55rem .8rem; }
  .celebrations-page__timeline-time strong { font-size: .95rem; }
  .celebrations-page__timeline-time span { margin: 0; }
  .celebrations-page__timeline-content { padding: .85rem; }
  .celebrations-page__timeline-plan-heading { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .celebrations-page__timeline-plan-heading h4 { font-size: .96rem; white-space: normal; }
  .celebrations-page__timeline-connections { grid-template-columns: 1fr; }
  .celebrations-page__timeline-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .celebrations-page__timeline-actions .btn { justify-content: center; }
  .celebrations-page__timeline-actions .celebrations-page__timeline-toggle { grid-column: 1 / -1; }
  .celebrations-page__timeline-actions .celebrations-page__timeline-delete { margin: 0; }
  .celebrations-page__timetable { padding: .9rem; }
  .celebrations-page__timetable > header { align-items: flex-start; flex-direction: column; gap: .2rem; }
  .celebrations-page__timetable li { gap: .4rem; grid-template-columns: 42px 28px minmax(0, 1fr); }
  .celebrations-page__timetable li:not(:last-child)::after { left: 55px; }
  #main.celebrations-page .celebrations-page__worship-filters,
  #main.celebrations-page .celebrations-page__worship-filters .entity-list__filter-control,
  #main.celebrations-page .celebrations-page__worship-filters .entity-list__filter-control > .btn { width: 100%; }
  .celebrations-page__worship-grid { grid-template-columns: 1fr; }
  .celebrations-page__worship-card { min-height: 0; padding: 1rem; }
  .celebrations-page__worship-list-controls { width: 100%; }
  .celebrations-page__worship-calendar-toolbar > div { min-width: 180px; }
  .celebrations-page__worship-calendar .celebrations-page__calendar { overflow-x: auto; }
  .celebrations-page__worship-calendar .celebrations-page__calendar-weekdays,
  .celebrations-page__worship-calendar .celebrations-page__calendar-grid { min-width: 680px; }
}
