:root {
    --fh-brand: #14324d;
}

.app-main {
    /* Platz fuer den fixierten Footer, damit Inhalte nicht darunter verschwinden. */
    padding-bottom: 6rem;
    padding-top: 1.5rem;
}

.bg-brand {
    background-color: var(--fh-brand) !important;
}

/* ------------------------------------------------------------------
   Dashboard (Startseite): Balkendiagramme in HTML/CSS.
   Farben nach Rolle; Kategorie-Slots 1-4 und das Paar Entnahme/
   Hinzunahme sind gegen die weisse Kartenflaeche auf Farbfehlsichtigkeit
   geprueft. Aqua/Gelb liegen unter 3:1 Kontrast -> alle Werte stehen
   zusaetzlich in der Tabelle darunter.
   ------------------------------------------------------------------ */
.fh-viz {
    --viz-surface: #ffffff;
    --viz-ink: #0b0b0b;
    --viz-ink-2: #52514e;
    --viz-muted: #898781;
    --viz-grid: #e1e0d9;
    --viz-achse: #c3c2b7;
    --viz-zurueck: #c3c2b7;      /* de-emphasis: "ohne Foerder-Az." */
    --viz-entnahme: #e34948;     /* Divergenz-Pol rot */
    --viz-hinzunahme: #2a78d6;   /* Divergenz-Pol blau */
    --viz-s1: #2a78d6;
    --viz-s2: #eb6834;
    --viz-s3: #1baf7a;
    --viz-s4: #eda100;
    --viz-s5: #e87ba4;
    --viz-s6: #008300;
    --viz-s7: #4a3aa7;
    --viz-s8: #e34948;
    color: var(--viz-ink);
}

.fh-kachel-wert {
    font-size: 1.75rem;
    font-weight: 600;
    line-height: 1.2;
}

.fh-kachel-label,
.fh-viz .fh-nebentext {
    color: var(--viz-ink-2);
    font-size: .875rem;
}

.fh-legende {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1rem;
    color: var(--viz-ink-2);
    font-size: .8125rem;
    margin-bottom: .75rem;
}

.fh-legende-eintrag {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
}

.fh-swatch {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    background: var(--c);
}

.fh-zeile {
    display: grid;
    grid-template-columns: 9.5rem minmax(0, 1fr);
    align-items: center;
    column-gap: .75rem;
}

.fh-zeile-label {
    font-size: .875rem;
    color: var(--viz-ink-2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Spur: Balken + Wert an der Balkenspitze. Rechter Innenabstand haelt Platz
   fuer das Label frei, damit der laengste Balken es nicht abschneidet. */
.fh-spur {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding-right: 7.5rem;
    border-left: 1px solid var(--viz-achse);
}

.fh-balken {
    display: flex;
    flex: 0 0 auto;
    gap: 2px;                    /* Flaechenluecke zwischen Segmenten */
}

/* Segment = Trefferflaeche (28px hoch, groesser als die 20px-Marke). */
.fh-seg {
    display: flex;
    align-items: center;
    height: 28px;
    min-width: 3px;              /* sehr kleine Werte (z.B. 1) bleiben sichtbar/anfahrbar */
    cursor: default;
    outline: none;
}

.fh-seg > span {
    display: block;
    width: 100%;
    height: 20px;
    background: var(--c);
}

/* 4px gerundetes Datenende, eckig an der Grundlinie. */
.fh-balken > .fh-seg:last-child > span {
    border-radius: 0 4px 4px 0;
}

.fh-seg:hover > span,
.fh-seg:focus-visible > span {
    filter: brightness(1.12);
}

.fh-seg:focus-visible > span {
    box-shadow: 0 0 0 2px var(--viz-surface), 0 0 0 4px var(--viz-ink);
}

.fh-wert {
    font-size: .8125rem;
    color: var(--viz-ink);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.fh-wert small {
    color: var(--viz-muted);
}

/* Divergenz: Entnahme waechst nach links, Hinzunahme nach rechts. */
.fh-div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.fh-div-links,
.fh-div-rechts {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.fh-div-links {
    flex-direction: row-reverse;
    padding-left: 4rem;
    border-right: 1px solid var(--viz-achse);
}

.fh-div-rechts {
    padding-right: 4rem;
}

.fh-div-links .fh-balken > .fh-seg:last-child > span {
    border-radius: 4px 0 0 4px;
}

.fh-div-kopf {
    display: grid;
    grid-template-columns: 1fr 1fr;
    font-size: .75rem;
    color: var(--viz-muted);
}

.fh-tooltip {
    position: fixed;
    z-index: 1080;
    pointer-events: none;
    background: var(--viz-surface, #fff);
    border: 1px solid rgba(11, 11, 11, .1);
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(11, 11, 11, .12);
    padding: .375rem .625rem;
    font-size: .8125rem;
    line-height: 1.35;
    max-width: 18rem;
}

.fh-tooltip strong {
    display: block;
    font-size: .9375rem;
}

.fh-tooltip .fh-tooltip-label {
    display: flex;
    align-items: center;
    gap: .375rem;
    color: #52514e;
}

.fh-tooltip .fh-tooltip-key {
    width: 12px;
    height: 2px;
    background: var(--c);
}

.fh-tabelle td,
.fh-tabelle th {
    font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------------------
   Adresskulisse: Tabellenbearbeitung
   ------------------------------------------------------------------ */
.fh-editleiste {
    position: sticky;
    top: 56px;                   /* unter der fixierten Navigationsleiste */
    z-index: 5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem 1rem;
    padding: .5rem .75rem;
    margin-bottom: .5rem;
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: .375rem;
    font-size: .875rem;
}

.fh-editleiste-offen {
    background: #fff8e1;
    border-color: #f0c36d;
}

.fh-editleiste .fh-hilfe {
    color: #6c757d;
    font-size: .75rem;
}

/* Einzeilige Zeilen: gleichmaessiges Raster, horizontal scrollbar. */
.fh-edit-tabelle td,
.fh-edit-tabelle th {
    white-space: nowrap;
}

.fh-edit-tabelle td.fh-zelle {
    cursor: cell;
    user-select: none;
    min-width: 7rem;
    position: relative;
    outline: none;
}

.fh-edit-tabelle td.fh-zelle.fh-geaendert {
    --bs-table-bg-type: #fff3cd;      /* ueberschreibt die Bootstrap-Streifen */
    background-color: #fff3cd;
}

.fh-edit-tabelle td.fh-zelle.fh-markiert {
    --bs-table-bg-type: #dbe9fb;
    background-color: #dbe9fb;
}

.fh-edit-tabelle td.fh-zelle.fh-geaendert.fh-markiert {
    --bs-table-bg-type: #f3e6b0;
    background-color: #f3e6b0;
}

.fh-edit-tabelle td.fh-zelle.fh-aktiv {
    box-shadow: inset 0 0 0 2px #2a78d6;
}

.fh-edit-tabelle td.fh-zelle.fh-fuellvorschau {
    box-shadow: inset 0 0 0 1px #2a78d6;
    --bs-table-bg-type: #eef4fd;
    background-color: #eef4fd;
}

.fh-edit-tabelle td.fh-zelle.fh-fehler {
    box-shadow: inset 0 0 0 2px #d03b3b;
}

.fh-edit-tabelle td.fh-zelle .fh-zelleingabe {
    min-width: 12rem;
    padding: 0 .25rem;
    font-size: inherit;
}

.fh-fuellgriff {
    position: absolute;
    z-index: 6;
    width: 8px;
    height: 8px;
    background: #2a78d6;
    border: 1px solid #fff;
    cursor: crosshair;
}
