/* Vorhandene Noto-Dateien lokal laden; dieselbe Schriftfamilie wie in den PDFs. */
@font-face { font-family:"Noto Sans"; src:url("../pdf-assets/fonts/NotoSans-Regular.ttf") format("truetype"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Noto Sans"; src:url("../pdf-assets/fonts/NotoSans-Bold.ttf") format("truetype"); font-weight:600 700; font-style:normal; font-display:swap; }
@font-face { font-family:"Noto Sans Mono"; src:url("../pdf-assets/fonts/NotoSansMono-Regular.ttf") format("truetype"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Noto Sans Mono"; src:url("../pdf-assets/fonts/NotoSansMono-Bold.ttf") format("truetype"); font-weight:600 700; font-style:normal; font-display:swap; }
/* Neutrale Inhaltsfläche für alle Bereichsfarben; das äußere Vereinsgrün bleibt. */
body .main-container { background-color:#f5f5f5; }
body { font-size:15px; line-height:1.5; font-family:"Noto Sans",Arial,sans-serif!important; }
input,select,textarea,button,.btn,.form-control,.tooltip,.popover { font-family:"Noto Sans",Arial,sans-serif; }
code,pre,kbd,samp,.rtep-folder { font-family:"Noto Sans Mono","Courier New",monospace!important; }
/* ZuGABe UI-Komponenten
 * Wiederverwendbare Gestaltung für neue und modernisierte DB-Bereiche.
 */

/* Standard-Infosymbol */
.zg-tooltip-trigger {
    color: #777;
    cursor: help;
    font-size: 14px;
    margin-left: 4px;
}
.zg-tooltip-trigger:hover,
.zg-tooltip-trigger:focus {
    color: #555;
}

/* Standard-Tooltip: neutrale blaue Infofarbe + Noto Sans */
.tooltip.zg-tooltip .tooltip-inner {
    background: #e7f2fc;
    color: #244d73;
    border: 1px solid #a7c8e5;
    box-shadow: 0 2px 7px rgba(36, 77, 115, .16);
    font-family: "Noto Sans", Arial, sans-serif;
    font-size: 13px;
    line-height: 1.45;
    padding: 9px 12px;
    text-align: left;
    max-width: 280px;
}
.tooltip.top.zg-tooltip .tooltip-arrow { border-top-color: #a7c8e5; }
.tooltip.bottom.zg-tooltip .tooltip-arrow { border-bottom-color: #a7c8e5; }
.tooltip.left.zg-tooltip .tooltip-arrow { border-left-color: #a7c8e5; }
.tooltip.right.zg-tooltip .tooltip-arrow { border-right-color: #a7c8e5; }

/* Verwaltungs- und Kontaktbuttons links, Seitenanfang rechts. */
body { padding-bottom:70px; }
.zg-footer-actions { position:fixed; left:0; bottom:14px; z-index:1020; display:flex; flex-direction:column; align-items:stretch; gap:6px; width:166px; }
.zg-db-admin-tab,.zg-kas-admin-tab,.zg-admin-contact-tab { display:flex; align-items:center; justify-content:center; gap:8px; padding:6px 10px; border:1px solid #a7c8e5; border-left:0; border-radius:0 6px 6px 0; background:#e7f2fc; color:#244d73; font-family:"Noto Sans",Arial,sans-serif; font-size:12px; box-shadow:0 2px 7px rgba(36,77,115,.12); text-decoration:none; }
.zg-db-admin-tab:hover,.zg-db-admin-tab:focus,.zg-kas-admin-tab:hover,.zg-kas-admin-tab:focus,.zg-admin-contact-tab:hover,.zg-admin-contact-tab:focus { background:#d7eafa; color:#183d60; text-decoration:none; }
.zg-kas-admin-tab { min-height:34px; font-weight:700; background:#eef3f7; }
.zg-phpmyadmin-logo { display:block; width:100px; height:32px; object-fit:contain; }
.zg-db-admin-tab > span { font-weight:700; }
.zg-admin-contact-tab { min-height:34px; }

.zg-back-top { position:fixed; right:12px; bottom:14px; z-index:1020; width:32px; height:32px; padding:6px; border:1px solid #a7c8e5; border-radius:6px; background:#e7f2fc; color:#244d73; }
.tooltip.zg-tooltip .tooltip-inner { white-space:pre-line; }

.zg-pflegekasse { display:inline-flex; align-items:center; gap:6px; max-width:180px; vertical-align:middle; }
.zg-pflegekasse-logo { display:block; width:92px; height:30px; max-width:92px; max-height:30px; flex:0 0 auto; object-fit:contain; }
.zg-pflegekasse-text { font-weight:600; color:#334; }


/* Kompakte Admin-Zipfel: Regenbogen von oben nach unten. */
.zg-footer-admin { left:0; right:auto; bottom:14px; width:80px; gap:4px; }
.zg-footer-admin .zg-admin-tab { box-sizing:border-box; display:flex; align-items:center; justify-content:center; gap:5px; width:100%; height:28px; min-height:28px; padding:3px 6px; white-space:nowrap; border:1px solid var(--zg-tab-border); border-left:0; border-radius:0 5px 5px 0; background:var(--zg-tab-bg); color:var(--zg-tab-text); font:600 12px/20px "Noto Sans",Arial,sans-serif; text-decoration:none; cursor:pointer; box-shadow:0 1px 4px rgba(0,0,0,.12); }
.zg-footer-admin .zg-admin-tab:hover { background:var(--zg-tab-hover); color:var(--zg-tab-text); text-decoration:none; }
.zg-footer-admin .zg-admin-tab:focus-visible { outline:2px solid #172b36; outline-offset:2px; }
.zg-footer-admin .zg-phpmyadmin-logo { width:89px; height:21px; }
.zg-tab-red { --zg-tab-bg:#ef9a9a; --zg-tab-border:#cb5656; --zg-tab-text:#641b1b; --zg-tab-hover:#e97c7c; }
.zg-tab-orange { --zg-tab-bg:#ffb45b; --zg-tab-border:#ce7b1e; --zg-tab-text:#613000; --zg-tab-hover:#ffa139; }
.zg-tab-yellow { --zg-tab-bg:#ffe45c; --zg-tab-border:#c3a20a; --zg-tab-text:#574500; --zg-tab-hover:#ffda2e; }
.zg-tab-green { --zg-tab-bg:#8ed69a; --zg-tab-border:#4b9e5a; --zg-tab-text:#164c20; --zg-tab-hover:#70ca7f; }
.zg-tab-blue { --zg-tab-bg:#97bff0; --zg-tab-border:#558bc9; --zg-tab-text:#193f70; --zg-tab-hover:#79aceb; }
.zg-tab-violet { --zg-tab-bg:#c7a0e8; --zg-tab-border:#9464ba; --zg-tab-text:#4d286d; --zg-tab-hover:#b789df; }
@media(max-height:420px) { .zg-footer-admin { max-height:calc(100vh - 110px); overflow-y:auto; } }


/* Hauptnavigation: kein Umbruch hinter dem Vereinsnamen, STG separat. */
.zg-main-navbar .zg-env-corner { position:absolute; right:7px; top:4px; z-index:2; padding:1px 5px; border:1px solid rgba(255,255,255,.65); border-radius:4px; color:#fff; font-size:10px; font-weight:700; line-height:16px; letter-spacing:.6px; }
.zg-main-navbar .navbar-brand { font-size:16px; white-space:nowrap; }
@media(min-width:1200px) {
    .zg-main-navbar > .container { width:100%; max-width:1500px; display:flex; align-items:flex-start; }
    .zg-main-navbar .navbar-header { flex:0 0 auto; }
    .zg-main-navbar #navbar { flex:1 1 auto; min-width:0; }
    .zg-main-navbar .navbar-nav { display:flex; flex-wrap:nowrap; }
    .zg-main-navbar .navbar-nav > li > a { padding-left:10px; padding-right:10px; white-space:nowrap; font-size:13px; }
    .zg-env-staging .zg-main-navbar > .container { padding-right:57px; }
}
@media(max-width:1199px) {
    .zg-main-navbar .navbar-header { float:none; display:flex; align-items:center; }
    .zg-main-navbar .navbar-brand { order:1; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; }
    .zg-main-navbar .navbar-toggle { display:block; order:2; flex-shrink:0; margin-left:8px; }
    .zg-env-staging .zg-main-navbar .navbar-toggle { margin-right:56px; }
    .zg-main-navbar .navbar-collapse { border-top:1px solid rgba(255,255,255,.15); max-height:calc(100vh - 52px); overflow-y:auto!important; }
    .zg-main-navbar .navbar-collapse.collapse { display:none!important; }
    .zg-main-navbar .navbar-collapse.in { display:block!important; }
    .zg-main-navbar .navbar-nav,.zg-main-navbar .navbar-right { float:none!important; }
    .zg-main-navbar .navbar-nav { margin:7.5px -15px; }
    .zg-main-navbar .navbar-nav > li { float:none; }
    .zg-main-navbar .navbar-nav > li > a { padding-top:10px; padding-bottom:10px; }
}
.zg-footer-admin .zg-phpmyadmin-boat { display:block; flex-shrink:0; width:29px; height:22px; }
.tooltip.zg-tooltip { pointer-events:none; }

.zg-footer-admin .zg-github-logo { display:block; flex-shrink:0; width:16px; height:16px; }

/* Admin-Menü am linken Rand: nur 18px Farbe sichtbar, gemeinsam ausfahren. */
@media (hover:hover) and (pointer:fine) {
    .zg-footer-admin { transform:translateX(calc(-100% + 18px)); transition:transform 180ms ease-out; }
    .zg-footer-admin:hover,.zg-footer-admin:has(:focus-visible) { transform:translateX(0); }
    .zg-footer-admin .zg-admin-tab > * { opacity:0; transition:opacity 120ms ease-out; }
    .zg-footer-admin:hover .zg-admin-tab > *,.zg-footer-admin:has(:focus-visible) .zg-admin-tab > * { opacity:1; }
}
@media (prefers-reduced-motion:reduce) {
    .zg-footer-admin,.zg-footer-admin .zg-admin-tab > * { transition:none; }
}



/* Gut lesbare Grundgröße auch für die gemeinsamen Formulare. */
input,select,textarea,.form-control { font-size:15px; }

/* Gemeinsames Kartenlayout: jede Spalte stapelt ihre Blöcke unabhängig. */
.zg-block-columns { --zg-block-gap:14px; display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--zg-block-gap);align-items:start; }
.zg-block-columns-three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.zg-block-stack { display:flex;flex-direction:column;gap:var(--zg-block-gap,14px);min-width:0; }
/* Gemeinsame Ausrichtung für Geburtstag und Alter in allen Tabellen. */
table th.zg-birthday-column,table td.zg-birthday-column,table .rtn-birthday { text-align:right!important; }
table .zg-birthday-column small,table .rtn-birthday small { text-align:inherit; }
@media(max-width:991px) { .zg-block-columns-three { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .zg-block-columns,.zg-block-columns-three { grid-template-columns:minmax(0,1fr); } }


