/* Shared density rules: retain 44px targets and respect text enlargement. */
.online-app{--space-row:10px;--space-section:16px}
.online-app #onlineContent{display:grid;gap:var(--space-section)}
.online-app #onlineContent>.panel{margin:0;padding:18px;border-radius:16px}
.online-app #onlineContent .section-top{gap:10px;margin:0 0 12px;align-items:center}
.online-app #onlineContent h2{margin:0;font:700 1.25rem/1.3 Inter,system-ui,sans-serif;letter-spacing:-.02em}
.online-app #onlineContent h3{margin:6px 0;font-size:1.05rem;line-height:1.3}
.online-app #onlineContent .event{padding:12px 0;margin:0}
.online-app #onlineContent .event p{margin:6px 0;line-height:1.45}
.online-app #onlineContent .eyebrow{letter-spacing:.04em;text-transform:none}
.online-app #onlineContent .member-row{padding:12px 0;gap:8px}
.online-app #onlineContent .member-info small{margin-top:3px}
.online-app .actions{gap:8px;flex-wrap:wrap}
.online-app .btn,.online-app .text-btn,.online-app summary{min-height:44px}
.online-app .text-btn{display:inline-flex;align-items:center;padding:8px}
.online-app dialog label{margin:10px 0;font-size:.875rem}
.online-app dialog input,.online-app dialog select,.online-app dialog textarea{margin-top:5px;padding:10px 12px;min-height:44px}
.online-app dialog textarea{min-height:76px}
.online-app dialog .actions{padding-bottom:max(10px,env(safe-area-inset-bottom,0px))}
.online-app .compact-compose{padding:0;margin:8px 0 12px;border-bottom:1px solid var(--line)}
.online-app .compact-compose>summary{display:flex;align-items:center;color:var(--panel-link);font-weight:600}
.online-app .compact-compose:not([open]){border-bottom:0}
.online-app .compact-compose form{margin-top:8px}
.online-app .member-admin{grid-column:1/-1;min-width:0}
.online-app .member-admin>summary{font-size:.8rem;display:flex;align-items:center;color:var(--panel-link)}
.online-app .member-admin .actions{display:flex;align-items:center}
.online-app .member-admin .role-select{width:auto;max-width:100%;min-height:44px}
.online-app .list-pagination:has(button:first-child:disabled):has(button:last-child:disabled){justify-content:center}
.online-app .list-pagination:has(button:first-child:disabled):has(button:last-child:disabled)>button{display:none}
.online-app .administration-grid{gap:10px}.online-app .administration-card{padding:14px;gap:8px}
@media(max-width:650px){
 .online-app main{padding-left:12px;padding-right:12px}
 .online-app #onlineContent>.panel{padding:14px}
 .online-app #onlineContent .section-top{flex-wrap:wrap}
 .online-app #onlineContent .section-top>.actions{margin-left:auto}
 .online-app dialog{width:calc(100vw - 16px);max-height:calc(100dvh - env(safe-area-inset-top,0px) - 24px)}
 .online-app dialog input,.online-app dialog select,.online-app dialog textarea{font-size:16px}
 .online-app .cash-row{padding:10px 0}
}
@media(prefers-reduced-motion:reduce){.online-app *{scroll-behavior:auto!important}}

.thread-reply{padding:12px 0;border-bottom:1px solid var(--line)}.thread-reply p{margin:6px 0}.thread-page #threadRoot{padding:12px 0}.thread-page #threadReactions{display:flex;gap:6px;flex-wrap:wrap}.reaction[aria-pressed=true]{outline:2px solid var(--panel-link)}.thread-page #threadReplyForm{position:sticky;bottom:calc(72px + env(safe-area-inset-bottom,0px));background:var(--panel);padding:10px 0;margin:0}.thread-page .message-text{white-space:pre-wrap;overflow-wrap:anywhere}

.map-page{position:relative;min-height:65dvh}.map-page #groupMapCanvas{height:calc(100dvh - 220px);min-height:360px;margin:0;border-radius:14px}.map-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}.map-settings{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:0 12px;max-width:100%}.map-settings[open]{width:min(100%,440px)}.map-settings summary{display:flex;align-items:center;font-weight:600}.map-member-list{margin-top:8px}.map-page #locationStatus{font-size:.75rem;margin:4px 0}.map-drink-marker{position:relative;display:grid;place-items:center;background:#fff;border:2px solid #245a49;border-radius:50%;width:40px;height:40px;font-size:27px;box-shadow:0 2px 8px #0004}.map-drink-marker b{position:absolute;right:-6px;top:-6px;background:#245a49;color:#fff;font:700 11px/20px system-ui;border-radius:50%;min-width:20px;text-align:center}.map-person-name{font-weight:600;max-width:180px;white-space:normal}.map-page .leaflet-control-attribution{max-width:70%;line-height:1.3}

