/* App shell, shared by both color themes. */
.nav-dropdown summary[aria-label] svg{width:23px;height:23px;display:block}.nav-dropdown summary[aria-label]{min-width:44px;min-height:44px;justify-content:center}.site-footer{max-width:1400px;margin:32px auto 0;padding:24px 40px 32px;display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.site-footer a{min-height:44px;display:flex;align-items:center}.site-footer>span{align-self:center}.bottom-navigation{display:none}
@media(min-width:1101px){.site-header{gap:24px}.site-header .header-search{margin-left:auto;order:2;width:clamp(180px,18vw,280px);flex:0 1 280px}.site-header .main-navigation{order:1;margin-left:auto;gap:6px}.site-header .brand{margin-right:24px}.profile-dropdown .nav-dropdown-panel{right:0}.site-header .nav-primary{gap:4px}.site-header .main-navigation a,.site-header .nav-dropdown>summary{padding-left:10px;padding-right:10px}}
@media(min-width:1101px) and (max-width:1350px){.site-header{gap:12px;padding-left:22px;padding-right:22px}.site-header .brand{font-size:23px!important;margin-right:12px}.site-header .header-search{flex-basis:180px}.site-header .main-navigation{gap:0}.site-header .main-navigation a,.site-header .nav-dropdown>summary{font-size:13px;padding-left:8px;padding-right:8px}}
@media(max-width:1100px){body:has(.bottom-navigation){padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}.bottom-navigation{position:fixed;z-index:65;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;background:var(--surface);border-top:1px solid var(--line);padding:6px 10px calc(6px + env(safe-area-inset-bottom,0px));box-shadow:0 -6px 24px #0000000c}.bottom-navigation a,.bottom-navigation button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:56px;padding:7px 2px;color:var(--muted);text-decoration:none;border-radius:8px;background:transparent;font-size:11px;line-height:1.2;font-weight:600}.bottom-navigation svg{height:22px;width:22px}.bottom-navigation [aria-current=page]{color:#dca88c;background:#873b3c26}[data-theme=light] .bottom-navigation [aria-current=page]{color:#843b3c;background:#f0e3de}.site-header>.menu-toggle{display:none}.site-header .header-search{margin-left:auto;max-width:360px;flex:1}.site-header{gap:24px}.site-header .brand{flex:none}.site-header .main-navigation{bottom:calc(76px + env(safe-area-inset-bottom,0px));height:auto;max-height:calc(100dvh - 90px - env(safe-area-inset-bottom,0px));border-radius:18px 18px 0 0;top:auto;width:min(460px,100%);padding-bottom:24px}.site-header .main-navigation.is-open{padding-top:20px}.site-footer{padding:20px 20px 28px;margin-top:20px}.mobile-menu-heading{position:sticky;top:0;background:var(--surface);z-index:2}.nav-dropdown summary[aria-label]{justify-content:flex-start;gap:14px}.nav-dropdown summary[aria-label] .sr-only{position:static;width:auto;height:auto;clip:auto;overflow:visible;white-space:normal}.navigation-open .bottom-navigation{z-index:90}#toast{bottom:calc(90px + env(safe-area-inset-bottom,0px))}.pdf-focused{z-index:100}.platform-main,.content{padding-bottom:28px}}
/* Calendar has a compact month overview and a readable selected-day agenda. */
.calendar-toolbar{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:center;margin:24px 0}.calendar-view-switch{display:flex;gap:4px;border:1px solid var(--line);border-radius:7px;padding:4px;background:var(--surface)}.calendar-view-switch button{min-height:40px;color:var(--muted);border-radius:4px}.calendar-view-switch button[aria-pressed=true]{background:#873b3c;color:#fff}.calendar-month-controls{display:flex;align-items:center;gap:12px}.calendar-month-controls h2{font-size:23px!important;min-width:170px;text-align:center}.calendar-month-controls button{border:1px solid var(--line);background:var(--surface);color:var(--paper);min-width:44px;min-height:44px}.calendar-month-controls[hidden],.calendar-body[hidden],#event-list[hidden]{display:none}.calendar-body{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:24px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line)}.calendar-weekday{text-align:center;padding:12px 4px;color:var(--muted);font-size:13px;font-weight:600;background:var(--surface-raised);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-day{min-height:105px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:var(--surface);color:var(--paper);padding:10px 8px;display:flex;align-items:flex-start;flex-direction:column;gap:5px;min-width:0;overflow:hidden}.calendar-day.other-month{opacity:.48}.calendar-day.is-today .calendar-number{color:#fff;background:#873b3c;border-radius:50%;min-width:26px;text-align:center;padding:3px}.calendar-day[aria-pressed=true]{box-shadow:inset 0 0 0 2px #bd7c56;background:var(--surface-raised)}.calendar-event-label{font-size:11px;line-height:1.4;text-align:left;white-space:nowrap;text-overflow:ellipsis;width:100%;overflow:hidden;color:var(--paper);border-left:2px solid #bd7c56;padding-left:4px}.calendar-count{font-size:10px;color:var(--muted);margin-top:auto}.calendar-agenda{background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:24px;align-self:start;min-width:0}.calendar-agenda h3{font-size:19px;line-height:1.4;margin:0 0 18px}.calendar-agenda a{display:flex;flex-direction:column;gap:8px;padding:18px 0;min-height:44px;border-top:1px solid var(--line);text-decoration:none}.calendar-agenda a strong{color:var(--paper);line-height:1.5}.calendar-agenda a span{font-size:14px;line-height:1.5;color:var(--muted)}.event-filter{max-width:340px}.event-card{margin-bottom:18px}
@media(max-width:900px){.calendar-body{grid-template-columns:1fr}.calendar-day{min-height:65px}.calendar-event-label{display:none}.calendar-month-controls{gap:8px;flex-wrap:wrap}.calendar-month-controls h2{font-size:21px!important;min-width:150px}.calendar-agenda{padding:20px}.calendar-count{font-size:9px}.calendar-toolbar{gap:16px}.calendar-month-controls button{padding:8px}.calendar-day{padding:8px 5px}.calendar-month-controls{width:100%;justify-content:space-between}}@media(max-width:360px){.calendar-count{font-size:0}.calendar-count::after{content:'•';font-size:14px;color:var(--gold)}.calendar-month-controls h2{min-width:130px;font-size:19px!important}}
@media(max-width:1100px){.navigation-open .site-header{backdrop-filter:none;-webkit-backdrop-filter:none}.site-header .main-navigation.is-open{position:fixed;inset:auto 0 calc(76px + env(safe-area-inset-bottom,0px)) auto;height:auto;max-height:calc(100dvh - 90px - env(safe-area-inset-bottom,0px));width:min(460px,100%);border-radius:18px 18px 0 0}.bottom-navigation{isolation:isolate}}

/* Group photographs retain their full composition at every viewport. */
.med-hero.group-detail-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);height:auto;min-height:0;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:28px}
.group-detail-hero .hero-photo{position:relative;inset:auto;width:100%;height:auto;max-height:440px;object-fit:contain;object-position:center;align-self:center;display:block;transform:none;filter:none;background:var(--ink)}
.group-detail-hero .hero-shade{display:none}
.group-detail-hero .hero-copy{position:relative;inset:auto;align-self:center;width:auto;max-width:none;padding:clamp(22px,3vw,44px);color:var(--paper)}
.group-detail-hero .hero-copy h1{font-size:clamp(32px,3.5vw,56px);color:var(--paper);margin:14px 0 22px;text-shadow:none;line-height:1.05}
.group-detail-hero .hero-copy .eyebrow,.group-detail-hero .hero-link{color:var(--muted);text-shadow:none}
.songbook-grid{gap:14px}
.songbook-grid .song-card{padding:18px 20px;min-height:0;border-radius:10px;display:flex;flex-direction:column;gap:0;background:var(--surface);border:1px solid var(--line)}
.songbook-grid .song-card::before,.songbook-grid .song-card::after{display:none}
.songbook-grid .song-card-top{display:flex;align-items:center;gap:10px;margin:0 0 10px;min-height:24px}
.songbook-grid .song-number{font-size:12px;opacity:.65}
.songbook-grid .song-style{font-size:12px;letter-spacing:.3px;margin:0;color:var(--muted)}
.songbook-grid .song-card h2{font-size:25px;line-height:1.2;margin:0 0 6px;letter-spacing:-.5px}
.songbook-grid .song-meta{font-size:13px;line-height:1.5;margin:0;min-height:0;color:var(--muted)}
.songbook-grid .song-ratings{margin:14px 0 0;padding:0;border:0;display:flex;flex-wrap:wrap;gap:8px 18px}
.songbook-grid .song-ratings>div{display:flex;align-items:center;gap:8px;margin:0;padding:0;border:0;font-size:12px}
.card-notes{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px}
.card-notes svg{width:21px;height:21px}
.card-notes.is-present{color:#a6c8b2;background:#63857420}
.card-notes.is-missing{color:#e3ac80;background:#bd815520}
.card-progress{display:inline-flex;gap:3px;align-items:center;height:18px}
.card-progress i{display:block;width:7px;height:12px;border-radius:2px;border:1px solid var(--muted);opacity:.35}
.card-progress i.filled{background:var(--gold);border-color:var(--gold);opacity:1}
.card-progress.level-3 i.filled{background:#93b6a0;border-color:#93b6a0}
[data-theme=light] .card-notes.is-present{color:#35654b}
[data-theme=light] .card-notes.is-missing{color:#9a5125}
[data-theme=light] .card-progress.level-3 i.filled{background:#467454;border-color:#467454}
@media(min-width:1101px){
.main-navigation .nav-primary{gap:4px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.main-navigation .nav-primary a{display:flex;align-items:center;gap:7px;border-radius:8px;font-size:13px;white-space:nowrap}
.main-navigation .nav-primary svg{width:18px;height:18px;flex-shrink:0}
.main-navigation .nav-primary a[aria-current=page]{background:var(--surface-raised);color:var(--paper);box-shadow:0 1px 3px #0001}
.main-navigation .nav-dropdown>summary{min-height:40px;border-radius:9px;list-style:none;display:flex;align-items:center;justify-content:center;font-weight:600}
.main-navigation .nav-dropdown>summary::marker,.main-navigation .nav-dropdown>summary::-webkit-details-marker{display:none}
.main-navigation .nav-dropdown[open]>summary,.main-navigation .nav-dropdown>summary:hover{background:var(--surface-raised)}
.main-navigation .nav-dropdown-panel{border-radius:12px;padding:8px;box-shadow:0 16px 40px #0003}
.main-navigation .nav-dropdown-panel a{border-radius:7px;padding:11px 14px}
.site-header{gap:16px}.site-header .brand{margin-right:8px}.header-search{max-width:250px}
}
@media(max-width:1100px){.nav-primary svg{width:20px;height:20px;margin-right:10px;vertical-align:middle}}
@media(max-width:650px){.med-hero.group-detail-hero{grid-template-columns:1fr}.group-detail-hero .hero-photo{max-height:none;width:100%;height:auto}.group-detail-hero .hero-copy{padding:20px 22px}.group-detail-hero .hero-copy h1{font-size:34px;margin:8px 0 12px}.songbook-grid .song-card{padding:16px 18px}.songbook-grid .song-card h2{font-size:24px}}
.songbook-grid .song-card .song-ratings{flex-direction:row}
.songbook-grid .song-ratings>div>span:first-child{font-size:13px}
.songbook-grid .song-ratings>div{justify-content:flex-start}
[data-theme=light] .group-detail-hero .hero-copy h1{color:#272626!important}
[data-theme=light] .group-detail-hero .hero-copy .eyebrow,[data-theme=light] .group-detail-hero .hero-link{color:#68615b!important}
[data-theme=dark] .group-detail-hero .hero-copy h1{color:#f0e7d7!important}
.person-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.person-actions small{max-width:270px;line-height:1.5}
#admin-session-banner{position:sticky;top:0;z-index:150;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px 24px;background:#863b3e;color:#fff8ef;padding:12px 20px;font:14px 'DM Sans',sans-serif;box-shadow:0 2px 12px #0003}#admin-session-banner strong,#admin-session-banner small{display:block;color:#fff8ef}#admin-session-banner small{font-size:12px;margin-top:4px}#admin-session-banner button{background:#fff8ef;color:#522628;border:0;border-radius:8px;padding:10px 16px;font-weight:700;cursor:pointer}.admin-session-active .site-header{position:relative;top:auto}

/* Keep the meeting action out of the descriptive text flow. */
.event-planning-panel{display:flex;align-items:center;justify-content:space-between;gap:24px}.event-planning-panel>div{min-width:0}.event-planning-panel h3{margin:0 0 10px}.event-planning-panel p{margin:0}.event-planning-panel>a.primary{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:46px;text-decoration:none;white-space:normal;text-align:center;line-height:1.4}@media(max-width:700px){.event-planning-panel{flex-direction:column;align-items:stretch;gap:20px}.event-planning-panel>a.primary{align-self:flex-start}}
