/* Gemeinde-Identität: the approved B layout, on both Framework7 appearances. */
@font-face {
    font-family: 'Gemeinde Serif';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(/app/static/webfonts/source-serif-4-semibold.woff2?v=82973fb10d05) format('woff2');
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(/app/static/webfonts/inter-regular.woff2?v=63ed1f8224dc) format('woff2');
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(/app/static/webfonts/inter-semibold.woff2?v=1b6089924f16) format('woff2');
}
:root, html.dark {
    --f7-theme-color: var(--gm-color-accent);
    --f7-theme-color-rgb: var(--gm-color-accent-rgb);
    --f7-theme-color-shade: var(--gm-color-accent);
    --f7-theme-color-tint: var(--gm-color-accent);
    --ios-bg: var(--gm-color-bg);
    --ios-card-bg: var(--gm-color-surface);
    --ios-separator: var(--gm-color-separator);
    --ios-label: var(--gm-color-text-secondary);
    --ios-text: var(--gm-color-text);
    --ios-text-secondary: var(--gm-color-text-secondary);
    --ios-bar-bg: var(--gm-color-bg);
    --ios-toolbar-bg: var(--gm-color-tabbar);
    --ios-chevron: var(--gm-color-text-secondary);
    --ios-tint-blue: var(--gm-color-accent-soft);
    --ios-tint-green: var(--gm-color-status-confirmed-bg);
    --ios-tint-orange: var(--gm-color-status-open-bg);
    --ios-success-text: var(--gm-color-status-confirmed);
    --ios-warning-text: var(--gm-color-status-open);
    --ios-field-bg: var(--gm-color-surface);
    --ios-field-border: var(--gm-color-separator);
    --ios-disabled: var(--gm-color-text-secondary);
    --ios-fill: var(--gm-color-accent-soft);
    --ios-shadow: var(--gm-color-separator);
}
.ios, .md {
    --f7-font-family: var(--gm-font-body);
    --f7-text-color: var(--gm-color-text);
    --f7-page-bg-color: var(--gm-color-bg);
    --f7-block-title-text-color: var(--gm-color-text);
    --f7-list-item-title-text-color: var(--gm-color-text);
    --f7-list-item-footer-text-color: var(--gm-color-text-secondary);
    --f7-list-item-after-text-color: var(--gm-color-text-secondary);
    --f7-navbar-bg-color: var(--gm-color-bg);
    --f7-bars-bg-color: var(--gm-color-bg);
    --f7-tabbar-link-inactive-color: var(--gm-color-text-secondary);
}
.navbar { box-shadow: none; }
.navbar .title { color: var(--gm-color-text); }
.gm-design .navbar :is(.left, .right) {
    background: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
    border: 0;
}
.toolbar.tabbar-labels {
    --f7-tabbar-labels-height: 66px;
    --f7-tabbar-labels-tablet-height: 66px;
    border-top: 1px solid var(--gm-color-separator);
    background: var(--gm-color-tabbar);
}
.toolbar.tabbar-labels .tab-link {
    min-width: 0;
    width: 20%;
    flex: 1 1 0;
    gap: 5px;
    color: var(--gm-color-text-secondary);
}
.toolbar.tabbar-labels .tab-link .tabbar-label {
    font-size: var(--gm-font-size-label);
    font-weight: 400;
    text-overflow: clip;
    white-space: nowrap;
    overflow: visible;
    max-width: none;
}
.toolbar.tabbar-labels [data-duty-badge] { width: 20px; }
.badge.color-red {
    background: var(--gm-color-status-declined);
    color: var(--gm-color-bg);
}
.gm-design {
    font-family: var(--gm-font-body);
    font-size: var(--gm-font-size-row);
    color: var(--gm-color-text);
    --f7-list-item-title-font-size: var(--gm-font-size-row);
    --f7-list-item-footer-font-size: var(--gm-font-size-detail);
    --f7-list-item-after-font-size: var(--gm-font-size-detail);
    --f7-block-margin-vertical: var(--gm-space-section);
    --f7-list-margin-vertical: var(--gm-space-section);
    --f7-list-item-min-height: 68px;
    --f7-list-item-padding-horizontal: var(--gm-space-row-x);
    --f7-list-inset-side-margin: var(--gm-space-page-x);
    --f7-block-padding-horizontal: var(--gm-space-page-x);
    --f7-list-inset-border-radius: var(--gm-radius-list);
}
.gm-design .navbar .title { font-family: var(--gm-font-heading); font-size: var(--gm-font-size-page-title); }
.gm-design .navbar .back span { display: inline; }
.gm-design .navbar .back { gap: 4px; }
@media (max-width: 359px) {
    .gm-design[data-name="group-announcement"] .navbar .back {
        font-size: var(--gm-font-size-detail);
    }
    .gm-design[data-name="group-announcement"] .navbar .title {
        font-size: var(--gm-font-size-row);
    }
}
.gm-design .page-content { overflow-x: hidden; }
.gm-design h1, .gm-design h2, .gm-design h3 { font-weight: 600; }
.gm-design h1, .gm-design h2, .gm-duty-featured h3 { font-family: var(--gm-font-heading); }
.gm-design h1 { font-size: var(--gm-font-size-title); line-height: 1.15; margin: 0 0 8px; }
.gm-design h2, .gm-design .block-title {
    font-size: var(--gm-font-size-section);
    line-height: 1.3;
    text-transform: none;
    letter-spacing: normal;
    color: var(--gm-color-text);
}
.gm-design .block-title { margin: var(--gm-space-section) var(--gm-space-page-x) 10px; }
.gm-design h3 { font-size: var(--gm-font-size-section); line-height: 1.35; margin: 0 0 8px; }
.gm-design p { margin: 8px 0; line-height: 1.5; }
.gm-design .block, .gm-design .list { overflow-wrap: anywhere; }
.gm-design .block-strong, .gm-design .list ul {
    background: var(--gm-color-surface);
    color: var(--gm-color-text);
    border-radius: var(--gm-radius-list);
    box-shadow: none;
}
.gm-design .block-strong { padding: var(--gm-space-row-y) var(--gm-space-row-x); }
.gm-design .block-strong::before, .gm-design .block-strong::after,
.gm-design .list ul::before, .gm-design .list ul::after { display: none; }
.gm-design .list { margin-top: 10px; margin-bottom: var(--gm-space-section); border-radius: var(--gm-radius-list); }
.gm-design .list .item-content { padding-left: var(--gm-space-row-x); min-width: 0; }
.gm-design .list .item-inner { padding-top: var(--gm-space-row-y); padding-bottom: var(--gm-space-row-y); min-width: 0; }
/* Keep Framework7's icon, but omit its ligature name from accessible links. */
.gm-design .item-link .item-inner::before { content: "chevron_right" / ""; }
.gm-design .list .item-title { white-space: normal; min-width: 0; line-height: 1.35; }
.gm-design .list .item-footer { color: var(--gm-color-text-secondary); line-height: 1.4; margin-top: 3px; }
.gm-design .list .item-after { white-space: normal; color: var(--gm-color-text-secondary); }
.gm-design .button {
    --f7-button-text-color: var(--gm-color-accent);
    --f7-button-border-color: var(--gm-color-accent);
    --f7-button-font-size: var(--gm-font-size-row);
    --f7-button-font-weight: 600;
    --f7-button-border-radius: var(--gm-radius-control);
    --f7-button-fill-bg-color: var(--gm-color-accent);
    --f7-button-fill-text-color: var(--gm-color-bg);
    border-radius: var(--gm-radius-control);
    min-height: 44px;
    height: auto;
    padding: 10px var(--gm-space-row-x);
    line-height: 1.4;
    white-space: normal;
    text-transform: none;
    letter-spacing: normal;
}
.gm-design .button-fill { background: var(--gm-color-accent); color: var(--gm-color-bg); }
.gm-design .button.color-red { background: var(--gm-color-status-declined-bg); color: var(--gm-color-status-declined); }
.gm-design .gm-button-secondary { background: var(--gm-color-accent-soft); color: var(--gm-color-accent); }
.gm-design :is(a, button, summary, input, select, textarea):focus-visible {
    outline: 2px solid var(--gm-color-accent);
    outline-offset: 3px;
}
.gm-design :is(input, textarea, select) { color: var(--gm-color-text); }
.gm-design :is(input, textarea)::placeholder { color: var(--gm-color-text-secondary); opacity: 1; }
.gm-design .gm-empty { color: var(--gm-color-text-secondary); }
.gm-page-heading p, .gm-page-intro { color: var(--gm-color-text-secondary); }
.gm-group-header p { font-size: var(--gm-font-size-detail); margin: 4px 0; }
.gm-home-heading { margin-top: var(--gm-space-section); margin-bottom: calc(var(--gm-space-section) + 6px); }
.gm-date-line { color: var(--gm-color-accent); font-size: var(--gm-font-size-detail); font-weight: 600; }
.gm-home-heading .greeting { margin-top: 10px; }
.gm-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: var(--gm-space-section) var(--gm-space-page-x) 10px; }
.gm-section-heading .block-title { margin: 0; }
.gm-section-heading > a, .gm-section-link { font-size: var(--gm-font-size-detail); }
.gm-duty { margin-top: 10px; margin-bottom: 12px; }
.gm-duty > p { color: var(--gm-color-text-secondary); font-size: var(--gm-font-size-detail); }
.gm-duty > p[role='status'] { color: var(--gm-color-text); }
.gm-duty-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 14px; }
.gm-duty-prompt { font-size: var(--gm-font-size-detail); font-weight: 600; color: var(--gm-color-text-secondary); }
.gm-status {
    display: inline-block;
    max-width: 100%;
    padding: 3px 9px;
    border-radius: var(--gm-radius-control);
    font: 600 var(--gm-font-size-label)/1.4 var(--gm-font-body);
    white-space: nowrap;
}
.gm-status-open { background: var(--gm-color-status-open-bg); color: var(--gm-color-status-open); }
.gm-status-confirmed { background: var(--gm-color-status-confirmed-bg); color: var(--gm-color-status-confirmed); }
.gm-status-declined { background: var(--gm-color-status-declined-bg); color: var(--gm-color-status-declined); }
.gm-status-expired { background: var(--gm-color-status-expired-bg); color: var(--gm-color-status-expired); }
.gm-status-past { background: var(--gm-color-status-expired-bg); color: var(--gm-color-status-expired); }
.gm-duty-featured { border-radius: var(--gm-radius-card); padding: calc(var(--gm-space-row-y) + 4px) var(--gm-space-row-x); }
.gm-duty-featured h3 { font-size: var(--gm-font-size-page-title); }
.gm-duty-featured > p { margin: 6px 0; line-height: 1.4; }
.gm-open-answers > .block-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.gm-duty-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; margin-top: 16px; align-items: start; }
.gm-duty-actions .inline-confirmation { min-width: 0; }
.gm-duty-actions:has(.inline-confirmation[open]) { grid-template-columns: minmax(0, 1fr); }
.gm-duty-actions .inline-confirmation[open] { background: var(--gm-color-accent-soft); padding: 12px; border-radius: var(--gm-radius-list); }
.gm-duty-actions .inline-confirmation[open] .button { margin-top: 8px; }
.gm-design .gm-next-preview { display: flex; align-items: center; background: var(--gm-color-accent-soft); color: var(--gm-color-text); margin-top: 10px; }
.gm-next-preview > span:last-child { min-width: 0; }
.gm-next-meta { display: block; color: var(--gm-color-text-secondary); font-size: var(--gm-font-size-detail); line-height: 1.4; margin-top: 3px; }
.gm-date-tile { display: flex; flex: 0 0 36px; flex-direction: column; align-items: center; justify-content: center; margin-right: 12px; color: var(--gm-color-text-secondary); font-size: var(--gm-font-size-label); line-height: 1.3; }
.gm-date-tile strong { font: 600 var(--gm-font-size-page-title)/1.25 var(--gm-font-heading); color: var(--gm-color-text); }
.gm-group-tiles ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; background: none !important; }
.gm-group-tiles li { min-width: 0; background: var(--gm-color-surface); border-radius: var(--gm-radius-list); }
.gm-group-tiles li:only-child { grid-column: 1 / -1; }
.gm-group-tiles .item-inner { flex-direction: column; align-items: start; gap: 4px; }
.gm-audio { width: 100%; }
.gm-pre-wrap { white-space: pre-wrap; overflow-wrap: anywhere; }
.gm-avatar { display: flex; align-items: center; justify-content: center; flex: 0 0 38px; height: 38px; margin-right: 12px; border-radius: var(--gm-radius-list); background: var(--gm-color-accent-soft); color: var(--gm-color-accent); font-size: var(--gm-font-size-detail); font-weight: 600; }
.gm-event-list h3 { font-size: var(--gm-font-size-row); font-weight: 400; margin-bottom: 3px; }
.gm-event-list .item-inner { gap: 8px; }
.gm-announcement-heading, .gm-announcement-meta { font-size: var(--gm-font-size-detail); color: var(--gm-color-text-secondary); }
.gm-announcement-heading { display: flex; justify-content: flex-end; }
.gm-announcement-body { line-height: 1.5; }
.gm-form-actions { display: grid; gap: 10px; margin-top: 16px; }
.gm-form .item-input-wrap { width: 100%; }
.gm-form :is(input, textarea, select) { box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px; font: inherit; color: var(--gm-color-text); }
.gm-form textarea { min-height: 140px; resize: vertical; }
.gm-design summary { min-height: 44px; cursor: pointer; line-height: 1.5; }
.gm-design details:not([open]) > :not(summary) { display: none; }
.gm-design .gm-leader-disclosure > summary { background: var(--gm-color-surface); color: var(--gm-color-accent); border-radius: var(--gm-radius-list); padding: var(--gm-space-row-y) var(--gm-space-row-x); margin-top: 10px; }
@media (max-width: 359px) {
    .toolbar.tabbar-labels .tab-link .tabbar-label { font-size: calc(var(--gm-font-size-label) - 1px); }
}