.content-search{margin:8px 0}.content-search>summary{display:flex;align-items:center;color:var(--panel-link);font-size:.875rem}.content-search form{border:1px solid var(--line);padding:12px;border-radius:12px}.search-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.content-search label{margin:8px 0}.content-search input{max-width:100%;min-width:0}.content-search [role=alert]:empty{display:none}

.member-search{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:8px;margin:10px 0}.member-search label{margin:0;font-size:.8rem}.member-search input,.member-search select{width:100%;min-width:0}.member-search small{grid-column:1/-1}.online-app #onlineContent .member-row[hidden]{display:none!important}

/* A long topic must not push the reply composer below dozens of posts. */
.thread-page #threadReplies{max-height:42dvh;min-height:80px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.thread-page #threadReplyForm{position:static;padding:8px 0 0}.thread-page #threadReplyForm label{margin:6px 0}.thread-page #threadReplyForm textarea{min-height:64px}.thread-page #threadRoot>p{margin:6px 0}.thread-page .thread-full-root>summary{display:flex;align-items:center;color:var(--panel-link);font-size:.8rem}

/* Startseite: gemeinsame, kompakte Aktionen ohne doppelte Navigation. */
.round-home-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.home-event-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;grid-column:3;grid-row:1;max-width:190px}
.home-event-content{grid-column:2;grid-row:1;min-width:0;overflow-wrap:anywhere}
.home-event-actions .home-response{margin:0}
.home-response-action{min-height:44px;padding:8px 12px}

@media(max-width:430px){.home-event-actions{flex-direction:column;align-items:stretch;max-width:110px;gap:4px}.home-event-actions .home-response{text-align:center;font-size:11px}.home-event-actions .btn,.home-event-actions .home-detail{padding:8px;font-size:12px}}

.event-card-tools{display:grid;grid-template-columns:repeat(2,44px);gap:4px;flex-shrink:0}.event-response-tool{font-size:20px}.event-response-tool.selected{background:var(--surface);color:var(--panel-link);border-color:var(--panel-link);box-shadow:inset 0 0 0 1px var(--panel-link)}.event-comment-editor{font-size:12px;margin:4px 0}.event-comment-form{display:grid;gap:6px}.event-comment-form textarea{width:100%;min-height:64px}.event-comment-form small{display:block}.event-comment-form [role=alert]:empty{display:none}

/* Terminstatus unmittelbar bei den Direktaktionen; Zusatzinfos in einer Zeile. */
.online-app .event-card{padding:12px}
.online-app .event-card-heading{gap:10px}
.online-app #onlineContent .event-card h3{margin:0 0 3px;font-size:1rem}
.online-app .event-card-tools .event-tool,.online-app .event-card-tools .event-admin-menu>summary{width:44px;min-height:44px}
.event-tools-status{grid-column:1/-1;text-align:center;line-height:1.2}
.event-tools-status .home-response{margin:2px 0 0;font-size:11px;white-space:nowrap}
.online-app .event-card>.event-description,.online-app .event-card>.event-comment-editor,.online-app .event-card>.event-participants{display:inline-block;vertical-align:top;margin:4px 10px 0 0;padding:0;border:0;font-size:12px;max-width:100%}
.online-app .event-card>.event-description[open],.online-app .event-card>.event-comment-editor[open],.online-app .event-card>.event-participants[open]{display:block;width:100%;margin-right:0}
.online-app .event-card>details>summary{min-height:44px;display:flex;align-items:center;gap:5px;cursor:pointer}
.online-app .event-card>.event-own-comment{margin:0 0 4px;font-size:12px}
.online-app .event-card-list{gap:8px}

.online-app .cash-page .cash-balances{grid-template-columns:repeat(3,minmax(0,1fr));margin:8px 0;gap:6px}
.online-app .cash-page .cash-balances>div{grid-column:auto;padding:10px 8px}
.online-app .cash-page .cash-balances small{font-size:11px}
.online-app .cash-page .cash-balances strong{font-size:clamp(15px,4vw,21px);margin-top:3px}
.online-app .cash-page .cash-entry{padding:9px 0}
.online-app .cash-page .cash-entry-top{flex-wrap:nowrap;gap:8px}
.cash-entry-top>div>strong{display:block;font-size:14px;line-height:1.3}
.cash-entry-top small{font-size:11px;line-height:1.3;color:var(--panel-muted)}
.cash-entry-side{flex-shrink:0;text-align:right}.cash-entry-tools{display:flex;justify-content:flex-end;gap:4px;margin-top:3px}.cash-entry-tools .event-tool{width:44px;min-height:44px}
.online-app .cash-entry-audit{margin:0;font-size:11px;color:var(--panel-muted)}
.online-app .cash-entry-audit summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
.online-app .cash-page .cash-filter{border-top:1px solid var(--line);margin:12px 0 0;padding-top:10px;align-items:flex-end}
.online-app .cash-page .cash-filter .btn{width:auto}

