/*
 * SEC Genogramm – Editor & Liste (Backend)
 * @copyright (C) 2026 SEC Swiss Energy Consulting GmbH
 * @license   GNU General Public License version 2 or later
 * Tokens aus ../_snippets/sec-ui.css (Variablen mit Fallback).
 */
.gg-editor, .gg-list, .gg-gedcom, .gg-report, .gg-map, .gg-bday, .gg-check, .gg-dialog, .gg-titlebar {
    --gg-accent: var(--sec-accent, #0e7c86);
    --gg-accent-soft: var(--sec-accent-soft, rgba(14, 124, 134, .12));
    --gg-ink: var(--sec-ink, #1a2230);
    --gg-ink2: var(--sec-ink-2, #4a566e);
    --gg-muted: var(--sec-muted, #5b6680);
    --gg-line: var(--sec-line, #dde2e9);
    --gg-surface: var(--sec-surface, #fff);
    --gg-surface2: var(--sec-surface-2, #f1f4f8);
    --gg-danger: var(--sec-danger, #b42318);
    --gg-ok: var(--sec-ok, #1a7f37);
    --gg-radius: var(--sec-radius, .6rem);
    --gg-radius-s: var(--sec-radius-s, .35rem);
    color: var(--gg-ink);
}

/* ── Editor-Rahmen ───────────────────────────────────────── */
.gg-editor { display: flex; flex-direction: column; gap: .5rem; margin-top: .75rem; }
.gg-toolbar {
    display: flex; flex-wrap: wrap; gap: .5rem .9rem; align-items: center;
    background: var(--gg-surface); border: 1px solid var(--gg-line); border-radius: var(--gg-radius); padding: .3rem .5rem;
}
.gg-tg { display: inline-flex; gap: .25rem; align-items: center; }
.gg-tg--right { margin-left: auto; }
.gg-tg + .gg-tg { border-left: 1px solid var(--gg-line); padding-left: .75rem; }
.gg-tg--right { border-left: 0 !important; }

.gg-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .3rem; cursor: pointer;
    min-width: 1.9rem; height: 1.9rem; padding: 0 .4rem; font-size: calc(.82rem * var(--gg-ui, 1)); line-height: 1;
    color: var(--gg-ink2); background: var(--gg-surface); border: 1px solid var(--gg-line); border-radius: var(--gg-radius-s);
}
.gg-btn:hover:not(:disabled) { border-color: var(--gg-accent); color: var(--gg-accent); }
.gg-btn:focus-visible, .gg-link:focus-visible, .gg-swatch:focus-visible, .gg-svg:focus-visible, .gg-tab:focus-visible {
    outline: 3px solid var(--gg-accent); outline-offset: 2px;
}
.gg-btn:disabled { opacity: .4; cursor: default; }
.gg-btn--txt { padding: 0 .7rem; }
.gg-btn--primary { background: var(--gg-accent); border-color: var(--gg-accent); color: #fff; padding: 0 .9rem; font-weight: 600; }
.gg-btn--primary:hover:not(:disabled) { color: #fff; filter: brightness(.93); }
.gg-btn.is-on { background: var(--gg-accent-soft); border-color: var(--gg-accent); color: var(--gg-accent); font-weight: 600; }
.gg-zoomlabel { min-width: 3.4rem; font-variant-numeric: tabular-nums; }
.gg-danger { color: var(--gg-danger); }
.gg-danger:hover:not(:disabled) { border-color: var(--gg-danger) !important; color: var(--gg-danger) !important; }

/* ── Arbeitsfläche ───────────────────────────────────────── */
.gg-main { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: .6rem; height: max(560px, calc(100vh - 290px)); }
.gg-head.is-collapsed ~ .gg-editor .gg-main { height: max(600px, calc(100vh - 235px)); }
.gg-stage {
    position: relative; overflow: hidden; background: #fff; border: 1px solid var(--gg-line); border-radius: var(--gg-radius);
}
.gg-svg { display: block; width: 100%; height: 100%; touch-action: none; cursor: default; user-select: none; -webkit-user-select: none; }
.gg-svg.is-panning { cursor: grabbing; }
.gg-svg.is-panready { cursor: grab; }
.gg-svg.is-armed { cursor: crosshair; }
.gg-svg .gg-person, .gg-svg .gg-textnode, .gg-svg .gg-group .gg-hit { cursor: move; }
.gg-svg .gg-rel .gg-hit { cursor: pointer; }
.gg-svg .gg-rel:hover path:first-child { stroke: var(--gg-accent); }
.gg-svg text { pointer-events: none; }
.gg-marquee { fill: rgba(14, 124, 134, .12); stroke: #0e7c86; stroke-width: 2; stroke-dasharray: 8 5; pointer-events: none; }
.gg-svg [data-pid].is-marq { filter: drop-shadow(0 0 5px #0e7c86); }
.gg-marquee[hidden] { display: none; }
.gg-pulse { animation: gg-pulse 1.1s ease-in-out infinite; }
@keyframes gg-pulse { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .gg-pulse { animation: none; } }

.gg-undo { position: absolute; left: .6rem; top: .6rem; display: flex; gap: .3rem; z-index: 2; }
.gg-undo .gg-btn { box-shadow: 0 2px 8px -4px rgba(16, 24, 40, .35); }
.gg-hint {
    position: absolute; left: 50%; top: .7rem; transform: translateX(-50%); max-width: 90%;
    background: var(--gg-ink); color: #fff; padding: .4rem .85rem; border-radius: 999px; font-size: calc(.85rem * var(--gg-ui, 1)); pointer-events: none;
}
.gg-hint[hidden], .gg-empty[hidden], .gg-toast[hidden] { display: none; }
.gg-toast {
    position: absolute; left: 50%; bottom: 1rem; transform: translateX(-50%); display: flex; gap: .8rem; align-items: center;
    background: var(--gg-ink); color: #fff; padding: .45rem .5rem .45rem 1rem; border-radius: 999px; font-size: calc(.88rem * var(--gg-ui, 1)); box-shadow: 0 6px 20px -8px rgba(16, 24, 40, .5);
}
.gg-toast__btn { background: #fff; color: var(--gg-ink); border: 0; border-radius: 999px; padding: .25rem .8rem; font-weight: 600; cursor: pointer; }
.gg-toast__btn:hover { background: #e6f4f5; }
.gg-toast__btn:focus-visible { outline: 3px solid #7fd6dc; outline-offset: 2px; }
.gg-empty { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; }
.gg-empty__card {
    pointer-events: auto; background: var(--gg-surface); border: 1px solid var(--gg-line); border-radius: var(--gg-radius);
    padding: 1.2rem 1.4rem; max-width: 26rem; text-align: center; box-shadow: 0 6px 24px -12px rgba(16, 24, 40, .25);
}
.gg-empty__card p { color: var(--gg-ink2); margin: .4rem 0 .9rem; }
.gg-empty__btns { display: flex; gap: .4rem; justify-content: center; flex-wrap: wrap; }
.gg-empty__btns .gg-btn svg { width: 18px; height: 18px; }

.gg-status { font-size: calc(.8rem * var(--gg-ui, 1)); color: var(--gg-muted); }

/* ── Seitenleiste ────────────────────────────────────────── */
.gg-side {
    display: flex; flex-direction: column; min-height: 0; background: var(--gg-surface);
    border: 1px solid var(--gg-line); border-radius: var(--gg-radius);
}
.gg-tabs { display: flex; border-bottom: 1px solid var(--gg-line); }
.gg-tab {
    flex: 1; font-size: calc(.85rem * var(--gg-ui, 1)); cursor: pointer; background: none; border: 0; border-bottom: 3px solid transparent; padding: .6rem .5rem; color: var(--gg-ink2); font-weight: 600;
}
.gg-tab.is-active { color: var(--gg-accent); border-bottom-color: var(--gg-accent); }
.gg-panel { flex: 1; min-height: 0; overflow-y: auto; padding: .75rem .85rem 1rem; }
.gg-panel[hidden] { display: none; }
.gg-panel h3 { font-size: calc(1.02rem * var(--gg-ui, 1)); margin: 0 0 .6rem; word-break: break-word; }
.gg-panel h4 { font-size: calc(.86rem * var(--gg-ui, 1)); margin: 1rem 0 .4rem; color: var(--gg-ink2); text-transform: uppercase; letter-spacing: .04em; }
.gg-f { margin-bottom: .55rem; }
.gg-f > label { display: block; font-size: calc(.78rem * var(--gg-ui, 1)); font-weight: 600; color: var(--gg-ink2); margin-bottom: .15rem; }
.gg-f input[type=text], .gg-f input[type=search], .gg-f select, .gg-f textarea { width: 100%; max-width: 100%; }
.gg-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.gg-chk { display: flex; align-items: center; gap: .45rem; margin: .25rem 0 .5rem; font-size: calc(.9rem * var(--gg-ui, 1)); cursor: pointer; }
.gg-chk input { margin: 0; }
.gg-actions { display: flex; flex-wrap: wrap; gap: .35rem; }
.gg-actions .gg-btn { height: 2rem; font-size: calc(.8rem * var(--gg-ui, 1)); }
.gg-muted { color: var(--gg-muted); font-size: calc(.84rem * var(--gg-ui, 1)); margin: .3rem 0; }
.gg-keys { margin: 0 0 0 1.1rem; padding: 0; font-size: calc(.84rem * var(--gg-ui, 1)); color: var(--gg-ink2); }
.gg-keys li { margin: .15rem 0; }
.gg-rellist, .gg-plist { list-style: none; margin: 0; padding: 0; }
.gg-rellist li, .gg-plist li { display: flex; align-items: center; gap: .3rem; }
.gg-link {
    background: none; border: 0; padding: .3rem .1rem; text-align: left; cursor: pointer; color: var(--gg-accent);
    font-size: calc(.88rem * var(--gg-ui, 1)); display: inline-flex; align-items: center; gap: .4rem; width: 100%;
}
.gg-link:hover { text-decoration: underline; }
.gg-link small { color: var(--gg-muted); }
.gg-pic { display: inline-flex; width: 20px; color: var(--gg-ink2); }
.gg-pic svg { width: 18px; height: 18px; }
.gg-rellist li { flex-wrap: wrap; }
.gg-relf { flex-basis: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: .35rem .5rem; margin: .25rem 0 .7rem; padding: .5rem; background: var(--gg-surface2); border-radius: var(--gg-radius-s); }
.gg-relf label { display: block; font-size: calc(.74rem * var(--gg-ui, 1)); font-weight: 600; color: var(--gg-ink2); margin-bottom: .1rem; }
.gg-relf input, .gg-relf select { width: 100%; max-width: 100%; }
.gg-role { display: inline-block; min-width: 4.6rem; color: var(--gg-muted); font-size: calc(.8rem * var(--gg-ui, 1)); }
.gg-small { font-size: calc(.78rem * var(--gg-ui, 1)); width: auto; padding: .3rem .2rem; }
.gg-x { background: none; border: 0; cursor: pointer; color: var(--gg-danger); font-size: calc(1.1rem * var(--gg-ui, 1)); line-height: 1; padding: 0 .3rem; }
.gg-sw { display: flex; gap: .35rem; flex-wrap: wrap; }
.gg-swatch {
    width: 1.7rem; height: 1.7rem; border-radius: 50%; border: 1px solid #aab2c0; cursor: pointer; color: var(--gg-muted); line-height: 1; padding: 0;
}
.gg-swatch.is-on { outline: 2px solid var(--gg-accent); outline-offset: 2px; }

/* ── Export-Dialog ───────────────────────────────────────── */
.gg-dialog { border: 1px solid var(--gg-line); border-radius: var(--gg-radius); padding: 1.1rem 1.3rem; width: min(900px, 94vw); box-shadow: 0 20px 60px -20px rgba(16, 24, 40, .5); color: var(--gg-ink); }
.gg-dialog::backdrop { background: rgba(16, 24, 40, .45); }
.gg-dialog h3 { margin: 0 0 .8rem; }
.gg-exp__grid { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 1rem; }
.gg-exp__opts input[type=text], .gg-exp__opts select { width: 100%; }
.gg-exp__opts > input[type=text] { margin: 0 0 .5rem; }
.gg-exp__prev {
    border: 1px solid var(--gg-line); border-radius: var(--gg-radius-s); padding: .5rem; overflow: hidden; display: grid; place-items: center; min-height: 240px;
}
.gg-exp__prev svg { max-width: 100%; max-height: 52vh; width: auto; height: auto; }
.gg-exp__btns { display: flex; gap: .5rem; margin-top: .9rem; }

/* ── Meta-Zeile über dem Editor ──────────────────────────── */
.gg-meta { display: grid; grid-template-columns: minmax(220px, 2fr) minmax(160px, 1fr) minmax(120px, .6fr); gap: .75rem 1rem; align-items: end; }
.gg-meta .control-group { margin: 0; }
.gg-desc { margin-top: .5rem; }

/* ── Liste ───────────────────────────────────────────────── */
.gg-list .gg-type { display: inline-block; font-size: calc(.72rem * var(--gg-ui, 1)); font-weight: 600; border-radius: 999px; padding: .1rem .55rem; background: var(--gg-accent-soft); color: var(--gg-accent); }
.gg-list .gg-exp { display: inline-flex; gap: .25rem; flex-wrap: wrap; }
.gg-list .gg-exp .btn { padding: .15rem .5rem; font-size: calc(.78rem * var(--gg-ui, 1)); }
.gg-list .gg-importbar { display: flex; gap: .5rem; align-items: center; margin: 0 0 .75rem; }
.gg-list .gg-msg { font-size: calc(.85rem * var(--gg-ui, 1)); color: var(--gg-muted); }

/* ── Doku/Einstellungen ──────────────────────────────────── */
.gg-subnav { display: flex; gap: .4rem; border-bottom: 1px solid var(--template-bg-dark, #e4e7ec); margin: .25rem 0 1rem; flex-wrap: wrap; }
.gg-subnav a { display: inline-flex; align-items: center; gap: .4rem; padding: .55rem .9rem; text-decoration: none; color: var(--gray-700, #374151); border: 1px solid transparent; border-bottom: none; border-radius: .5rem .5rem 0 0; }
.gg-subnav a:hover { color: var(--link-color, #2a69b8); }
.gg-subnav a.is-active { background: var(--white, #fff); border-color: var(--template-bg-dark, #e4e7ec); font-weight: 600; color: var(--link-color, #2a69b8); }
.gg-docs-meta { color: var(--gray-600, #4b5563); font-size: calc(.85rem * var(--gg-ui, 1)); margin: .25rem 0 1rem; }
.gg-docs-pane { max-height: 60vh; overflow-y: auto; padding: .5rem .25rem .5rem 0; line-height: 1.55; }
.gg-docs-pane h3 { font-size: calc(1.1rem * var(--gg-ui, 1)); margin: .2rem 0 .5rem; }
.gg-docs-pane h4 { font-size: calc(1rem * var(--gg-ui, 1)); margin: .9rem 0 .35rem; }
.gg-docs-pane ul { margin: .2rem 0 .8rem 1.2rem; }
.gg-docs-pane code { background: var(--template-bg-dark, #f1f4f8); border-radius: .25rem; padding: .05rem .3rem; }

/* ── Responsiv ───────────────────────────────────────────── */
@media (max-width: 991px) {
    .gg-main { grid-template-columns: 1fr; height: auto; }
    .gg-stage { height: 62vh; min-height: 380px; }
    .gg-side { max-height: 60vh; }
    .gg-meta { grid-template-columns: 1fr; }
    .gg-exp__grid { grid-template-columns: 1fr; }
    .gg-tg--right { margin-left: 0; }
}

/* ── GEDCOM-Import ───────────────────────────────────────── */
.gg-gedcom { width: min(560px, 94vw); }
.gg-gedcom select, .gg-gedcom input[type=number] { width: 100%; max-width: 100%; }

/* ── Kopfzeile: schmal und einklappbar ───────────────────── */
.gg-head { border: 1px solid var(--sec-line, #dde2e9); border-radius: var(--sec-radius, .6rem); background: var(--sec-surface, #fff); margin: 0 0 .5rem; }
.gg-head__bar { display: flex; align-items: center; gap: .55rem; padding: .25rem .6rem .25rem .35rem; min-height: 2.5rem; cursor: pointer; }
.gg-head__toggle {
    flex: 0 0 auto; width: 1.9rem; height: 1.9rem; display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
    background: transparent; border: 1px solid transparent; border-radius: 50%; color: var(--sec-ink-2, #4a566e);
}
.gg-head__toggle:hover { background: var(--sec-surface-2, #f1f4f8); border-color: var(--sec-line, #dde2e9); }
.gg-head__toggle:focus-visible { outline: 3px solid var(--sec-accent, #0e7c86); outline-offset: 2px; }
.gg-head__chev { width: .55rem; height: .55rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-top: -.2rem; transition: transform .15s; }
.gg-head.is-collapsed .gg-head__chev { transform: rotate(-45deg); margin-top: 0; }
@media (prefers-reduced-motion: reduce) { .gg-head__chev { transition: none; } }
.gg-head__title { flex: 1 1 auto; min-width: 0; font-weight: 600; font-size: calc(1.02rem * var(--gg-ui, 1)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gg-chip { flex: 0 0 auto; font-size: calc(.72rem * var(--gg-ui, 1)); font-weight: 600; border-radius: 999px; padding: .12rem .6rem; background: var(--sec-accent-soft, rgba(14, 124, 134, .12)); color: var(--sec-accent, #0e7c86); }
.gg-chip[hidden] { display: none; }
.gg-chip--state { background: var(--sec-surface-2, #f1f4f8); color: var(--sec-ink-2, #4a566e); }
.gg-chip--state[data-s="1"] { background: #e7f6ec; color: var(--sec-ok, #1a7f37); }
.gg-head__body { padding: .55rem .8rem .8rem; border-top: 1px solid var(--sec-line, #dde2e9); }
.gg-head__body[hidden] { display: none; }
.gg-head__body .gg-meta { grid-template-columns: minmax(220px, 3fr) minmax(140px, 1fr) minmax(120px, 1fr); gap: .45rem .8rem; }
.gg-head__body .control-group, .gg-head__body .gg-desc .control-group { display: block; margin: 0; }
.gg-head__body .control-label, .gg-head__body label { width: auto; padding: 0 0 .15rem; font-size: calc(.76rem * var(--gg-ui, 1)); font-weight: 600; color: var(--sec-ink-2, #4a566e); margin: 0; }
.gg-head__body .controls { width: 100%; margin: 0; }
.gg-head__body input.form-control, .gg-head__body select, .gg-head__body textarea { font-size: calc(.92rem * var(--gg-ui, 1)); padding-top: .3rem; padding-bottom: .3rem; min-height: 0; }
.gg-head__body .form-text, .gg-head__body [id$="-desc"] { display: none; }
.gg-head__body .gg-desc { margin-top: .4rem; }
.gg-head__body textarea { height: 2.6rem; resize: vertical; }
@media (max-width: 991px) { .gg-head__body .gg-meta { grid-template-columns: 1fr; } }

.gg-fl { display: inline-block; font-size: calc(.7rem * var(--gg-ui, 1)); font-weight: 600; border-radius: 999px; padding: .08rem .5rem; background: var(--sec-surface-2, #f1f4f8); color: var(--sec-ink-2, #4a566e); margin: 0 .15rem .15rem 0; white-space: nowrap; }
.gg-fl.is-on { background: #e7f6ec; color: var(--sec-ok, #1a7f37); }
.gg-head__body .gg-flags { margin-top: .4rem; grid-template-columns: repeat(2, minmax(160px, 1fr)); }

/* ── Automatisch ausgefüllt, Plausibilitätsprüfung, Wohnorte-Tabelle ── */
input.gg-auto, .gg-editor input.gg-auto { background: #fff6c2; border-color: #e0b93a; }
.gg-badge { display: inline-block; min-width: 1.15rem; padding: 0 .35rem; margin-left: .2rem; border-radius: 999px; background: #dc2626; color: #fff; font-size: calc(.7rem * var(--gg-ui, 1)); font-weight: 700; line-height: 1.15rem; text-align: center; }
.gg-check { width: min(760px, 96vw); max-height: 92vh; overflow: auto; }
.gg-ck-list { max-height: 56vh; overflow: auto; }
.gg-ck-list h4 { margin: .8rem 0 .3rem; font-size: calc(.95rem * var(--gg-ui, 1)); }
.gg-ck-list ul { list-style: none; margin: 0; padding: 0; }
.gg-ck-list li { padding: .3rem .5rem; border-left: 4px solid var(--gg-line); margin-bottom: .25rem; background: var(--gg-surface2, #f1f4f8); font-size: calc(.88rem * var(--gg-ui, 1)); }
.gg-ck-list li.gg-ck-error { border-left-color: #dc2626; }
.gg-ck-list li.gg-ck-warn { border-left-color: #d97706; }
.gg-ck-list li.is-auto { border-left-color: #e0b93a; background: #fff6c2; }
.gg-ck-ok { color: #1a7f37; font-weight: 600; }
.gg-places table { width: 100%; border-collapse: collapse; margin: .2rem 0 .3rem; }
.gg-places th { font-size: calc(.72rem * var(--gg-ui, 1)); text-align: left; font-weight: 600; color: var(--gg-muted, #5b6680); }
.gg-places td { padding: .1rem .15rem .1rem 0; }
.gg-places td:nth-child(2), .gg-places td:nth-child(3) { width: 4.2rem; }
.gg-places input { width: 100%; }

/* ── Geburtstage (Auswertung) ──────────────────────────── */
.gg-bday { width: min(860px, 96vw); max-height: 94vh; overflow: auto; }
.gg-bday-opts { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; align-items: center; margin-bottom: .6rem; }
.gg-bday-opts select { width: auto; }
.gg-bday-table { max-height: 56vh; overflow: auto; }
.gg-bday-table table { width: 100%; border-collapse: collapse; font-size: calc(.88rem * var(--gg-ui, 1)); }
.gg-bday-table th, .gg-bday-table td { text-align: left; padding: .28rem .5rem; border-bottom: 1px solid var(--gg-line); }
.gg-bday-table th { position: sticky; top: 0; background: var(--gg-surface, #fff); }
.gg-bday-table tr.is-soon td { background: var(--gg-accent-soft, rgba(14, 124, 134, .12)); font-weight: 600; }
.gg-bday-table tr.is-dead td { color: var(--gg-muted, #5b6680); }

/* ── Karte (Auswertung Orte) ───────────────────────────── */
.gg-map { width: min(1100px, 96vw); max-height: 94vh; overflow: auto; }
.gg-map-opts { display: flex; flex-wrap: wrap; gap: .3rem 1.1rem; margin-bottom: .5rem; }
.gg-map-opts .gg-chk { margin: 0; }
.gg-dot { display: inline-block; width: .7rem; height: .7rem; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .2); vertical-align: -.05rem; }
.gg-map-search { margin: .3rem 0 .6rem; }
.gg-map-search p { margin: 0 0 .4rem; }
.gg-map-msg { font-size: calc(.85rem * var(--gg-ui, 1)); color: var(--gg-ink2); margin-left: .4rem; }
.gg-map-canvas { height: min(52vh, 480px); border: 1px solid var(--gg-line); border-radius: var(--gg-radius-s); background: #e8eef3; overflow: hidden; }
.gg-map-table { max-height: 22vh; overflow: auto; margin-top: .7rem; }
.gg-map-table table { width: 100%; border-collapse: collapse; font-size: calc(.85rem * var(--gg-ui, 1)); }
.gg-map-table th, .gg-map-table td { text-align: left; padding: .25rem .5rem; border-bottom: 1px solid var(--gg-line); vertical-align: top; }
.gg-map-manual { width: 8.5rem; font-size: calc(.8rem * var(--gg-ui, 1)); padding: .1rem .3rem; }

/* ── PDF-Bericht ───────────────────────────────────────── */
.gg-report { width: min(520px, 94vw); }
.gg-report select { width: 100%; max-width: 100%; }

/* ── Teilen, Vorschläge, Freigabe-Seite ─────────────────── */
.gg-share, .gg-review, .gg-linkwrap {
    --gg-line: var(--sec-line, #dde2e9);
    --gg-accent: var(--sec-accent, #0e7c86);
    --gg-muted: var(--sec-muted, #5b6680);
}
.gg-share, .gg-review { max-width: 1100px; }
.gg-share h3 { margin: 1.4rem 0 .6rem; font-size: calc(1.1rem * var(--gg-ui, 1)); }
.gg-share__intro { color: var(--gg-muted); }
.gg-share__form { border: 1px solid var(--gg-line); border-radius: .6rem; padding: 1rem 1.2rem; background: var(--sec-surface-2, #f7f9fb); }
.gg-share__form label { display: block; font-weight: 600; margin: .7rem 0 .2rem; }
.gg-share__form small { color: var(--gg-muted); display: block; margin-top: .2rem; }
.gg-share__modes { border: 0; padding: 0; margin: 0 0 .4rem; display: grid; gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.gg-share__modes legend { font-weight: 600; font-size: calc(1rem * var(--gg-ui, 1)); width: 100%; margin-bottom: .3rem; }
.gg-share__form .gg-share__mode { display: flex; gap: .6rem; align-items: flex-start; border: 1px solid var(--gg-line); border-radius: .5rem; padding: .6rem .8rem; background: #fff; font-weight: 400; cursor: pointer; margin: 0; }
.gg-share__mode:has(input:checked) { border-color: var(--gg-accent); box-shadow: 0 0 0 2px rgba(14, 124, 134, .18); }
.gg-share__mode small { margin: 0; }
.gg-share__grid { display: grid; gap: 0 1.4rem; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.gg-share__form .gg-share__check { display: flex; gap: .5rem; align-items: center; font-weight: 400; margin: .8rem 0; }
.gg-share__form .btn { margin-top: .4rem; }
.gg-share__tablewrap { overflow-x: auto; }
.gg-share__table { width: 100%; font-size: calc(.9rem * var(--gg-ui, 1)); vertical-align: top; }
.gg-share__table td, .gg-share__table th { vertical-align: top; }
.gg-share__url { min-width: 14rem; font-size: calc(.78rem * var(--gg-ui, 1)); margin-bottom: .25rem; }
.gg-share__off { opacity: .6; }
.gg-share__actions form { display: inline-block; margin: 0 .2rem .2rem 0; }
.gg-share__filter { margin: .6rem 0; display: flex; gap: .4rem; }
.gg-muted { color: var(--gg-muted); }
.gg-review__meta { display: grid; grid-template-columns: max-content 1fr; gap: .2rem 1rem; margin: 1rem 0; }
.gg-review__meta dt { font-weight: 600; }
.gg-review__meta dd { margin: 0; }
.gg-review__diff { list-style: none; margin: .3rem 0 1rem; padding: 0; max-height: 40vh; overflow: auto; }
.gg-review__diff li { padding: .25rem .6rem; border-left: 4px solid var(--gg-line); margin-bottom: .2rem; background: var(--sec-surface-2, #f1f4f8); font-size: calc(.9rem * var(--gg-ui, 1)); }
.gg-review__diff li.is-add { border-left-color: #1a7f37; }
.gg-review__diff li.is-del { border-left-color: #dc2626; }
.gg-review__diff li.is-chg { border-left-color: #d97706; }
.gg-review__figs { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }
.gg-review__fig { margin: 0; border: 1px solid var(--gg-line); border-radius: .5rem; padding: .5rem; background: #fff; overflow: auto; max-height: 70vh; }
.gg-review__fig figcaption { font-weight: 600; margin-bottom: .3rem; }
.gg-review__fig svg { max-width: 100%; height: auto; }
.gg-review__actions { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.2rem 0; align-items: flex-start; }
.gg-review__actions form { margin: 0; }
.gg-linkwrap .gg-link-hint { color: var(--gg-muted); }
.gg-linkpw { max-width: 26rem; }
.gg-linkpw .btn { margin-top: .8rem; }
.gg-linkvisitor { border: 1px solid var(--gg-line); border-radius: .6rem; padding: .8rem 1rem; margin: .6rem 0 1rem; background: var(--sec-surface-2, #f7f9fb); }
.gg-linkvisitor__row { display: grid; gap: .6rem 1rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.gg-linkvisitor label { display: block; font-weight: 600; margin: .4rem 0 .15rem; }
.gg-linkvisitor__send { margin: .8rem 0 0; display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; }
.gg-share-msg { font-size: calc(.9rem * var(--gg-ui, 1)); color: #1a7f37; }
.gg-share-msg.is-error { color: #b42318; }

/* ── Werkzeugleiste: Menüs, Schnelleingabe ─────────────── */
.gg-menu { position: relative; display: inline-block; }
.gg-menu > summary { list-style: none; cursor: pointer; user-select: none; }
.gg-menu > summary::-webkit-details-marker { display: none; }
.gg-menu[open] > summary { background: var(--gg-accent-soft, rgba(14, 124, 134, .12)); }
.gg-menu__list { position: absolute; right: 0; top: calc(100% + 4px); z-index: 30; min-width: 14rem; background: #fff; border: 1px solid var(--gg-line, #dde2e9); border-radius: .5rem; box-shadow: 0 12px 28px -12px rgba(16, 24, 40, .35); padding: .3rem; display: grid; gap: .1rem; }
.gg-menu__item { display: flex; justify-content: space-between; align-items: center; gap: .6rem; text-align: left; width: 100%; border: 0; background: transparent; padding: .45rem .65rem; border-radius: .35rem; font: inherit; color: var(--gg-ink, #1a2230); cursor: pointer; }
.gg-menu__item:hover, .gg-menu__item:focus-visible { background: var(--gg-accent-soft, rgba(14, 124, 134, .12)); outline: none; }
.gg-quick { border: 1px solid var(--gg-accent, #0e7c86); background: var(--gg-accent-soft, rgba(14, 124, 134, .08)); border-radius: .5rem; padding: .6rem .7rem; margin: .4rem 0 .8rem; }
.gg-quick strong { display: block; margin-bottom: .3rem; }
.gg-quick label { font-size: calc(.75rem * var(--gg-ui, 1)); font-weight: 600; display: block; margin-bottom: .1rem; }
.gg-quick input { width: 100%; }
@media (max-width: 991px) { .gg-menu__list { right: auto; left: 0; } }

/* ── Seitenleiste verschiebbar, Alter, Speicherort, aktuelle Person ───────── */
.gg-main { grid-template-columns: minmax(0, 1fr) 10px var(--gg-side-w, 320px); gap: 0 .15rem; }
.gg-resizer { cursor: col-resize; position: relative; touch-action: none; border-radius: 4px; }
.gg-resizer::before { content: ''; position: absolute; left: 4px; top: 0; bottom: 0; width: 2px; background: var(--gg-line, #dde2e9); border-radius: 2px; }
.gg-resizer::after { content: ''; position: absolute; left: 2px; top: 50%; width: 6px; height: 36px; margin-top: -18px; border-radius: 3px; background: var(--gg-line, #dde2e9); opacity: .0; transition: opacity .15s; }
.gg-resizer:hover::before, .gg-resizer:focus-visible::before, .gg-resizer.is-drag::before { background: var(--gg-accent, #0e7c86); }
.gg-resizer:hover::after, .gg-resizer:focus-visible::after, .gg-resizer.is-drag::after { opacity: 1; background: var(--gg-accent, #0e7c86); }
.gg-resizer:focus-visible { outline: 2px solid var(--gg-accent, #0e7c86); outline-offset: 1px; }
@media (max-width: 991px) { .gg-main { grid-template-columns: 1fr; } .gg-resizer { display: none; } }
.gg-row3 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 7.4rem; gap: .5rem; }
.gg-agebox output { display: block; padding: .38rem .5rem; border: 1px solid var(--gg-line, #dde2e9); border-radius: .35rem; background: var(--sec-surface-2, #f1f4f8); color: var(--gg-ink, #1a2230); font-weight: 600; min-height: 2.1rem; white-space: nowrap; }
.gg-statusbar { display: flex; justify-content: space-between; align-items: center; gap: .8rem; flex-wrap: wrap; }
.gg-store { font-size: calc(.8rem * var(--gg-ui, 1)); color: var(--gg-ink2, #4a566e); display: inline-flex; align-items: center; gap: .35rem; }
.gg-store select { width: auto; font-size: calc(.8rem * var(--gg-ui, 1)); padding: .1rem .3rem; }
.gg-draft { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding: .5rem .8rem; margin-bottom: .5rem; border: 1px solid #e0b93a; background: #fff6c2; border-radius: .5rem; font-size: calc(.9rem * var(--gg-ui, 1)); }
.gg-plist li.is-current > .gg-link, .gg-rellist li.is-current > .gg-link { background: var(--gg-accent-soft, rgba(14, 124, 134, .14)); border-radius: .35rem; font-weight: 700; box-shadow: inset 3px 0 0 var(--gg-accent, #0e7c86); padding-left: .4rem; }

/* ── 0.14: Aufgaben, Teilansicht, Zusammenführen, Annahme, unbekannt, Wasserzeichen ── */
.gg-chk--s { font-size: calc(.78rem * var(--gg-ui, 1)); font-weight: 400; margin: .15rem 0 0; display: inline-flex; align-items: center; gap: .3rem; color: var(--gg-muted, #5b6472); }
.gg-apx { display: flex; }
.gg-quick__btns { margin: .35rem 0 .2rem; }
.gg-inote { background: #fff8e1; border-color: #e6c866; }
.gg-focusoff { margin-left: .75rem; font-size: calc(.8rem * var(--gg-ui, 1)); font-weight: 600; }
.gg-statusbar .gg-wm { margin-left: auto; padding-right: .8rem; }
.gg-wm { font-size: calc(.72rem * var(--gg-ui, 1)); color: #7b8494; letter-spacing: .02em; }
.gg-vwm { text-align: center; margin: .2rem 0 0; }
.gg-xs { margin-top: .2rem; }
.gg-td-add { display: grid; gap: .4rem; margin-bottom: .8rem; padding-bottom: .8rem; border-bottom: 1px solid var(--gg-line, #dde2ea); }
.gg-td-add > input[type=text] { width: 100%; }
.gg-td-list { list-style: none; margin: .5rem 0; padding: 0; display: grid; gap: .45rem; }
.gg-td-list li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .5rem; align-items: start; padding: .4rem .5rem; border: 1px solid var(--gg-line, #dde2ea); border-radius: 8px; background: #fff; }
.gg-td-list li.is-done .gg-td-text { text-decoration: line-through; color: #7b8494; }
.gg-td-text { width: 100%; border: 0; border-bottom: 1px dashed transparent; background: transparent; padding: .1rem 0; font: inherit; }
.gg-td-text:focus { border-bottom-color: var(--gg-accent, #0e7c86); outline: none; }
.gg-td-meta { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; font-size: calc(.78rem * var(--gg-ui, 1)); margin-top: .15rem; }
.gg-td-due { width: 6.4rem; font-size: calc(.78rem * var(--gg-ui, 1)); padding: .1rem .3rem; }
.gg-chip { border: 1px solid var(--gg-line, #dde2ea); background: #f3f5f8; border-radius: 999px; padding: .05rem .55rem; font-size: calc(.72rem * var(--gg-ui, 1)); cursor: pointer; }
.gg-chip--ext { background: #e3f4ee; border-color: #8fd0b5; color: #17604a; }
.gg-chip--int { background: #fff3d6; border-color: #e6c866; color: #7a5a00; }
.gg-mg-scroll { max-height: 46vh; overflow: auto; border: 1px solid var(--gg-line, #dde2ea); border-radius: 8px; padding: .4rem .6rem; margin: .4rem 0; }
.gg-mg-table { width: 100%; border-collapse: collapse; }
.gg-mg-table th, .gg-mg-table td { text-align: left; padding: .25rem .4rem; vertical-align: middle; border-bottom: 1px solid #eef0f4; }
.gg-mg-table select { max-width: 100%; }
.gg-mg-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.gg-mg-list li > div { display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin-top: .15rem; }
.gg-pv__sum { margin: .2rem 0 .6rem 1rem; padding: 0; font-size: calc(.85rem * var(--gg-ui, 1)); }
.gg-share__scope { border: 1px solid var(--gg-line, #dde2ea); border-radius: 8px; padding: .6rem .9rem .8rem; margin: .8rem 0; }
.gg-share__scope legend { font-size: calc(1rem * var(--gg-ui, 1)); width: auto; padding: 0 .4rem; }
.gg-tabs .gg-tab { flex: 1 1 auto; padding-left: .45rem; padding-right: .45rem; }
.gg-tabs { flex-wrap: wrap; }
.gg-tabs .gg-tab { font-size: calc(.85rem * var(--gg-ui, 1)); white-space: nowrap; }

/* ── 0.15: Seitenleiste optisch überarbeitet ── */
.gg-side { box-shadow: 0 1px 2px rgba(16, 24, 40, .05); overflow: hidden; }
.gg-tabs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); background: var(--gg-surface2, #f4f6fa); flex-wrap: nowrap; }
.gg-tabs .gg-tab { font-size: calc(.8rem * var(--gg-ui, 1)); padding: .62rem .2rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gg-tab:not(.is-active):hover { background: rgba(14, 124, 134, .06); }
.gg-panel { padding: .9rem 1rem 1.2rem; }
.gg-panel h3 { font-size: calc(1.1rem * var(--gg-ui, 1)); padding-bottom: .5rem; margin-bottom: .8rem; border-bottom: 1px solid var(--gg-line); }
.gg-panel h4 { display: flex; align-items: center; gap: .45rem; margin: 1.15rem 0 .5rem; font-size: calc(.76rem * var(--gg-ui, 1)); color: var(--gg-accent, #0e7c86); }
.gg-panel h4::before { content: ""; width: .28rem; height: .95em; border-radius: 2px; background: var(--gg-accent, #0e7c86); }
.gg-panel .gg-f input[type=text], .gg-panel .gg-f select, .gg-panel .gg-f textarea, .gg-relf input, .gg-relf select { padding: .38rem .5rem; border: 1px solid var(--gg-line, #dde2e9); border-radius: .4rem; background: #fff; }
.gg-panel .gg-f input:focus, .gg-panel .gg-f select:focus, .gg-panel .gg-f textarea:focus, .gg-relf input:focus, .gg-relf select:focus { outline: 2px solid var(--gg-accent-soft, rgba(14, 124, 134, .3)); border-color: var(--gg-accent, #0e7c86); }
.gg-rellist { display: grid; gap: .3rem; }
.gg-rellist li { padding: .15rem .4rem; border: 1px solid var(--gg-line, #dde2e9); border-radius: .5rem; background: #fff; }
.gg-rellist li:hover { border-color: var(--gg-accent, #0e7c86); }
.gg-relf { grid-template-columns: 1fr 1fr; gap: .5rem .6rem; padding: .7rem .75rem; border: 1px solid var(--gg-line, #dde2e9); background: var(--gg-surface2, #f6f8fb); }
.gg-relf > div { min-width: 0; }
.gg-relf .gg-apx { margin-top: .2rem; }
.gg-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; }
.gg-actions .gg-btn { height: auto; min-height: 2.1rem; padding: .3rem .5rem; white-space: normal; line-height: 1.2; }
.gg-actions .gg-danger { grid-column: 1 / -1; }
.gg-chk { padding: .1rem 0; }
.gg-plist li .gg-link, .gg-rellist li .gg-link { padding: .35rem .3rem; }
.gg-relf label.gg-apx, .gg-f label.gg-apx { display: flex; align-items: center; gap: .3rem; font-weight: 400; font-size: calc(.76rem * var(--gg-ui, 1)); color: var(--gg-muted, #5b6680); }
.gg-relf input[type=checkbox], .gg-apx input[type=checkbox], .gg-chk input[type=checkbox] { width: auto; flex: none; }
.gg-relf input[type=text], .gg-relf select, .gg-panel .gg-f input[type=text], .gg-panel .gg-f select, .gg-panel .gg-f textarea { box-sizing: border-box; }
/* hidden-Attribut in Dialogen immer beachten (sonst überschreibt display:flex von .gg-chk es) */
.gg-dialog [hidden], .gg-editor [hidden].gg-chk, .gg-editor [hidden].gg-f { display: none !important; }

/* ── 0.18: Anordnen Schritt für Schritt ── */
.gg-stepper { position: absolute; right: .7rem; top: 3.2rem; width: min(300px, calc(100% - 1.4rem)); z-index: 6; background: #fff; border: 1px solid var(--gg-line); border-radius: .7rem; padding: .75rem .85rem .85rem; box-shadow: 0 14px 34px -14px rgba(16, 24, 40, .45); }
.gg-stepper[hidden] { display: none; }
.gg-stepper p { margin: .25rem 0; }
.gg-stepper__head { display: flex; justify-content: space-between; align-items: center; }
.gg-stepper__fam { font-weight: 700; font-size: calc(.98rem * var(--gg-ui, 1)); word-break: break-word; }
.gg-stepper__btns { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .6rem; }

/* ── 0.19: Rahmen für Familienblöcke und Zweige, Rückfrage vor dem Anordnen ── */
.gg-frame rect { cursor: move; }
.gg-frame text { pointer-events: none; }
.gg-ask__btns { flex-wrap: wrap; }

/* ── 0.20: Teilebenen ── */
.gg-levels { right: auto; left: .7rem; }
.gg-lvrow { display: flex; flex-wrap: wrap; gap: .3rem; margin: .3rem 0; }
.gg-lvbtn { min-width: 2.2rem; padding: 0 .5rem; }
.gg-lvbtn.is-on { background: var(--gg-accent); border-color: var(--gg-accent); color: #fff; font-weight: 700; }

/* ── 0.21: Gespeicherte Ansichten, Leiste «Vollansicht» ── */
.gg-viewbar { position: absolute; left: 50%; top: .6rem; transform: translateX(-50%); z-index: 7; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; max-width: calc(100% - 1.4rem); padding: .35rem .6rem; background: #fff; border: 1px solid var(--gg-accent); border-radius: .7rem; box-shadow: 0 10px 26px -12px rgba(16, 24, 40, .45); }
.gg-viewbar[hidden] { display: none; }
.gg-viewbar__txt { font-weight: 600; font-size: calc(.85rem * var(--gg-ui, 1)); }
.gg-vlist { list-style: none; margin: .3rem 0; padding: 0; display: flex; flex-direction: column; gap: .3rem; }
.gg-vlist li { display: flex; justify-content: space-between; align-items: center; gap: .4rem; padding: .25rem .4rem; border: 1px solid var(--gg-line); border-radius: .5rem; }
.gg-vlist li.is-on { border-color: var(--gg-accent); background: rgba(14, 124, 134, .08); }
.gg-vlist__n { font-weight: 600; word-break: break-word; }
.gg-vlist__b { display: flex; gap: .2rem; flex-shrink: 0; }
.gg-vnew { display: block; margin-top: .5rem; font-size: calc(.85rem * var(--gg-ui, 1)); font-weight: 600; }
.gg-vnew input { display: block; width: 100%; margin-top: .2rem; }

/* ── 0.21: Aufklappen ── */
.gg-expand { right: auto; left: .7rem; }
.gg-expbtn { padding: 0 .6rem; }
.gg-expbtn.is-on { border-color: var(--gg-accent); background: rgba(14, 124, 134, .1); font-weight: 700; }

/* ── 0.23: Vorschlag annehmen / verwerfen ── */
.gg-propbar { position: absolute; left: 50%; top: 4.9rem; transform: translateX(-50%); z-index: 8; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; max-width: calc(100% - 1.4rem); padding: .45rem .7rem; background: #fff; border: 2px solid #e08a00; border-radius: .7rem; box-shadow: 0 12px 30px -12px rgba(16, 24, 40, .5); }
.gg-propbar[hidden] { display: none; }
.gg-propbar__txt { font-weight: 700; font-size: calc(.88rem * var(--gg-ui, 1)); }
.gg-ghost { fill: none; stroke: #8b94a7; stroke-width: 2; stroke-dasharray: 6 5; }
.gg-prop__arrow { stroke: #e08a00; stroke-width: 2; stroke-dasharray: 5 4; opacity: .85; }
.gg-moved { fill: rgba(224, 138, 0, .1); stroke: #e08a00; stroke-width: 2.5; }

/* ── 0.24: Ausrichten-Symbole ── */
.gg-albtn { padding: 0 .4rem; min-width: 2rem; }
.gg-albtn svg { display: block; }

/* ── 0.25: Schrittliste ── */
.gg-steplist { list-style: none; margin: .35rem 0; padding: 0; max-height: 13rem; overflow: auto; border: 1px solid var(--gg-line); border-radius: .5rem; position: relative; }
.gg-steplist li button { display: flex; gap: .45rem; width: 100%; text-align: left; background: none; border: 0; padding: .3rem .5rem; font-size: calc(.82rem * var(--gg-ui, 1)); cursor: pointer; color: var(--gg-ink); }
.gg-steplist li button:hover { background: rgba(14, 124, 134, .08); }
.gg-steplist li.is-done button { color: var(--gg-ink2); }
.gg-steplist li.is-cur button { background: rgba(14, 124, 134, .14); font-weight: 700; }
.gg-steplist__m { flex: 0 0 1.3rem; text-align: center; font-weight: 700; color: var(--gg-accent); }
.gg-stepper__list-h { margin: .5rem 0 0; font-size: calc(.8rem * var(--gg-ui, 1)); font-weight: 700; }

.gg-legend { display: inline-flex; align-items: center; gap: .35rem; font-size: calc(.78rem * var(--gg-ui, 1)); color: var(--gg-ink2); }
.gg-legend i { display: inline-block; width: .9rem; height: .9rem; border-radius: 3px; }
.gg-legend__m { border: 2px solid #e08a00; background: rgba(224, 138, 0, .15); }
.gg-legend__g { border: 2px dashed #8b94a7; }

/* ── 0.26: Werkzeuge, Zwischenstände, Familien in den Aufbau-Fenstern ── */
.gg-tools__row { display: flex; flex-wrap: wrap; gap: .25rem; margin-bottom: .3rem; }
.gg-selbtn { padding: 0 .5rem; font-size: calc(.78rem * var(--gg-ui, 1)); min-height: 1.9rem; }
.gg-cprow { display: flex; gap: .4rem; margin: .3rem 0; }
.gg-cprow input { flex: 1; min-width: 0; }
.gg-cplist { list-style: none; margin: .3rem 0; padding: 0; display: flex; flex-direction: column; gap: .25rem; }
.gg-cplist li { display: flex; justify-content: space-between; align-items: center; gap: .4rem; padding: .2rem .4rem; border: 1px solid var(--gg-line); border-radius: .5rem; }
.gg-cplist__n { font-weight: 600; word-break: break-word; }
.gg-fam, .gg-hhp { right: auto; left: .7rem; width: min(380px, calc(100% - 1.4rem)); }
.gg-vlist--scroll { max-height: 14rem; overflow: auto; }
.gg-fam__n { word-break: break-word; font-size: calc(.85rem * var(--gg-ui, 1)); }
.gg-stepper { max-height: calc(100% - 4rem); overflow: auto; }

.gg-hhsugs { display: flex; flex-direction: column; gap: .25rem; margin: .3rem 0; }
.gg-hhsug { justify-content: flex-start; text-align: left; border: 1px dashed var(--gg-accent); }

.gg-hhmem { list-style: none; margin: .3rem 0; padding: 0; }
.gg-hhmem li { display: flex; justify-content: space-between; align-items: center; padding: .15rem .3rem; border-bottom: 1px solid var(--gg-line); font-size: calc(.88rem * var(--gg-ui, 1)); }

.gg-hhrow { cursor: pointer; }
.gg-hhrow:hover { background: rgba(224, 138, 0, .08); }
.gg-hhp .gg-vlist li.is-on { border-color: #e08a00; background: rgba(224, 138, 0, .12); }

/* ── 0.30: Fenster verschiebbar ── */
.gg-stepper__head { cursor: move; touch-action: none; user-select: none; -webkit-user-select: none; }
.gg-stepper__head button { cursor: pointer; }

/* Standardplätze gestaffelt, damit sich die Fenster nicht genau decken (verschiebbar) */
.gg-hhp { left: 1.6rem; top: 4.2rem; }
.gg-fam:not(.gg-hhp) { left: 2.5rem; top: 5.2rem; }

.gg-albtn.is-off { opacity: .4; cursor: help; }
.gg-albtn.is-off:hover { background: transparent; }

/* ── 0.33: Tooltips ── */
.gg-tip { position: fixed; z-index: 1000; max-width: 280px; padding: .45rem .65rem; border-radius: .5rem; background: #1f2a3d; color: #fff; font-size: calc(.8rem * var(--gg-ui, 1)); line-height: 1.35; box-shadow: 0 10px 26px -10px rgba(16, 24, 40, .6); pointer-events: none; }
.gg-tip[hidden] { display: none; }
.gg-tip b { display: block; font-weight: 700; }
.gg-tip span { display: block; margin-top: .15rem; color: #d6deec; }

.gg-arch { right: auto; left: 3.4rem; top: 6.2rem; width: min(380px, calc(100% - 1.4rem)); }

/* ── Freigabe «Angaben vorschlagen»: Struktur und Anordnung sind gesperrt ── */
.gg-propose .gg-toolbar > .gg-tg:nth-child(1),
.gg-propose .gg-toolbar > .gg-tg:nth-child(3),
.gg-propose-tools > details.gg-menu:nth-of-type(1),
.gg-propose-tools > details.gg-menu:nth-of-type(3),
.gg-propose .gg-toolbar > .gg-tg--right > details.gg-menu:nth-of-type(1),
.gg-propose .gg-toolbar > .gg-tg--right > details.gg-menu:nth-of-type(3),
.gg-propose .gg-tab[data-tab="links"],
.gg-propose .gg-empty,
.gg-propose .gg-resizer + .gg-side .gg-p-structure { display: none !important; }
.gg-propose .gg-f.gg-locked { opacity: .55; }
.gg-propose .gg-svg [data-pid] { cursor: pointer; }
.gg-propose-note { margin: 0 0 .6rem; padding: .55rem .8rem; background: #eef6f7; border: 1px solid #b9dde0; border-radius: .5rem; font-size: calc(.92rem * var(--gg-ui, 1)); }

/* Kopfbox: nur Titel, Typ und Status sichtbar; Frontend-Schalter und Beschreibung unter «Weitere Angaben» */
.gg-more { margin-top: .5rem; }
.gg-more > summary { display: inline-flex; align-items: center; gap: .4rem; cursor: pointer; list-style: none; font-size: calc(.8rem * var(--gg-ui, 1)); font-weight: 600; color: var(--sec-ink-2, #4a566e); padding: .15rem 0; }
.gg-more > summary::-webkit-details-marker { display: none; }
.gg-more > summary::before { content: ""; width: .4rem; height: .4rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform .15s; }
.gg-more[open] > summary::before { transform: rotate(45deg); }
.gg-more__body { margin-top: .4rem; padding-top: .5rem; border-top: 1px dashed var(--sec-line, #dde2e9); }
.gg-more__body .gg-flags { display: flex; flex-wrap: wrap; gap: .4rem 2rem; margin-bottom: .5rem; }
.gg-more__body .gg-flags .control-group { flex: 0 0 auto; }
@media (prefers-reduced-motion: reduce) { .gg-more > summary::before { transition: none; } }

/* Werkzeugleiste: Aufklappknöpfe mit erklärten Einträgen */
.gg-menu { border: 0; background: transparent; padding: 0; margin: 0; box-shadow: none; }
.gg-menu__list--left { left: 0; right: auto; min-width: 19rem; }
.gg-menu__item--desc { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: .1rem; }
.gg-menu__item--desc .gg-mi__t { font-weight: 600; }
.gg-menu__item--desc .gg-mi__d { color: var(--gg-ink2, #4a566e); font-size: calc(.78rem * var(--gg-ui, 1)); line-height: 1.3; font-weight: 400; white-space: normal; }
.gg-menu__item--desc.is-on .gg-mi__t::after { content: " \2713"; color: var(--gg-accent, #0e7c86); }
.gg-toolbar .gg-menu > summary { height: 2.1rem; display: inline-flex; align-items: center; gap: .3rem; }

/* Eigenschaften/Verbindungen: kompakter, kleinere Schrift, «ca.»-Chip statt langem Hinweis */
.gg-panel input, .gg-panel select, .gg-panel textarea, .gg-relf input, .gg-relf select { font-size: calc(.88rem * var(--gg-ui, 1)); }
.gg-relf { display: block; padding: .6rem .7rem; }
.gg-relf__sel { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem .6rem; margin-bottom: .5rem; }
.gg-relf .gg-dtrow { display: grid; grid-template-columns: 5rem minmax(0, 1fr); align-items: center; gap: .4rem; margin-bottom: .35rem; }
.gg-relf .gg-dtrow > label { margin: 0; font-size: calc(.78rem * var(--gg-ui, 1)); }
.gg-dtrow__in { display: flex; align-items: center; gap: .35rem; min-width: 0; }
.gg-dtrow__in input[type=text] { flex: 1 1 auto; min-width: 0; }
.gg-apxchip, .gg-relf label.gg-apxchip, .gg-f label.gg-apxchip { position: relative; display: inline-flex; align-items: center; flex: 0 0 auto; margin: 0; cursor: pointer; font-weight: 600; font-size: calc(.72rem * var(--gg-ui, 1)); color: var(--gg-muted, #5b6680); }
.gg-apxchip input[type=checkbox] { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gg-apxchip span { display: inline-block; padding: .2rem .45rem; border: 1px solid var(--gg-line, #dde2e9); border-radius: 999px; background: #fff; line-height: 1.2; }
.gg-apxchip input:checked + span { background: var(--gg-accent-soft, rgba(14, 124, 134, .14)); border-color: var(--gg-accent, #0e7c86); color: var(--gg-accent, #0e7c86); }
.gg-apxchip input:focus-visible + span { outline: 2px solid var(--gg-accent, #0e7c86); outline-offset: 2px; }
.gg-f .gg-apxchip { margin-top: .25rem; }
.gg-rellist li > .gg-x { margin-left: auto; }
.gg-rellist li { flex-wrap: nowrap; }

/* Teilen: kurze Einladung, Weiteres aufklappbar */
.gg-share__introd > summary { cursor: pointer; font-size: calc(.85rem * var(--gg-ui, 1)); color: var(--gg-ink2, #4a566e); margin: 0 0 .6rem; }
.gg-share__pills { display: flex; flex-wrap: wrap; gap: .4rem; }
.gg-share__pills .gg-share__mode { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .8rem; border: 1px solid var(--gg-line, #dde2e9); border-radius: 999px; background: #fff; cursor: pointer; font-weight: 600; font-size: calc(.9rem * var(--gg-ui, 1)); }
.gg-share__pills .gg-share__mode:has(input:checked) { background: var(--gg-accent-soft, rgba(14, 124, 134, .14)); border-color: var(--gg-accent, #0e7c86); color: var(--gg-accent, #0e7c86); }
.gg-share__modehelp { margin: .5rem 0 .8rem; font-size: calc(.85rem * var(--gg-ui, 1)); color: var(--gg-ink2, #4a566e); min-height: 1.3em; }
.gg-share__row { margin: 0 0 .8rem; }
.gg-share__row > label { display: block; font-weight: 600; margin-bottom: .2rem; }
.gg-share__sublabel { font-weight: 400 !important; font-size: calc(.82rem * var(--gg-ui, 1)); color: var(--gg-ink2, #4a566e); }
.gg-share__more { margin: .4rem 0 1rem; border: 1px solid var(--gg-line, #dde2e9); border-radius: .6rem; background: var(--gg-surface2, #f6f8fb); }
.gg-share__more > summary { cursor: pointer; padding: .55rem .8rem; font-weight: 600; font-size: calc(.9rem * var(--gg-ui, 1)); }
.gg-share__moreinner { padding: .2rem .8rem .8rem; }

/* Person bearbeiten: Felder fliessen in Zeilen (feste Spaltenbreite statt immer grösserer Felder) */
.gg-pf { display: grid; grid-template-columns: repeat(auto-fill, minmax(8.2rem, 1fr)); gap: .45rem .7rem; max-width: 60rem; align-items: start; margin: 0 0 .4rem; }
.gg-pf > * { margin: 0; min-width: 0; }
.gg-pf .gg-f { margin: 0; }
.gg-pf .gg-f > label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gg-pf .gg-pf__h { grid-column: 1 / -1; margin: .55rem 0 .05rem; padding-bottom: .2rem; border-bottom: 1px solid var(--gg-line, #dde2e9); font-size: calc(.72rem * var(--gg-ui, 1)); letter-spacing: .06em; text-transform: uppercase; color: var(--gg-ink2, #4a566e); }
.gg-pf .gg-pf__h:first-child { margin-top: 0; }
.gg-pf .gg-f--wide, .gg-pf .gg-pf__wide, .gg-pf .gg-places { grid-column: 1 / -1; }
.gg-pf .gg-f--wide input[type=text], .gg-pf .gg-f--wide textarea { max-width: 100%; }
.gg-pf__checks { display: flex; flex-wrap: wrap; gap: .3rem 1.1rem; }
.gg-pf__checks .gg-chk { margin: 0; }
.gg-pf .gg-agebox output { display: block; padding: .38rem .5rem; font-size: calc(.88rem * var(--gg-ui, 1)); color: var(--gg-ink2, #4a566e); }
.gg-pf .gg-dtrow__in input[type=text] { flex: 1 1 auto; min-width: 0; }
.gg-pf > .gg-f { max-width: 14rem; }
.gg-pf > .gg-f--wide, .gg-pf > .gg-places { max-width: none; }

/* Teilen: Kopf mit Logo, drei nummerierte Schritte */
.gg-share__head { display: flex; align-items: center; gap: .9rem; margin: 0 0 1rem; flex-wrap: wrap; }
.gg-share__logo { color: var(--gg-ink, #1a2230); display: inline-flex; flex: 0 0 auto; }
.gg-share__headtext { flex: 1 1 12rem; min-width: 0; }
.gg-share__head h2 { margin: 0; font-size: calc(1.6rem * var(--gg-ui, 1)); line-height: 1.15; }
.gg-share__sub { margin: .1rem 0 0; color: var(--gg-ink2, #4a566e); font-size: calc(.95rem * var(--gg-ui, 1)); }
.gg-share__back { flex: 0 0 auto; }
.gg-share__form { max-width: 52rem; }
.gg-share__step { margin: 0 0 1.1rem; padding: 0; border: 0; }
.gg-share__step > legend, .gg-share__step label.gg-share__n-label, .gg-share__row.gg-share__step > label, .gg-share__msghead > label { display: flex; align-items: center; gap: .5rem; font-size: calc(1rem * var(--gg-ui, 1)); font-weight: 700; margin: 0 0 .4rem; float: none; width: auto; }
.gg-share__n { display: inline-flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--gg-accent, #0e7c86); color: #fff; font-size: calc(.8rem * var(--gg-ui, 1)); font-weight: 700; flex: 0 0 auto; }
.gg-share__msghead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem .8rem; margin-bottom: .4rem; }
.gg-share__msghead > label { margin: 0; }
.gg-share__tpl { display: inline-flex; align-items: center; gap: .4rem; }
.gg-share__tpl label { margin: 0; font-weight: 400; font-size: calc(.82rem * var(--gg-ui, 1)); color: var(--gg-ink2, #4a566e); }
.gg-share__tpl select { width: auto; max-width: 18rem; }
.gg-share__modehelp { display: block; width: 100%; margin: .5rem 0 0; min-height: 1.3em; }
.gg-share__pills { display: flex; flex-wrap: wrap; gap: .4rem; width: 100%; }
.gg-share__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1rem; margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--gg-line, #dde2e9); }
.gg-share__foot .gg-share__check { margin: 0; }
.gg-share__go { min-width: 12rem; }

/* Schriftgrösse der Bedienung: Faktor --gg-ui (Standard 0.8; Knöpfe «A−/A+» oben ändern ihn und merken ihn sich im Browser) */
:root { --gg-ui: .8; }
.gg-editor, .gg-titlebar, .gg-share, .gg-mylist { font-size: calc(1rem * var(--gg-ui, 1)); }
.gg-fontsz { display: inline-flex; gap: .15rem; align-items: center; }
.gg-fontsz .gg-btn { min-width: 2rem; padding-inline: .45rem; font-weight: 700; }

/* Aufklappknopf «PNG ▾» und Symbolknöpfe (Backend-Liste; im Frontend gleich über genogramm-site.css) */
.gg-exp--row { display: inline-flex; align-items: center; gap: .35rem; flex-wrap: nowrap; }
.gg-exp--row .gg-split { position: relative; display: inline-flex; align-items: stretch; }
.gg-exp--row .gg-split .gg-split__main { border-top-right-radius: 0; border-bottom-right-radius: 0; border-right-width: 0; }
.gg-exp--row .gg-split__more { position: relative; display: inline-flex; }
.gg-exp--row .gg-split .gg-split__toggle { display: inline-flex; align-items: center; justify-content: center; list-style: none; cursor: pointer; margin: 0; padding: .25rem .45rem; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.gg-exp--row .gg-split__toggle::-webkit-details-marker { display: none; }
.gg-exp--row .gg-split__caret { width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid currentColor; }
.gg-exp--row .gg-split__menu { position: absolute; top: calc(100% + 4px); left: 0; z-index: 40; min-width: 5.5rem; padding: .3rem; background: #fff; border: 1px solid var(--gg-line, #d5dbe3); border-radius: .5rem; box-shadow: 0 8px 24px rgba(15, 23, 42, .16); }
.gg-exp--row .gg-split__menu button { display: block; width: 100%; padding: .35rem .65rem; border: 0; border-radius: .35rem; background: none; color: #1a2230; font: inherit; font-weight: 600; text-align: left; cursor: pointer; }
.gg-exp--row .gg-split__menu button:hover { background: #eef2f6; }
.gg-exp--row .gg-iconbtn { display: inline-flex; align-items: center; justify-content: center; gap: .25rem; min-width: 2rem; height: 2rem; padding: 0 .4rem; }

/* Projekte */
.gg-prj__new { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.2rem; max-width: 40rem; }
.gg-prj__new .form-control { flex: 1 1 14rem; min-width: 0; }
.gg-prj__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: .9rem; }
.gg-prj__card { background: #fff; border: 1px solid var(--gg-line, #dde2e9); border-radius: .7rem; padding: .9rem 1rem; }
.gg-prj__card h3 { margin: 0 0 .3rem; font-size: calc(1.05rem * var(--gg-ui, 1)); }
.gg-prj__desc { margin: 0 0 .4rem; color: var(--gg-ink2, #4a566e); font-size: calc(.9rem * var(--gg-ui, 1)); }
.gg-prj__meta { display: flex; flex-wrap: wrap; gap: .2rem .8rem; margin: 0 0 .5rem; font-size: calc(.82rem * var(--gg-ui, 1)); color: var(--gg-muted, #5b6680); }
.gg-prj__geno { display: flex; flex-wrap: wrap; gap: .3rem; margin: 0; }
.gg-prj__sec { margin: 0 0 1.4rem; padding: 1rem 1.2rem; background: #fff; border: 1px solid var(--gg-line, #dde2e9); border-radius: .7rem; }
.gg-prj__sec h3 { margin: 0 0 .6rem; font-size: calc(1.05rem * var(--gg-ui, 1)); }
.gg-prj__f { margin: 0 0 .6rem; max-width: 46rem; }
.gg-prj__f label { display: block; font-weight: 600; font-size: calc(.85rem * var(--gg-ui, 1)); margin-bottom: .15rem; }
.gg-prj__details .gg-more { margin: .3rem 0 .6rem; }
.gg-prj__danger { margin-top: 1rem; }

/* Symbol-Aktionen (Haushalt): Zeichen mit kurzer Beschriftung, Erklärung im Tooltip */
.gg-iconacts { display: grid; grid-template-columns: repeat(auto-fill, minmax(4.8rem, 1fr)); gap: .4rem; margin: .6rem 0; }
.gg-iconact { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .25rem; padding: .5rem .3rem; border: 1px solid var(--gg-line, #dde2e9); border-radius: .55rem; background: #fff; color: var(--gg-ink, #1a2230); font: inherit; font-size: calc(.72rem * var(--gg-ui, 1)); line-height: 1.15; text-align: center; cursor: pointer; }
.gg-iconact:hover, .gg-iconact:focus-visible { border-color: var(--gg-accent, #0e7c86); background: var(--gg-accent-soft, rgba(14, 124, 134, .12)); color: var(--gg-accent, #0e7c86); outline: none; }
.gg-iconact svg { flex: 0 0 auto; }
.gg-iconact--danger { color: var(--gg-danger, #c4404a); }
.gg-iconact--danger:hover, .gg-iconact--danger:focus-visible { border-color: var(--gg-danger, #c4404a); background: rgba(196, 64, 74, .1); color: var(--gg-danger, #c4404a); }

/* Werkzeugleiste in einer Zeile; schwebende Knöpfe (Rückgängig, Wiederholen, Zentrieren) nur als Symbole */
.gg-toolbar { flex-wrap: wrap; row-gap: .35rem; }
.gg-toolbar .gg-pal { min-width: 2rem; height: 2rem; padding: 0 .3rem; }
.gg-toolbar .gg-pal svg { width: 18px; height: 18px; }
.gg-menu--align .gg-aligns-menu { left: auto; right: 0; display: grid; grid-template-columns: repeat(6, auto); gap: .3rem; min-width: 0; padding: .5rem; }
.gg-menu--align .gg-aligns-menu .gg-albtn { min-width: 2.1rem; }
.gg-undo { gap: .25rem; }
.gg-undo .gg-undo__btn { min-width: 2.1rem; width: 2.1rem; height: 2.1rem; padding: 0; background: rgba(255, 255, 255, .95); color: var(--gg-ink, #1a2230); }
.gg-undo .gg-undo__btn svg { display: block; }
.gg-undo .gg-undo__btn:disabled { opacity: .35; }

/* Ungespeichertes: Speichern-Knopf und geänderte Personen orange markieren; Zurück-Link */
.btn.is-dirty, .gg-formbar .btn.is-dirty, .gg-split__main.is-dirty, [data-gg-task].is-dirty { background: #d97706 !important; border-color: #d97706 !important; color: #fff !important; }
.btn.is-dirty::before, [data-gg-task].is-dirty::before { content: "\25CF"; margin-right: .4em; font-size: .8em; }
.gg-svg .is-unsaved { filter: drop-shadow(0 0 5px rgba(217, 119, 6, .95)); }
.gg-backrow { margin: 0 0 .4rem; font-size: calc(.9rem * var(--gg-ui, 1)); }
.gg-backlink { text-decoration: none; font-weight: 600; }
.gg-backlink:hover { text-decoration: underline; }
.gg-leave .gg-exp__btns { display: flex; flex-wrap: wrap; gap: .5rem; }
.gg-prj__load { display: grid; gap: 1rem; }
.gg-prj__loadform { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .8rem; }
.gg-prj__loadform > label:first-child { flex: 0 0 9rem; font-weight: 600; margin: 0; }
.gg-prj__loadform .form-select { flex: 1 1 16rem; max-width: 30rem; }
.gg-prj__how { display: inline-flex; gap: .8rem; flex-wrap: wrap; }
.gg-prj__how label { margin: 0; font-weight: 400; }

/* Übersicht nach Projekten gruppiert (aufklappbar) */
tr.gg-grp > td { background: var(--gg-surface2, #eef3f6); border-top: 2px solid var(--gg-line, #dde2e9); font-weight: 600; padding: .5rem .75rem; }
.gg-grp__toggle { display: inline-flex; align-items: center; justify-content: center; width: 1.7rem; height: 1.7rem; margin-right: .3rem; border: 1px solid var(--gg-line, #dde2e9); border-radius: .4rem; background: #fff; cursor: pointer; vertical-align: middle; }
tr.gg-grp.is-closed .gg-split__caret { transform: rotate(-90deg); }
.gg-grp__title { margin: 0 .4rem; }
/* Hineinladen prüfen */
.gg-xfer__sum { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.gg-xfer__sum strong { display: inline-block; min-width: 2.2rem; color: var(--gg-accent, #0e7c86); }
.gg-xfer__opt { display: flex; gap: .4rem; align-items: baseline; margin: 0; font-weight: 400; }
.gg-xfer__bulk { display: flex; gap: .5rem; margin: .4rem 0; }

/* Reiter «Personen»: Eigenschaften klappen unter der gewählten Person auf */
.gg-plist li { flex-wrap: wrap; }
.gg-plist li > .gg-panel.is-docked { flex: 0 0 100%; box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; overflow: visible; max-height: none; margin: .3rem 0 .6rem; padding: .6rem .1rem .8rem; border: 0; border-top: 1px solid var(--gg-line, #dde2e9); background: transparent; }
.gg-plist li.is-current > .gg-link::after { content: ""; margin-left: auto; width: .45rem; height: .45rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.gg-plist li.is-current > .gg-link { display: flex; align-items: center; width: calc(100% - .2rem); }
.gg-plist li.is-current.is-collapsed > .gg-link::after { transform: rotate(-45deg); }

/* Person bearbeiten (Stammdaten) und Zusammenlegen */
.gg-pe__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: .5rem .8rem; max-width: 62rem; margin-bottom: .4rem; }
.gg-pe__grid--wide { grid-template-columns: 1fr; max-width: 46rem; }
.gg-pf__item label { display: block; font-size: calc(.78rem * var(--gg-ui, 1)); font-weight: 600; margin-bottom: .15rem; }
.gg-personform .gg-pf__h { margin: 1rem 0 .4rem; padding-bottom: .2rem; border-bottom: 1px solid var(--gg-line, #dde2e9); font-size: calc(.76rem * var(--gg-ui, 1)); letter-spacing: .06em; text-transform: uppercase; color: var(--gg-ink2, #4a566e); }
.gg-merge__rels { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.gg-merge__rels ul { margin: .3rem 0 0; padding-left: 1.1rem; }

/* Ausrichten: Symbole erscheinen neben den Menüs, sobald mindestens zwei Personen markiert sind */
.gg-aligns--ctx { display: inline-flex; gap: .25rem; align-items: center; padding-left: .6rem; border-left: 1px solid var(--gg-line, #dde2e9); }
.gg-aligns--ctx[hidden] { display: none; }
.gg-aligns--ctx .gg-albtn { min-width: 2rem; height: 2rem; }
/* Schalter unter dem Namen */
.gg-pf__checks--top { display: flex; flex-wrap: wrap; gap: .3rem 1.1rem; margin: 0 0 .7rem; padding: .45rem .6rem; background: var(--gg-surface2, #f6f8fb); border: 1px solid var(--gg-line, #dde2e9); border-radius: .5rem; }
.gg-pf__checks--top .gg-chk { margin: 0; }
.gg-chip--unk { margin-left: .4rem; vertical-align: middle; }
.gg-plist li > .gg-panel.is-docked .gg-pf { max-width: 100%; }
.gg-plist li > .gg-panel.is-docked h3 { margin-top: 0; }

/* Verbindungen herstellen (Stammdaten) */
.gg-conn__form { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; margin: 0 0 .7rem; padding: .5rem .7rem; background: var(--gg-surface2, #f6f8fb); border: 1px solid var(--gg-line, #dde2e9); border-radius: .5rem; }
.gg-conn__lab { flex: 0 0 11rem; }
.gg-conn__form .form-select, .gg-conn__form .form-control { flex: 1 1 8rem; max-width: 14rem; min-width: 0; }
.gg-conn__or { color: var(--gg-muted, #5b6680); font-size: calc(.82rem * var(--gg-ui, 1)); }

/* Person: Unbekannt und Anzeigename oben, Schalter bei den passenden Feldern */
.gg-pf__head { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .5rem 1rem; margin: 0 0 .7rem; padding: .5rem .6rem; background: var(--gg-surface2, #f6f8fb); border: 1px solid var(--gg-line, #dde2e9); border-radius: .5rem; }
.gg-pf__head .gg-chk { margin: 0 0 .45rem; }
.gg-pf__head .gg-f { flex: 1 1 10rem; max-width: 18rem; margin: 0; }
.gg-pf .gg-f--chk { align-self: end; padding-bottom: .35rem; }
.gg-pf .gg-f--chk .gg-chk { margin: 0; }


/* 0.48.1: Abschnitt «Projekt teilen» (aufklappbar) */
.gg-prj__share > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: .4rem; }
.gg-prj__share > summary::-webkit-details-marker { display: none; }
.gg-prj__share > summary::before { content: '\25B8'; color: var(--gg-muted, #5b6680); }
.gg-prj__share[open] > summary::before { content: '\25BE'; }
.gg-prj__share > summary h3 { display: inline; margin: 0; }

/* ── 0.49: Projektseite – einklappbare Boxen, kompakte Tabellen, Symbol-Knöpfe, aufgeklappte Person ── */
.gg-box { margin: 0 0 .7rem; background: #fff; border: 1px solid var(--gg-line, #dde2e9); border-radius: .6rem; }
.gg-box > summary { display: flex; align-items: baseline; gap: .6rem; padding: .5rem .8rem; cursor: pointer; list-style: none; user-select: none; }
.gg-box > summary::-webkit-details-marker { display: none; }
.gg-box > summary::before { content: ""; flex: 0 0 auto; align-self: center; width: .45rem; height: .45rem; border-right: 2px solid var(--gg-muted, #5b6680); border-bottom: 2px solid var(--gg-muted, #5b6680); transform: rotate(-45deg); transition: transform .15s; }
.gg-box[open] > summary::before { transform: rotate(45deg); }
.gg-box__t { font-weight: 700; font-size: calc(.95rem * var(--gg-ui, 1)); }
.gg-box__m { color: var(--gg-muted, #5b6680); font-size: calc(.8rem * var(--gg-ui, 1)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.gg-box__body { padding: .1rem .8rem .7rem; }
.gg-box--static { padding: .6rem .8rem; }
.gg-box--static h3 { margin: 0 0 .3rem; font-size: calc(.95rem * var(--gg-ui, 1)); }
@media (prefers-reduced-motion: reduce) { .gg-box > summary::before { transition: none; } }

/* Symbol-Knöpfe (klein, dezent; Farbe erst beim Darüberfahren) */
.gg-ibtn { display: inline-flex; align-items: center; justify-content: center; width: 1.65rem; height: 1.65rem; padding: 0; margin: 0 .1rem; border: 1px solid var(--gg-line, #d5dbe3); border-radius: .4rem; background: #fff; color: #4a5568; cursor: pointer; text-decoration: none; line-height: 1; }
.gg-ibtn:hover, .gg-ibtn:focus-visible, .gg-ibtn.is-active { background: #eef2f6; border-color: #b8c2cf; color: #1a2230; }
.gg-ibtn.is-active { background: #dff0f2; border-color: var(--sec-accent, #0e7c86); color: var(--sec-accent, #0e7c86); }
.gg-ibtn--danger:hover, .gg-ibtn--danger:focus-visible { background: #fbeaec; border-color: #c4404a; color: #c4404a; }
.gg-ibtn .gg-ico { width: .9rem; height: .9rem; }
.gg-btn-s { display: inline-flex; align-items: center; gap: .35rem; padding: .25rem .7rem; font-size: calc(.85rem * var(--gg-ui, 1)); line-height: 1.3; }
.gg-btn-s.gg-btn-i { padding: .25rem .5rem; }
.gg-btn-s .gg-ico { width: .95rem; height: .95rem; }

/* kompakte Tabellen */
.gg-ptable { width: 100%; margin: 0 0 .5rem; font-size: calc(.85rem * var(--gg-ui, 1)); border-collapse: collapse; }
.gg-ptable th { padding: .25rem .5rem; font-size: calc(.75rem * var(--gg-ui, 1)); font-weight: 700; color: var(--gg-muted, #5b6680); text-align: left; border-bottom: 1px solid var(--gg-line, #dde2e9); white-space: nowrap; }
.gg-ptable td { padding: .2rem .5rem; border-bottom: 1px solid #edf0f4; vertical-align: middle; }
.gg-ptable .gg-num { text-align: center; }
.gg-ptable .gg-pact { width: 1%; white-space: nowrap; text-align: right; }
.gg-pscroll { max-height: 22rem; overflow: auto; border: 1px solid #edf0f4; border-radius: .4rem; }
.gg-pscroll .gg-ptable { margin: 0; }
.gg-pscroll thead th { position: sticky; top: 0; background: #f6f8fb; z-index: 1; }
.gg-ptable tr.gg-prow.is-open > td { background: #f4fafb; }
.gg-pdetail > td { padding: .5rem .6rem .7rem; background: #f6f8fb; }
.gg-ptools { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: 0 0 .5rem; }
.gg-find { position: relative; flex: 1 1 12rem; max-width: 18rem; margin: 0; }
.gg-find .gg-ico { position: absolute; left: .5rem; top: 50%; transform: translateY(-50%); width: .9rem; height: .9rem; color: var(--gg-muted, #5b6680); pointer-events: none; }
.gg-find .form-control { padding-left: 1.7rem; }

/* aufgeklappte Person */
.gg-prj--inline .gg-pe__grid { grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); gap: .35rem .6rem; max-width: none; margin-bottom: .3rem; }
.gg-prj--inline .gg-pe__grid--notes { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.gg-pf__item--chk { align-self: end; padding-bottom: .3rem; }
.gg-pe__grid--notes { max-width: 46rem; grid-template-columns: 1fr 1fr; }
.gg-pdetail .gg-prj__btns, .gg-prj--inline .gg-prj__btns { display: flex; gap: .4rem; margin: .4rem 0 0; }
.gg-conns__list { list-style: none; margin: 0 0 .5rem; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .5rem; }
.gg-conns__list li { display: inline-flex; align-items: center; gap: .3rem; padding: .1rem .2rem .1rem .55rem; background: #fff; border: 1px solid var(--gg-line, #dde2e9); border-radius: 1rem; font-size: calc(.85rem * var(--gg-ui, 1)); }
.gg-conns__kind { color: var(--gg-muted, #5b6680); font-size: calc(.75rem * var(--gg-ui, 1)); }
.gg-conns__kind small { font-size: inherit; }
.gg-conns__list form { margin: 0; }
.gg-conns__list .gg-ibtn { width: 1.35rem; height: 1.35rem; }
.gg-prj--inline .gg-conn__form { margin: 0; padding: .4rem .5rem; }
.gg-prj--inline .gg-conn__form .form-select, .gg-prj--inline .gg-conn__form .form-control { flex: 1 1 8rem; min-width: 8rem; max-width: 12rem; }
.gg-prj--inline .gg-conn__form [hidden] { display: none; }
.gg-prj__cols { display: grid; grid-template-columns: minmax(12rem, 1fr) minmax(12rem, 2fr); gap: .4rem .8rem; max-width: 52rem; }
@media (max-width: 640px) { .gg-prj__cols, .gg-pe__grid--notes { grid-template-columns: 1fr; } }
.gg-prj__new { margin: .4rem 0 0; flex-wrap: nowrap; align-items: center; max-width: 46rem; }
.gg-prj__new .form-control { flex: 1 1 12rem; }
.gg-prj__new .form-select { flex: 0 0 9.5rem; width: 9.5rem; }
.gg-pscroll.has-open { max-height: none; overflow: visible; }
.gg-pscroll.has-open thead th { position: static; }
@media (max-width: 560px) { .gg-prj__new { flex-wrap: wrap; } }

/* ── 0.49.1: Projekt-Kopfzeile, Symbol-Knöpfe in Gruppenzeilen, Personenformular wie im Editor ── */
.gg-prj__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem 1rem; margin: 0 0 .8rem; }
.gg-prj__head h1 { margin: 0; flex: 1 1 auto; min-width: 0; }
.gg-prj__acts { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .15rem; margin: 0; }
.gg-prj__acts form { margin: 0; }
.gg-grp__acts { display: inline-flex; align-items: center; gap: .1rem; margin-left: .8rem; vertical-align: middle; }
.gg-grp__acts form { margin: 0; }
.gg-prj__lifecycle { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0 0; }
.gg-trash__item .gg-ibtn { margin-left: .2rem; }
.gg-panel--inline { flex: none; overflow: visible; padding: .2rem .1rem .3rem; }
.gg-panel--inline h3 { margin-top: 0; }
.gg-prj--inline .gg-pf { max-width: none; grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); }
.gg-prj--inline .gg-pf__head { max-width: none; }
.gg-personform .gg-f textarea { min-height: 3.4rem; }

/* ── 0.51: Auswahl in der Personenliste, Aktionsleiste, Sammeländerung ── */
.gg-pick { width: 1%; padding-left: .6rem !important; padding-right: .2rem !important; }
.gg-pick input { margin: 0; }
.gg-ptable tr.gg-prow.is-picked > td { background: #eef7f8; }
.gg-selbar { margin: 0 0 .5rem; padding: .45rem .6rem; background: #f6f8fb; border: 1px solid var(--gg-line, #dde2e9); border-radius: .5rem; }
.gg-selbar[hidden] { display: none; }
.gg-selbar__row { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.gg-selbar__n { margin-right: .4rem; color: var(--gg-ink2, #4a566e); font-size: calc(.85rem * var(--gg-ui, 1)); }
.gg-selbar .btn[disabled] { opacity: .45; cursor: not-allowed; }
.gg-bulk { margin: .6rem 0 0; padding-top: .5rem; border-top: 1px dashed var(--gg-line, #dde2e9); }
.gg-bulk[hidden] { display: none; }
.gg-bulk__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: .4rem .8rem; align-items: end; }
.gg-bulk__grid .gg-f { margin: 0; }
.gg-bulk__grid .gg-f[hidden] { display: none; }
.gg-bulk__grid input[type=text], .gg-bulk__grid select { width: 100%; }
