.bottom-nav{border-top:1px solid var(--separator);background:var(--surface);width:100%;padding-bottom:max(env(safe-area-inset-bottom,0px), var(--tg-viewport-safe-area-inset-bottom,0px));display:flex;position:sticky;bottom:0}.bottom-nav__item{gap:var(--space-0);min-height:56px;padding:var(--space-2) var(--space-0);color:var(--ink-muted);background:0 0;border-radius:0;flex-direction:column;flex:1;min-width:0;font-weight:400}.bottom-nav__item--active{color:var(--accent)}.bottom-nav__icon{flex-shrink:0}.bottom-nav__label{font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.toasts{left:50%;bottom:calc(72px + var(--tg-viewport-safe-area-inset-bottom,0px));z-index:20;gap:var(--space-2);pointer-events:none;flex-direction:column;width:min(92vw,480px);display:flex;position:fixed;transform:translate(-50%)}.toast{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--accent-ink);background:var(--accent);box-shadow:0 4px 20px var(--shadow);margin:0;line-height:1.35}.toast--error{background:var(--danger)}.state{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-3);text-align:center;flex-direction:column;display:flex}.state__icon{color:var(--ink-muted)}.state__text{color:var(--ink);margin:0}.state__hint{font-size:var(--text-sm);color:var(--ink-muted);margin:0}.skeleton{background:var(--surface);border-radius:var(--radius-sm);animation:1.4s ease-in-out infinite skeleton-pulse}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.55}}.skeleton-list{gap:var(--space-2);flex-direction:column;display:flex}.skeleton--row{height:56px}.skeleton-card{gap:var(--space-2);flex-direction:column;display:flex}.skeleton--title{width:70%;height:24px}.skeleton--line{height:16px}.skeleton--short{width:45%}.skeleton--actions{height:var(--tap);margin-top:var(--space-2)}.skeleton-grid{gap:var(--space-1);grid-template-columns:repeat(7,1fr);display:grid}.skeleton--cell{aspect-ratio:1}.confirm-action{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.confirm-action__question{font-size:var(--text-sm);color:var(--ink-muted)}.form-actions{gap:var(--space-2);flex-direction:column;display:flex}.form-actions__bar{z-index:1;gap:var(--space-2);padding:var(--space-3) 0;padding-bottom:calc(var(--space-3) + var(--tg-viewport-safe-area-inset-bottom,0px));background:var(--bg);box-shadow:0 -1px 0 var(--separator);display:flex;position:sticky;bottom:0}.form-actions__confirm{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.form-actions__question{font-size:var(--text-sm);color:var(--ink-muted)}.form-actions__draft{margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--ink-muted)}.event-form__field{margin-bottom:var(--space-3);font-size:var(--text-sm);color:var(--ink-muted);display:block}.event-form__field input,.event-form__field select,.event-form__field textarea{margin-top:var(--space-1)}.event-form__checkbox{align-items:center;gap:var(--space-2);min-height:var(--tap);margin-bottom:var(--space-1);font-size:var(--text-base);display:flex}.event-form__error{margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--danger)}.event-form__actions{gap:var(--space-2);display:flex}.event-form__hint{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--ink-muted)}.event-form__field-error{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--danger);display:block}.event-form__field input[aria-invalid=true],.event-form__field select[aria-invalid=true],.event-form__field textarea[aria-invalid=true]{border-color:var(--danger)}.bottom-sheet__overlay{z-index:15;background:var(--overlay);border:none;border-radius:0;min-height:0;padding:0;position:fixed;inset:0}.bottom-sheet__panel{z-index:16;max-height:85vh;padding:var(--space-3);padding-bottom:calc(var(--space-3) + var(--tg-viewport-safe-area-inset-bottom,0px));background:var(--surface);border-radius:var(--radius) var(--radius) 0 0;border-top:1px solid var(--separator);box-shadow:0 -2px 12px var(--shadow);position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.bottom-sheet__panel:focus{outline:none}.bottom-sheet__title{margin:0 0 var(--space-2);font-size:var(--text-base)}.intentions__list{margin:0;padding:0;list-style:none}.intentions__item{padding:var(--space-2) 0;border-bottom:1px solid var(--separator)}.intentions__text{overflow-wrap:anywhere;margin:0}.intentions__signature{margin:var(--space-0) 0 0;font-size:var(--text-sm);color:var(--ink-muted)}.intentions__actions{gap:var(--space-2);margin-top:var(--space-1);display:flex}.intentions__add{margin-top:var(--space-3)}.intentions__counter{margin:calc(var(--space-1) * -1) 0 var(--space-2);font-size:var(--text-xs);text-align:right;color:var(--ink-muted)}.intentions__hide-text{margin:0 0 var(--space-2);overflow-wrap:anywhere;color:var(--ink-muted)}.avatar{object-fit:cover;border-radius:50%;flex-shrink:0}.avatar--large{width:64px;height:64px;font-size:var(--text-title)}.avatar--small{width:40px;height:40px;font-size:var(--text-lg)}.avatar--placeholder{background:var(--accent);color:var(--accent-ink);justify-content:center;align-items:center;font-weight:600;display:flex}.event-people{margin:0;padding:0;list-style:none}.event-people__row{align-items:center;gap:var(--space-2);min-height:var(--tap);padding:var(--space-1) 0;display:flex}.event-people__number{min-width:var(--space-5);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--ink-muted);text-align:right;flex:none}.event-people__body{flex:1;min-width:0}.event-people__name{font-size:var(--text-base);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.event-people__note{font-size:var(--text-sm);color:var(--ink-muted);margin:0}.event-page__back,.event-page__edit{margin-bottom:var(--space-2)}.event-page__header{margin-bottom:var(--space-3)}.event-page__header-top{align-items:center;gap:var(--space-2);margin:0 0 var(--space-1);flex-wrap:wrap;display:flex}.event-page__type{font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted)}.event-page__past-badge{padding:0 var(--space-2);font-size:var(--text-xs);color:var(--ink-muted);background:var(--surface);border-radius:var(--radius-pill)}.event-page__date{align-items:baseline;gap:var(--space-2);margin:0 0 var(--space-1);flex-wrap:wrap;display:flex}.event-page__date-main{font-size:var(--text-title);font-weight:700;line-height:1.2}.event-page__date-relative{font-size:var(--text-sm);color:var(--accent);font-weight:600}.event-page__title{font-size:var(--text-lg);margin-bottom:0}.event-page__fact{align-items:flex-start;gap:var(--space-2);margin:var(--space-2) 0 0;overflow-wrap:anywhere;display:flex}.event-page__fact-icon{margin-top:var(--space-0);color:var(--ink-muted);flex:none}.event-page__fact-note{color:var(--ink-muted)}.event-page__responsible{align-items:center;gap:var(--space-2);margin-top:var(--space-3);display:flex}.event-page__responsible-label{font-size:var(--text-xs);color:var(--ink-muted);margin:0}.event-page__responsible-name{margin:0}.event-page__meta,.event-page__counts{margin:var(--space-0) 0;font-size:var(--text-sm);color:var(--ink-muted)}.event-page__description{margin:var(--space-3) 0 0;white-space:pre-line;overflow-wrap:anywhere}.event-page__section{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--separator)}.event-page__section-title{align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);font-size:var(--text-lg);font-weight:600;display:flex}.event-page__actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.event-page__list{margin:0;padding:0;list-style:none}.event-page__list li{padding:var(--space-1) 0;overflow-wrap:anywhere}.event-page__slot,.event-page__payment{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-1) 0;display:flex}.event-page__slot-name{min-width:0;padding:var(--space-2) var(--space-3);font-size:var(--text-base);text-align:left;background:var(--surface);flex:1;justify-content:flex-start;font-weight:400}.event-page__notice{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--accent)}.event-page__add-slot{align-items:flex-end;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.event-page__add-slot .event-form__field{flex:1;min-width:140px}.access-level{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--separator)}.access-level__title{margin:0 0 var(--space-2);font-size:var(--text-lg);font-weight:600}.access-level__options{gap:var(--space-2);flex-wrap:wrap;display:flex}.access-level__hint{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--ink-muted)}.access-level__confirm{align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.role-badge{padding:var(--space-0) var(--space-2);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);font-size:var(--text-sm);box-shadow:inset 0 0 0 1px var(--separator);font-weight:600;line-height:1.6;display:inline-block}.role-badge.is-coloured{box-shadow:none}.member-view__header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.member-view__name{font-size:var(--text-lg);margin:0}.member-view__ident{flex:1;min-width:0}.member-view__username{margin-top:var(--space-0);color:var(--accent);font-size:var(--text-sm);overflow-wrap:anywhere;text-decoration:none;display:inline-block}.member-view__message{flex:none}.member-view__badges{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.member-view__fields{margin:0}.member-view__field{margin-bottom:var(--space-3)}.member-view__label{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--ink-muted);display:flex}.member-view__value{font-size:var(--text-base);overflow-wrap:anywhere;margin:0}.member-view__private{padding:0 var(--space-2);font-size:var(--text-xs);color:var(--ink-muted);background:var(--surface);border-radius:var(--radius-pill);white-space:nowrap}.member-notes{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--separator)}.member-notes__label{font-weight:600;display:block}.member-notes__hint,.member-notes__empty,.member-notes__signature{margin:var(--space-1) 0;font-size:var(--text-sm);color:var(--ink-muted)}.member-notes__input{width:100%;margin-bottom:var(--space-2)}.member-notes__history-toggle{margin-top:var(--space-2)}.member-notes__history{margin:var(--space-2) 0 0;font-size:var(--text-sm);padding:0;list-style:none}.member-notes__history li{padding:var(--space-1) 0}.member-notes__history-meta{color:var(--ink-muted);display:block}.member-notes__history-text{overflow-wrap:anywhere;display:block}.member-notes__error{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--danger)}.member-page__back{margin-bottom:var(--space-3)}.rich-text{font-size:var(--text-lg);line-height:1.6}.rich-text p{margin:0 0 var(--space-3);overflow-wrap:anywhere}.rich-text ul{margin:0 0 var(--space-3);padding-left:var(--space-5)}.rich-text li{margin-bottom:var(--space-2)}.material-editor__tabs{gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.material-editor__tab--active{background:var(--accent);color:var(--accent-ink)}.material-editor__toolbar{gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.material-editor__toolbar button{min-width:var(--tap)}.material-editor__toolbar button:active{background:var(--accent);color:var(--accent-ink)}.material-editor__area{resize:none;overflow-y:hidden}.material-editor__preview{min-height:calc(var(--tap) * 2);margin-bottom:var(--space-3);padding:var(--space-3);background:var(--surface);border-radius:var(--radius-sm)}.material-editor__hint{margin:calc(var(--space-1) * -1) 0 var(--space-2);font-size:var(--text-xs);color:var(--ink-muted)}.slot-page__back,.slot-page__edit{margin-bottom:var(--space-2)}.slot-page__meta{margin:var(--space-0) 0;font-size:var(--text-sm);color:var(--ink-muted)}.slot-page__from_book{font-size:var(--text-lg);color:var(--ink-muted);margin:0;font-style:italic}.slot-page__archive-item{margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--separator)}.slot-page__reading{gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.slot-reader{z-index:30;background:var(--reader-bg);color:var(--reader-ink);flex-direction:column;display:flex;position:fixed;inset:0}.slot-reader:focus{outline:none}.slot-reader__bar{gap:var(--space-2);padding:var(--space-2) var(--space-4);padding-top:calc(var(--space-2) + var(--tg-viewport-safe-area-inset-top,0px));border-bottom:1px solid var(--reader-control);justify-content:flex-end;display:flex}.slot-reader__bar button{color:var(--reader-ink);background:var(--reader-control);border-color:#0000}.slot-reader__body{padding:var(--space-4);padding-bottom:calc(var(--space-6) + var(--tg-viewport-safe-area-inset-bottom,0px));flex:1;overflow-y:auto}.calendar__views,.calendar__create{gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.calendar__views button[aria-pressed=true]{color:var(--accent);font-weight:600}.calendar__month-header{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);font-size:var(--text-lg);font-weight:600;display:flex}.calendar__grid{gap:var(--space-0);grid-template-columns:repeat(7,1fr);display:grid}.calendar__weekday{text-align:center;font-size:var(--text-xs);color:var(--ink-muted)}.calendar__cell{min-height:var(--tap);min-width:0;padding:var(--space-0);font-size:var(--text-sm);color:var(--ink);border-radius:var(--radius-sm);background:0 0;flex-direction:column;justify-content:center;align-items:center;font-weight:400;display:flex}.calendar__cell--day{background:var(--surface)}.calendar__cell.is-selected{outline:2px solid var(--accent)}.calendar__dots{justify-content:center;gap:var(--space-0);margin-top:var(--space-0);display:flex}.calendar__dot{background:var(--ink-muted);border-radius:50%;width:5px;height:5px}.calendar__dot--event{background:var(--kind-event)}.calendar__dot--date{background:var(--kind-date)}.calendar__dot--birthday{background:var(--kind-birthday)}.calendar__dot--liturgy{background:var(--kind-liturgy)}.calendar__entries{margin:var(--space-3) 0 0;padding:0;list-style:none}.calendar__entry{margin-bottom:var(--space-2)}.calendar__entry button,.calendar__entry-static{width:100%;min-height:var(--tap);padding:var(--space-2) var(--space-3);text-align:left;font:inherit;color:var(--ink);background:var(--surface);border:none;border-left:3px solid var(--ink-muted);border-radius:var(--radius-sm);display:block}.calendar__entry--event button{border-left-color:var(--accent)}.calendar__entry--date button{border-left-color:var(--kind-date)}.calendar__entry--birthday .calendar__entry-static{border-left-color:var(--kind-birthday)}.calendar__entry-kind{font-size:var(--text-xs);color:var(--ink-muted);display:block}.calendar__entry-title{font-weight:600;display:block}.calendar__entry-meta{font-size:var(--text-sm);color:var(--ink-muted);display:block}.calendar__reminders{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--separator)}.calendar__reminders-title{font-size:var(--text-base);margin:0}.calendar__entry--liturgy .calendar__entry-static{color:var(--ink-muted);font-style:italic}.calendar__cell.is-today{box-shadow:inset 0 0 0 2px var(--accent);font-weight:600}.calendar__count{font-size:var(--text-xs);color:var(--ink-muted);line-height:1}.calendar__legend{align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--ink-muted);flex-wrap:wrap;display:flex}.calendar__legend-item{align-items:center;gap:var(--space-1);display:inline-flex}.calendar__day-header{justify-content:space-between;align-items:baseline;gap:var(--space-2);margin-top:var(--space-3);scroll-margin-top:var(--space-3);flex-wrap:wrap;display:flex}.calendar__day-title{font-size:var(--text-lg);margin:0}.member-card{align-items:center;gap:var(--space-3);min-height:var(--tap);padding:var(--space-2) 0;border-bottom:1px solid var(--separator);display:flex}.member-card__body{flex:1;min-width:0}.member-card__name{font-size:var(--text-base);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.member-card__help{margin:var(--space-0) 0 0;color:var(--ink-muted);font-size:var(--text-sm);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.member-card__note{margin:var(--space-0) 0 0;color:var(--ink-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.member-card__badges{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.member-card--clickable{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:0;justify-content:flex-start;font-weight:400}.member-card--clickable:active{background:var(--surface)}.member-card__chevron{color:var(--ink-muted);flex:none}.member-card__aside{font-size:var(--text-sm);color:var(--ink-muted);white-space:nowrap;flex:none}.pending-section{margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--separator)}.pending-section__title{margin:0 0 var(--space-2);font-size:var(--text-base);color:var(--ink-muted)}.pending-card{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;display:flex}.pending-card__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;overflow:hidden}.pending-card__actions{gap:var(--space-2);display:flex}.pending-card__actions button{padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);font:inherit;font-size:var(--text-sm);cursor:pointer;border:none}.pending-card__actions .btn-primary{background:var(--accent);color:var(--accent-ink)}.community-search{margin-bottom:var(--space-3)}.community-chips{gap:var(--space-2);margin-bottom:var(--space-2);scrollbar-width:none;display:flex;overflow-x:auto}.community-chips button{border-radius:var(--radius-pill);flex:none}.community-chips button[aria-pressed=true]{color:var(--accent-ink);background:var(--accent)}.invites__form{align-items:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.invites__form .event-form__field{flex:1;min-width:120px}.invites__list{margin:var(--space-2) 0 0;padding:0;list-style:none}.invites__item{padding:var(--space-2) 0;border-bottom:1px solid var(--separator)}.invites__link{font-size:var(--text-sm);overflow-wrap:anywhere;margin:0}.invites__meta{margin:var(--space-0) 0 var(--space-1);font-size:var(--text-sm);color:var(--ink-muted)}.invites__actions{gap:var(--space-2);display:flex}.leaders-attention{margin-bottom:var(--space-4);padding:var(--space-3);border-radius:var(--radius);background:var(--surface)}.leaders-attention__title{font-size:var(--text-base);color:var(--ink-muted);margin:0}.leaders-attention__empty{margin:var(--space-1) 0 0;color:var(--ink-muted)}.leaders-attention__list{gap:var(--space-3);margin:var(--space-2) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.leaders-attention__item{align-items:baseline;gap:var(--space-1);display:flex}.leaders-attention__count{font-size:var(--text-title);font-weight:600}.leaders-attention__label{font-size:var(--text-sm);color:var(--ink-muted)}.leaders-not-seen{margin:0;padding:0;list-style:none}.prep-date-form__legend{margin:var(--space-3) 0 var(--space-1);font-size:var(--text-sm);color:var(--ink-muted)}.prep-date-form__offsets{gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.prep-date-form__offsets .event-form__checkbox{margin-bottom:0}.switch{align-items:center;gap:var(--space-3);width:100%;min-height:var(--tap);margin-bottom:var(--space-2);padding:var(--space-2) var(--space-3);text-align:left;font:inherit;color:var(--ink);background:var(--surface);border-radius:var(--radius-sm);display:flex}.switch:disabled{opacity:.6}.switch__text{flex:1}.switch__label{font-weight:600;display:block}.switch__hint{font-size:var(--text-sm);color:var(--ink-muted);display:block}.switch__track{width:46px;height:28px;padding:var(--space-0);background:var(--separator);border-radius:var(--radius-pill);flex:none;transition:background .15s}.switch[aria-checked=true] .switch__track{background:var(--accent)}.switch__thumb{background:var(--bg);border-radius:var(--radius-pill);width:24px;height:24px;transition:transform .15s;display:block}.switch[aria-checked=true] .switch__thumb{transform:translate(18px)}.switch-group{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--separator)}.switch-group__title{margin:0 0 var(--space-1);font-size:var(--text-lg);font-weight:600}.switch-group__hint{margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--ink-muted)}.settings__saved{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--ink-muted)}.settings__group{margin:0 0 var(--space-4);border:none;padding:0}.settings__group-title{font-size:var(--text-sm);color:var(--ink-muted);padding:0;font-weight:600}.settings__row{margin-bottom:var(--space-3)}.settings__row .event-form__field{margin-bottom:0}.settings__hint{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--ink-muted);display:block}.settings__row .switch{margin-bottom:0}.leaders__section{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--separator)}.leaders__section-title{margin:0 0 var(--space-2);font-size:var(--text-lg);font-weight:600}.leaders__list{margin:0;padding:0;list-style:none}.leaders__list li{padding:var(--space-1) 0;overflow-wrap:anywhere}.leaders__list button{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);text-align:left;justify-content:flex-start;font-weight:400}.leaders__section--tool .leaders__section-title{font-size:var(--text-base);color:var(--ink-muted)}.leaders__hint{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--ink-muted)}.leaders__date-button{margin-top:var(--space-2)}.my-services{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--separator)}.my-services__title{margin:0 0 var(--space-2);font-size:var(--text-lg);font-weight:600}.my-services__item{width:100%;min-height:var(--tap);margin-bottom:var(--space-2);padding:var(--space-2) var(--space-3);text-align:left;font:inherit;color:var(--ink);background:var(--surface);border-radius:var(--radius-sm);display:block}.my-services__item-title{font-weight:600;display:block}.my-services__item-meta{font-size:var(--text-sm);color:var(--ink-muted);display:block}.photo-upload{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.photo-upload__controls{flex:1;min-width:0}.photo-upload__hint{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--ink-muted)}.photo-upload__input{display:none}.photo-upload__preview{object-fit:cover;border-radius:50%;flex-shrink:0;width:64px;height:64px}.photo-upload__actions{gap:var(--space-2);display:flex}.profile-action{width:100%;margin-top:var(--space-2);background:var(--accent);color:var(--accent-ink);display:flex}.profile-action--danger{color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger);background:0 0}.profile-status{margin:var(--space-2) 0 0;color:var(--ink-muted);font-size:var(--text-sm)}.profile-form{gap:var(--space-3);flex-direction:column;display:flex}.profile-form__field{gap:var(--space-1);font-size:var(--text-sm);color:var(--ink-muted);flex-direction:column;display:flex}.profile-form__checkbox{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.profile-form__actions{gap:var(--space-2);display:flex}.profile-form__actions button{flex:1}.profile-form__actions button[type=submit]{background:var(--accent);color:var(--accent-ink)}.profile-danger-zone{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--separator)}.profile-confirm p{color:var(--ink-muted);font-size:var(--text-sm)}.role-card{padding:var(--space-3);margin-bottom:var(--space-3);border-radius:var(--radius);background:var(--surface)}.role-card__header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.role-card__name{font-size:var(--text-lg);margin:0;font-weight:600}.role-card__badge{overflow-wrap:anywhere;min-width:0;margin-right:auto}.role-card__description,.role-card__empty{margin:var(--space-1) 0;font-size:var(--text-sm);color:var(--ink-muted)}.role-card__holders{margin:var(--space-2) 0 0;padding:0;list-style:none}.role-card__holder{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;display:flex}.role-card__holder-name{overflow-wrap:anywhere;flex:1;min-width:0}.role-card__assign{align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.role-card__assign-label{width:100%;font-size:var(--text-sm);color:var(--ink-muted)}.role-card__assign select{flex:1;width:auto;min-width:0}.role-card__history-toggle{margin-top:var(--space-2)}.role-card__history{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--ink-muted);padding:0;list-style:none}.role-card__history .is-current{color:var(--ink)}.role-card__error{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--danger)}.role-form{padding:var(--space-3);margin-bottom:var(--space-3);border-radius:var(--radius);background:var(--surface)}.role-form__title{margin:0 0 var(--space-2);font-size:var(--text-lg)}.role-form__field{margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--ink-muted);display:block}.role-form__field input{margin-top:var(--space-1)}.role-form__error{margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--danger)}.role-form__color{align-items:center;gap:var(--space-2);margin-top:var(--space-1);display:flex}.role-form__hint{color:var(--ink-muted)}.role-form__presets{gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.role-form__preset{width:var(--tap);height:var(--tap);border:1px solid var(--separator);border-radius:var(--radius-sm);padding:0}.role-form__preset[aria-pressed=true]{box-shadow:0 0 0 2px var(--accent)}.role-form__preview{align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.role-form__warning{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--danger)}.role-form__danger{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--separator)}.roles-page__create{margin-bottom:var(--space-3)}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--text-title:22px;--text-lg:17px;--text-base:16px;--text-sm:15px;--text-xs:13px;--space-0:2px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--radius:12px;--radius-sm:10px;--radius-xs:8px;--radius-pill:999px;--tap:44px;--bg:var(--tg-theme-bg-color,#fff);--surface:var(--tg-theme-secondary-bg-color,#f4f4f5);--surface-2:var(--bg);--ink:var(--tg-theme-text-color,#1c1c1e);--ink-muted:var(--tg-theme-hint-color,#6d6d72);--accent:var(--tg-theme-button-color,#2481cc);--accent-ink:var(--tg-theme-button-text-color,#fff);--separator:var(--tg-theme-section-separator-color,#d9d9d9);--danger:var(--tg-theme-destructive-text-color,#d1435b);--shadow:#0000001f;--kind-event:var(--accent);--kind-date:#e08d2f;--kind-birthday:#cf4bc0;--kind-liturgy:#6f7ea8;--overlay:#00000073;--reader-bg:#101014;--reader-ink:#f2f2f2;--reader-control:#ffffff24}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:var(--tg-theme-bg-color,#17212b);--surface:var(--tg-theme-secondary-bg-color,#232e3c);--ink:var(--tg-theme-text-color,#f5f5f5);--ink-muted:var(--tg-theme-hint-color,#a8b6c4);--accent:var(--tg-theme-button-color,#5288c1);--accent-ink:var(--tg-theme-button-text-color,#fff);--separator:var(--tg-theme-section-separator-color,#37414b);--danger:var(--tg-theme-destructive-text-color,#ec5f5a);--shadow:#00000073;--kind-date:#f0a44a;--kind-birthday:#e57ad8;--kind-liturgy:#9aabd0;--overlay:#00000073;--reader-bg:#101014;--reader-ink:#f2f2f2;--reader-control:#ffffff24}}*{box-sizing:border-box}html,body{width:100%;margin:0;padding:0;overflow-x:hidden}body{min-width:320px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:var(--text-base);background:var(--bg);color:var(--ink);line-height:1.5}#root{height:var(--tg-viewport-stable-height,100dvh);flex-direction:column;display:flex}.app-shell{flex-direction:column;height:100%;display:flex}.app-shell__content{overscroll-behavior:none;min-height:0;padding:var(--space-4);padding-top:calc(var(--space-4) + var(--tg-viewport-content-safe-area-inset-top,0px) + var(--tg-viewport-safe-area-inset-top,0px));flex:1;overflow:hidden auto}.status-screen{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-6);text-align:center;color:var(--ink-muted);flex-direction:column;flex:1;display:flex}.page__title{margin:0 0 var(--space-3);font-size:var(--text-title);color:var(--ink);font-weight:600;line-height:1.25}.page__text{font-size:var(--text-sm);color:var(--ink-muted);margin:0}input,select,textarea{width:100%;min-height:var(--tap);padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--text-base);color:var(--ink);background:var(--surface-2);border:1px solid var(--separator);border-radius:var(--radius-xs);line-height:1.4;display:block}textarea{min-height:calc(var(--tap) * 2);resize:vertical}input[type=checkbox],input[type=radio]{width:var(--space-5);height:var(--space-5);min-height:0;accent-color:var(--accent);margin:0;padding:0}input[type=color]{width:var(--tap);height:var(--tap);padding:var(--space-1)}button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:0 var(--space-3);font-family:inherit;font-size:var(--text-sm);color:var(--ink);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;border:none;font-weight:500;display:inline-flex}button:disabled{opacity:.5;cursor:default}.btn-primary{color:var(--accent-ink);background:var(--accent)}.btn-danger{color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger);background:0 0}.on-surface button:not(.btn-primary):not(.btn-danger):not(.btn-inline),.on-surface select{background:var(--surface-2)}.btn-icon{min-width:var(--tap);padding:0}a.btn-inline{min-height:var(--tap);align-items:center;text-decoration:none;display:inline-flex}.btn-inline{font-size:var(--text-base);color:var(--accent);text-align:left;background:0 0;padding:0;font-weight:400}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:not(:disabled):active{opacity:.6}