.document-row{display:flex;align-items:center;gap:6px;border-top:1px solid var(--line);padding:6px 0;scroll-margin-top:12px}.document-open{flex:1;min-width:0;display:flex;align-items:center;gap:10px;min-height:52px;padding:4px 0;background:none;border:0;color:var(--panel-text);text-align:left;font:inherit;cursor:pointer}.document-symbol svg{width:22px;height:22px;color:var(--panel-link)}.document-copy{flex:1;min-width:0}.document-copy strong{display:block;font-size:14px;line-height:1.3;overflow-wrap:anywhere}.document-copy small{display:block;font-size:11px;color:var(--panel-muted);margin-top:3px}.document-menu{position:relative;flex-shrink:0}.online-app .document-menu>summary{display:flex;align-items:center;justify-content:center;width:44px;min-height:44px;list-style:none;border:1px solid var(--line);border-radius:8px;cursor:pointer}.document-menu>summary::-webkit-details-marker{display:none}.document-menu>div{position:absolute;right:0;z-index:5;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:4px;min-width:150px;box-shadow:0 6px 20px #0004}.document-menu button{display:block;width:100%;min-height:44px;text-align:left;background:none;border:0;color:var(--panel-text);font:inherit;font-size:13px;padding:8px}.document-row>.btn{font-size:12px;max-width:35%}

/* Fast navigation preserves the current page; show feedback only after 250 ms. */
.rz-loading[hidden]{display:none}
.rz-loading{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;pointer-events:none;background:color-mix(in srgb,var(--bg) 32%,transparent);animation:rz-loading-appear .16s ease-out both}
.rz-loading-card{display:grid;justify-items:center;gap:14px;padding:22px 28px;border:1px solid var(--line);border-radius:22px;background:var(--panel);color:var(--panel-text);box-shadow:0 12px 40px #0003;font-size:.9rem}
.rz-loading-mark{position:relative;display:grid;place-items:center;width:80px;height:80px}
.rz-loading-mark:before{content:"";position:absolute;inset:0;border:3px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:rz-loading-turn 1.2s linear infinite}
.rz-loading-mark img{display:block;width:64px;height:64px;border-radius:16px;animation:rz-loading-pulse 1.2s ease-in-out infinite}
@keyframes rz-loading-appear{from{opacity:0}to{opacity:1}}
@keyframes rz-loading-turn{to{transform:rotate(360deg)}}
@keyframes rz-loading-pulse{50%{transform:scale(.94)}}
@media(prefers-reduced-motion:reduce){.rz-loading,.rz-loading-mark:before,.rz-loading-mark img{animation:none}}

.map-page .map-toolbar{margin:8px 0 0;align-items:center}.map-page .map-settings summary{font-size:.85rem}.map-page #locationStatus{margin:4px 0}.map-page #groupMapCanvas{height:calc(100dvh - 240px);min-height:280px}

/* A shared compact disclosure row; expanded content keeps the full card width. */
.online-app .event-card-more{display:flex;flex-wrap:wrap;align-items:flex-start;gap:0 12px;margin-top:6px}
.online-app .event-card-more>details{margin:0;padding:0;border:0;font-size:12px;min-width:0;max-width:100%}
.online-app .event-card-more>details>summary{display:flex;align-items:center;gap:5px;min-height:44px;cursor:pointer;list-style:none}
.online-app .event-card-more>details>summary::before{content:'›';font-size:18px}
.online-app .event-card-more>details[open]{flex-basis:100%;width:100%}
.online-app .event-card-more>details[open]>summary::before{transform:rotate(90deg)}
.online-app .event-comment-preview{display:inline-block;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.online-app .event-card-more .message-text{margin:4px 0 8px}
.rz-loading-mark img{object-fit:contain}

/* Keep the three collapsed disclosures on one phone row without shrinking hit targets. */
@media(max-width:650px){
 .online-app .event-card{padding:10px}
 .online-app .event-card-heading{gap:8px}
 .online-app .event-card .home-date{width:40px}
 .online-app .event-card .home-date strong{white-space:nowrap}
 .online-app .event-card-more{gap:0 8px;align-items:center}
 .online-app .event-card-more>details{font-size:11px}
 .online-app .event-card-more .event-comment-preview,.online-app .event-attendance-label{display:none}
 .online-app .event-card-more>details>summary{gap:3px;white-space:nowrap}
 .online-app .event-card-more>details[open]>summary{white-space:normal}
}
#testAccountSwitcher{position:relative;z-index:6;background:#ffdc68;color:#171717;padding:4px 12px;font:12px/1.3 system-ui}
#testAccountSwitcher label{display:flex;align-items:center;gap:8px;margin:0}
#testAccountSwitcher select{width:auto;flex:1;max-width:260px;margin:0;min-height:44px;background:#fff;color:#171717;padding:4px 8px;font-size:16px}
#testAccountSwitcher [role=status]:empty{display:none}
.staging-app.test-account-picker #loginForm,.staging-app.test-account-picker .panel:has(#loginForm)>p{display:none}
