/* KSF 2026 Sponsoring – Stylesheet
   Helles Theme, Ubuntu für Überschriften, Gold/Braun aus dem Veranstaltungslogo. */

@import url('https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500;700&family=Open+Sans:wght@400;600&display=swap');

:root {
    --gold: #B5994F;
    --gold-dunkel: #8A7A5C;
    --braun: #4A3D2C;
    --braun-hell: #5C4D38;
    --creme: #F5EFDE;
    --creme-hover: #FBF8EF;
    --weiss: #FFFFFF;
    --grau-bg: #F4F2EE;
    --grau-rand: #E2DDD2;
    --text: #2B2620;
    --text-leise: #6B6357;
    /* Status */
    --ok-bg: #E4F0E2; --ok-tx: #2E6B33;
    --warte-bg: #FBEFD5; --warte-tx: #936C12;
    --offen-bg: #E1ECF4; --offen-tx: #2A6299;
    --kein-bg: #ECEAE5; --kein-tx: #6B6357;
    --radius: 10px;
    --radius-sm: 6px;
    --schatten: 0 1px 3px rgba(74,61,44,.08);
}

* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: 15px;
    color: var(--text);
    background: var(--grau-bg);
    line-height: 1.5;
}
h1, h2, h3, .ubuntu { font-family: 'Ubuntu', sans-serif; font-weight: 500; }

/* --- Login --- */
.login-body { display:flex; align-items:center; justify-content:center; min-height:100vh; padding:20px; }
.login-card {
    background: var(--weiss); border-radius: var(--radius); padding: 32px;
    max-width: 360px; width: 100%; text-align: center; box-shadow: var(--schatten);
    border-top: 4px solid var(--gold);
}
.login-logo { width: 120px; height: auto; margin-bottom: 12px; }
.login-card h1 { font-size: 22px; margin: 0 0 2px; color: var(--braun); }
.login-sub { color: var(--text-leise); font-size: 14px; margin: 0 0 20px; }
.login-card form { display: flex; flex-direction: column; gap: 14px; text-align: left; }

/* --- Formularelemente --- */
label { font-size: 14px; color: var(--text-leise); display: block; }
input, select, textarea {
    font-family: inherit; font-size: 15px; width: 100%; margin-top: 4px;
    padding: 9px 11px; border: 1px solid var(--grau-rand); border-radius: var(--radius-sm);
    background: var(--weiss); color: var(--text);
}
input:focus, select:focus, textarea:focus {
    outline: 2px solid var(--gold); outline-offset: -1px; border-color: var(--gold);
}
textarea { resize: vertical; }
button { font-family: inherit; cursor: pointer; border: 1px solid var(--grau-rand);
    background: var(--weiss); color: var(--braun-hell); border-radius: var(--radius-sm);
    padding: 9px 16px; font-size: 14px; }
button:hover { background: var(--creme-hover); }
.btn-primary { background: var(--gold); color: var(--weiss); border-color: var(--gold); font-weight: 600; }
.btn-primary:hover { background: #a3883f; }
.fehler { color: #B23B3B; background: #F8E6E6; padding: 8px 12px; border-radius: var(--radius-sm); font-size: 14px; }

/* --- Kopfzeile --- */
.kopf {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 12px 20px; background: var(--creme); border-bottom: 2px solid var(--gold);
    position: sticky; top: 0; z-index: 10; flex-wrap: wrap;
}
.kopf-marke { display: flex; align-items: center; gap: 12px; }
.kopf-marke img { width: 42px; height: auto; }
.kopf-marke .titel { font-family: 'Ubuntu'; font-weight: 500; font-size: 16px; color: var(--braun); }
.kopf-marke .unter { font-size: 12px; color: var(--gold-dunkel); }
.kopf-rechts { display: flex; align-items: center; gap: 10px; }
.kopf-rechts select { width: auto; }
.kopf-rechts label { color: var(--braun-hell); display: flex; align-items: center; gap: 6px; }

/* --- Export-Dropdown (v5.6) --- */
.export-dropdown { position: relative; }
.export-menu {
    display: none; position: absolute; top: calc(100% + 6px); right: 0; z-index: 20;
    background: var(--weiss); border: 1px solid var(--grau-rand); border-radius: var(--radius-sm);
    box-shadow: 0 6px 18px rgba(0,0,0,.12); min-width: 220px; overflow: hidden;
}
.export-menu.offen { display: block; }
.export-menu a {
    display: flex; align-items: center; gap: 8px; padding: 10px 14px; font-size: 13px;
    color: var(--text); text-decoration: none; white-space: nowrap;
}
.export-menu a:hover { background: var(--creme-hover); }
.export-menu a .ti { color: var(--gold-dunkel); font-size: 16px; }

.wrap { max-width: 1000px; margin: 0 auto; padding: 20px; }
.eyebrow { font-size: 13px; font-weight: 700; color: var(--gold); letter-spacing: .06em;
    text-transform: uppercase; margin: 0 0 10px; }

/* --- Dashboard --- */
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px,1fr)); gap: 12px; margin-bottom: 16px; }
.kpi { border-radius: var(--radius-sm); padding: 14px; }
.kpi p { margin: 0; }
.kpi .label { font-size: 13px; }
.kpi .zahl { font-size: 24px; font-weight: 500; font-family: 'Ubuntu'; margin-top: 4px; }
.kpi-wert { background: var(--creme); } .kpi-wert .label { color: var(--gold-dunkel); } .kpi-wert .zahl { color: var(--braun); }
.kpi-ok { background: var(--ok-bg); } .kpi-ok .label, .kpi-ok .zahl { color: var(--ok-tx); }
.kpi-warte { background: var(--warte-bg); } .kpi-warte .label, .kpi-warte .zahl { color: var(--warte-tx); }
.kpi-offen { background: var(--offen-bg); } .kpi-offen .label, .kpi-offen .zahl { color: var(--offen-tx); }

.box-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); gap: 12px; margin-bottom: 24px; align-items: start; }
.box { border: 1px solid var(--grau-rand); border-radius: var(--radius); padding: 16px; background: var(--weiss); }
/* Bearbeiter-Box: exakt so hoch wie die (natürlich hohe) Produktions-Box.
   JS setzt die Pixelhöhe; CSS sorgt dafür, dass die Liste darin scrollt. */
#box-bearbeiter { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
#box-bearbeiter h3 { flex: 0 0 auto; }
.bea-liste { flex: 1 1 auto; overflow-y: auto; min-height: 0; padding-right: 6px; }
/* dezenter Scrollbalken */
.bea-liste::-webkit-scrollbar { width: 8px; }
.bea-liste::-webkit-scrollbar-thumb { background: var(--grau-rand); border-radius: 4px; }
.bea-liste::-webkit-scrollbar-thumb:hover { background: var(--gold); }
.bea-liste { scrollbar-width: thin; scrollbar-color: var(--grau-rand) transparent; }
.box h3 { margin: 0 0 12px; font-size: 15px; }
.bar-row { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; font-size: 13px; }
.bar-row .nm { width: 96px; color: var(--text-leise); }
.bar-track { flex: 1; height: 16px; border-radius: 4px; background: var(--grau-bg); overflow: hidden; display: flex; }
.bar-fill { align-self: stretch; border-radius: 4px; background: var(--gold); min-width: 2px; transition: width .3s ease; }
.bar-row .val { width: 28px; text-align: right; font-weight: 600; }

.gr-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 10px; }
.gr-zelle { background: var(--creme); border-radius: var(--radius-sm); padding: 8px 4px; text-align: center; font-size: 12px; }
.gr-zelle .n { display: block; font-size: 16px; font-weight: 500; font-family: 'Ubuntu'; color: var(--braun); }
.gr-zelle .l { color: var(--gold-dunkel); }
.gr-warnung { background: var(--warte-bg); } .gr-warnung .n, .gr-warnung .l { color: var(--warte-tx); }
.gr-summe { background: var(--grau-bg); } .gr-summe .l { color: var(--text-leise); }

.bea-row { margin-bottom: 9px; font-size: 13px; }
.bea-kopf { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.bea-kopf .nm { color: var(--text-leise); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bea-kopf .summe { font-weight: 600; font-family: 'Ubuntu'; }
.bea-kopf .anz { color: var(--text-leise); font-size: 12px; }
.bea-track { height: 8px; margin-top: 3px; border-radius: 4px; background: var(--grau-bg); overflow: hidden; display: flex; }

.banner-zeile { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding-top: 12px;
    border-top: 1px solid var(--grau-rand); font-size: 13px; }
.banner-zeile .anz { margin-left: auto; font-weight: 600; }

/* --- Filterleiste --- */
.filter { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 10px; }
.filter input[type=text] { flex: 1; min-width: 160px; }
.filter select { width: auto; }
.btn-toggle.an { background: var(--gold); color: var(--weiss); border-color: var(--gold); }
.chips { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.chip { padding: 4px 14px; border-radius: 999px; font-size: 13px; }
.chip.an { background: var(--creme); color: var(--braun-hell); border-color: var(--gold); }

/* --- Firmenliste --- */
.liste { border: 1px solid var(--grau-rand); border-radius: var(--radius); overflow: hidden; background: var(--weiss); }
.zeile { display: flex; align-items: center; gap: 12px; padding: 10px 14px; cursor: pointer; font-size: 14px; }
.zeile + .zeile { border-top: 1px solid var(--grau-rand); }
.zeile:hover { background: var(--creme-hover); }
.zeile .haupt { flex: 1.4; min-width: 0; }
.zeile .firma { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zeile .adresse { font-size: 12px; color: var(--text-leise); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zeile .bea { flex: .8; font-size: 12px; color: var(--text-leise); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zeile .bea.leer { color: var(--warte-tx); }
.zeile .groesse-spalte { width: 48px; flex-shrink: 0; text-align: center; font-size: 12px; color: var(--text-leise); }
.zeile .groesse-spalte.leer { color: var(--grau-rand); }
.led-mini { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px;
    flex-shrink: 0; border-radius: 4px; font-size: 11px; font-weight: 700; line-height: 1;
    border: 1px solid var(--grau-rand); color: var(--grau-rand); background: transparent; }
.led-mini.an { background: var(--ok-bg); color: var(--ok-tx); border-color: transparent; }
.zeile .wert { width: 70px; text-align: right; color: var(--text-leise); }
.badge { font-size: 12px; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
.badge.Erteilt { background: var(--ok-bg); color: var(--ok-tx); }
.badge.Wartet { background: var(--warte-bg); color: var(--warte-tx); }
.badge.Offen { background: var(--offen-bg); color: var(--offen-tx); }
.badge.Kein { background: var(--kein-bg); color: var(--kein-tx); }
.zaehler { font-size: 12px; color: var(--text-leise); margin: 8px 0 0; }

/* --- Detail-Panel (Dialog) --- */
dialog.detail { border: none; border-radius: var(--radius); padding: 0; max-width: 640px; width: 92vw;
    box-shadow: 0 12px 40px rgba(74,61,44,.25); }
dialog.detail::backdrop { background: rgba(43,38,32,.4); }
.detail-kopf { display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 16px 20px; border-bottom: 1px solid var(--grau-rand); position: sticky; top: 0; background: var(--weiss); }
.detail-kopf h2 { font-size: 18px; margin: 0; }
.detail-body { padding: 20px; max-height: 70vh; overflow-y: auto; }
.feld-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px,1fr)); gap: 12px; }
.abschnitt { margin-top: 14px; padding: 14px; border: 1px solid var(--grau-rand); border-radius: var(--radius-sm); }
.abschnitt h3 { font-size: 14px; margin: 0 0 10px; display: flex; align-items: center; gap: 6px; }
.abschnitt h3 .ti { color: var(--gold); }
.preis-zeile { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 12px;
    padding-top: 12px; border-top: 1px solid var(--grau-rand); }
.summe-anzeige { margin-left: auto; font-size: 18px; font-weight: 500; font-family: 'Ubuntu';
    color: var(--braun); background: var(--creme); padding: 6px 14px; border-radius: var(--radius-sm); }
.check-zeile { display: flex; align-items: center; gap: 8px; color: var(--text-leise); cursor: pointer; flex-wrap: wrap; }
.check-zeile input { width: auto; margin: 0; }
.check-zeile .feld-hinweis { margin-top: 0; flex-basis: 100%; margin-left: 24px; }
.verlauf-eintrag { display: flex; gap: 10px; margin-bottom: 8px; font-size: 13px; }
.verlauf-eintrag .dat { color: var(--text-leise); white-space: nowrap; }
.verlauf-eintrag .art { color: var(--braun-hell); background: var(--creme); border-radius: 4px; padding: 0 8px; white-space: nowrap; }
.detail-fuss { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 20px;
    border-top: 1px solid var(--grau-rand); position: sticky; bottom: 0; background: var(--weiss); }

/* --- FAB (mobil) --- */
.fab { display: none; position: fixed; right: 18px; bottom: 18px; width: 56px; height: 56px;
    border-radius: 50%; background: var(--gold); border: none; color: var(--weiss);
    box-shadow: 0 4px 12px rgba(74,61,44,.3); align-items: center; justify-content: center; z-index: 20; }

/* --- Responsiv --- */
@media (max-width: 700px) {
    .wrap { padding: 14px; }
    .kpi-grid { grid-template-columns: 1fr 1fr; }
    .gr-grid { grid-template-columns: repeat(3, 1fr); }
    .zeile { flex-wrap: wrap; }
    .zeile .bea { flex-basis: 100%; }
    .zeile .wert { width: auto; }
    .fab { display: flex; }
    .filter .btn-toggle { flex-shrink: 0; }
}

/* --- Erweiterungen v2 --- */
.mini-label { margin: 0 0 4px; color: var(--text-leise); font-size: 14px; }

/* Produktions-Ampel in der Liste */
.ampel { display: inline-flex; gap: 4px; align-items: center; }
.dot { width: 9px; height: 9px; border-radius: 50%; background: var(--grau-rand); display: inline-block; }
.dot.an { background: var(--ok-tx); }

/* Tags in der Liste */
.tag-platz, .tag-ob, .tag-sonder { font-size: 11px; padding: 1px 8px; border-radius: 999px; margin-left: 6px; white-space: nowrap; vertical-align: middle; }
.tag-platz { background: #EAE2F4; color: #5B3F8C; }
.tag-ob { background: var(--kein-bg); color: var(--text-leise); }
.tag-sonder { background: #FDEBD3; color: #9A6A1F; }

/* Icon-Button (i im Kreis) */
.icon-btn { width: 32px; height: 32px; border-radius: 50%; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.icon-btn .ti { font-size: 18px; color: var(--gold-dunkel); }
.icon-btn:hover { background: var(--creme); }

/* Datei-Zeilen */
.datei-zeile { display: flex; align-items: center; gap: 10px; font-size: 13px; flex-wrap: wrap; }
.datei-zeile a { color: var(--braun-hell); }
.datei-leer { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; color: var(--text-leise); }
button.mini { font-size: 12px; padding: 3px 9px; }
.mini-link { font-size: 12px; color: var(--gold-dunkel); }

/* Freigabe-Box */
.freigabe-box { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--grau-rand); }
.freigabe-zeile { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; font-size: 13px; }
.freigabe-zeile strong { color: var(--braun); }
.hinweis { font-size: 12px; color: var(--text-leise); background: var(--creme); padding: 8px 10px; border-radius: var(--radius-sm); margin: 8px 0 0; }
.hinweis .ti { color: var(--gold); vertical-align: -2px; }

/* Änderungsprotokoll-Tabelle */
.log-tabelle { width: 100%; border-collapse: collapse; font-size: 13px; }
.log-tabelle th { text-align: left; color: var(--text-leise); font-weight: 600; padding: 6px 8px; border-bottom: 1px solid var(--grau-rand); position: sticky; top: 0; background: var(--weiss); }
.log-tabelle td { padding: 6px 8px; border-bottom: 1px solid var(--grau-bg); vertical-align: top; }
.log-tabelle .dat { color: var(--text-leise); white-space: nowrap; }
.log-tabelle .alt { color: #B23B3B; }
.log-tabelle .neu { color: var(--ok-tx); }

/* Datei-Auswahl-Dialog */
.waehl-zeile { display: block; width: 100%; text-align: left; margin-bottom: 6px; font-size: 13px; }

@media (max-width: 700px) {
    .ampel { display: none; }
    .groesse-spalte { display: none; }
    .led-mini { display: none; }
    .log-tabelle .dat { font-size: 11px; }
}

/* --- Passwort-Anzeige-Toggle im Login --- */
.pw-wrap { position: relative; display: block; }
.pw-wrap input { padding-right: 84px; }
.pw-toggle { position: absolute; right: 5px; top: 50%; transform: translateY(-50%);
    border: none; background: transparent; color: var(--gold-dunkel); font-size: 13px;
    padding: 4px 8px; cursor: pointer; }
.pw-toggle:hover { background: var(--creme); border-radius: var(--radius-sm); }

/* --- Suchfeld mit Clear-Button --- */
.suche-wrap { position: relative; flex: 1; min-width: 160px; display: flex; }
.suche-wrap input { flex: 1; padding-right: 34px; margin-top: 0; }
.suche-clear { position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
    border: none; background: transparent; color: var(--text-leise); font-size: 22px;
    line-height: 1; padding: 0 8px; cursor: pointer; }
.suche-clear:hover { color: var(--braun); background: transparent; }

/* --- Klickbare Größen-Kacheln + Liste --- */
.gr-klick { cursor: pointer; transition: background .15s, transform .1s; }
.gr-klick:hover { background: var(--gold); transform: translateY(-1px); }
.gr-klick:hover .n, .gr-klick:hover .l { color: var(--weiss); }
.gr-firma { padding: 10px 12px; border-bottom: 1px solid var(--grau-bg); cursor: pointer; border-radius: var(--radius-sm); }
.gr-firma:hover { background: var(--creme-hover); }
.gr-firma-name { font-weight: 600; font-size: 14px; }
.gr-firma-name .gr-bea { font-weight: 400; color: var(--text-leise); font-size: 13px; }
.gr-firma-status { display: flex; gap: 14px; margin-top: 4px; }
.gr-status { font-size: 12px; display: inline-flex; align-items: center; gap: 4px; }
.gr-status.ja { color: var(--ok-tx); }
.gr-status.nein { color: var(--text-leise); }
.gr-status .ti { font-size: 14px; }

/* --- Firma hinzufügen --- */
.eyebrow-zeile { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.btn-neu { background: var(--gold); color: var(--weiss); border-color: var(--gold); font-weight: 600;
    display: inline-flex; align-items: center; gap: 6px; }
.btn-neu:hover { background: #a3883f; }
.btn-neu .ti { font-size: 16px; }

/* --- Firmen-ID im Detail-Kopf --- */
.detail-titel { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.firma-id { font-size: 13px; font-family: 'Ubuntu', sans-serif; color: var(--gold-dunkel);
    background: var(--creme); padding: 2px 9px; border-radius: 999px; white-space: nowrap; }

/* --- Freigabe-Blöcke (v4.4) --- */
.freigabe-block { padding: 8px 0; border-bottom: 1px solid var(--grau-bg); }
.freigabe-block:last-of-type { border-bottom: none; }
.freigabe-block.gesperrt .check-zeile { color: var(--text-leise); }
.frei-hinweis { font-size: 12px; color: var(--text-leise); font-style: italic; }
.frei-datei { display: flex; align-items: center; gap: 8px; font-size: 13px;
    margin: 6px 0 0 26px; flex-wrap: wrap; }
.frei-datei a { color: var(--braun-hell); }
.frei-datei .ti { font-size: 16px; }
.frei-datei.frei-leer { color: var(--text-leise); font-style: italic; }

/* --- Freigabe-Auswahldialog (kopieren vs. zuordnen) --- */
.freigabe-wahl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 8px; }
.wahl-karte { display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
    text-align: left; padding: 16px; border: 1px solid var(--grau-rand); border-radius: var(--radius);
    background: var(--weiss); cursor: pointer; height: 100%; }
.wahl-karte:hover:not(:disabled) { border-color: var(--gold); background: var(--creme-hover); }
.wahl-karte:disabled, .wahl-karte.gesperrt { opacity: .5; cursor: not-allowed; }
.wahl-karte .ti { font-size: 26px; color: var(--gold); }
.wahl-karte .wk-titel { font-weight: 600; font-size: 14px; color: var(--braun); }
.wahl-karte .wk-text { font-size: 12px; color: var(--text-leise); line-height: 1.4; }

@media (max-width: 700px) {
    .freigabe-wahl { grid-template-columns: 1fr; }
}

/* --- Chip-Zeile (Status) mit Reset-Button rechtsbündig (v5.3) --- */
.chip-zeile { display: flex; align-items: center; justify-content: space-between;
    gap: 16px; flex-wrap: wrap; margin-bottom: 10px; }
.chip-zeile .chips { margin-bottom: 0; }

/* Zweite Zeile: Datei-/Merkmal-Filter, volle Breite */
.datei-filter-zeile { margin-bottom: 14px; }
.datei-filter { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; align-items: flex-end; }
.datei-filter label { display: flex; flex-direction: column; gap: 2px; font-size: 11px;
    color: var(--text-leise); }
.datei-filter select.dreizustand { width: auto; margin-top: 0; padding: 5px 6px; font-size: 13px; }
.datei-filter select.dreizustand.aktiv { border-color: var(--gold); background: var(--creme); color: var(--braun); font-weight: 600; }

@media (max-width: 700px) {
    .datei-filter { width: 100%; }
    .datei-filter label { flex: 1; }
    .datei-filter select.dreizustand { width: 100%; }
}

/* --- Filter-Reset-Button (v4.6) --- */
.filter-reset { align-self: flex-end; display: inline-flex; align-items: center; justify-content: center;
    width: 34px; height: 34px; padding: 0; border: 1px solid var(--grau-rand); border-radius: var(--radius-sm);
    background: var(--weiss); color: var(--text-leise); cursor: pointer; }
.filter-reset:hover { background: var(--creme); color: var(--braun); border-color: var(--gold); }
.filter-reset .ti { font-size: 18px; }

@media (max-width: 700px) {
    .filter-reset { align-self: center; width: 100%; height: 38px; }
}

/* --- Dubletten-Warnung beim Anlegen (v4.7) --- */
.dublette-warnung { margin-top: 12px; padding: 10px 12px; background: var(--warte-bg);
    border-radius: var(--radius-sm); }
.dublette-warnung .dub-kopf { font-size: 13px; font-weight: 600; color: var(--warte-tx);
    display: flex; align-items: center; gap: 6px; margin-bottom: 8px; }
.dub-treffer { display: block; width: 100%; text-align: left; font-size: 13px; margin-bottom: 4px;
    background: var(--weiss); border-color: var(--grau-rand); }
.dub-treffer .dub-ort { color: var(--text-leise); }
.dub-treffer .dub-status { float: right; color: var(--text-leise); font-size: 12px; }

/* --- Liste-Kopf mit Sortierung (v4.7) --- */
.liste-kopf { display: flex; align-items: center; justify-content: space-between; gap: 12px;
    flex-wrap: wrap; margin: 8px 0; }
.liste-kopf .zaehler { margin: 0; }
.sort-wahl { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-leise); }
.sort-wahl select { width: auto; margin-top: 0; padding: 5px 8px; font-size: 13px; }

/* --- Status "Verknüpft" + Verknüpfungs-UI (v4.8) --- */
.badge.Verknuepft { background: #e8e0f0; color: #6b4d8f; }
.chip.Verknuepft, .chip[data-c*="Verknüpft"] { white-space: nowrap; }
.verknuepf-block { background: #faf8fd; border: 1px solid #e8e0f0; }
.verknuepf-block h3 { color: #6b4d8f; }
.verknuepf-aktuell { display: flex; align-items: center; gap: 8px; font-size: 14px;
    padding: 8px 12px; background: var(--weiss); border-radius: var(--radius-sm); flex-wrap: wrap; }
.verknuepf-treffer { margin-top: 6px; }
.verknuepf-zeile { display: block; width: 100%; text-align: left; font-size: 13px; margin-bottom: 4px;
    background: var(--weiss); }
.verknuepf-zeile:hover { border-color: var(--gold); background: var(--creme); }
.verknuepf-zeile .dub-status { float: right; color: var(--text-leise); font-size: 12px; }

/* --- "Angemeldet bleiben" im Login (v4.9) --- */
.login-remember { display: flex; align-items: center; gap: 8px; font-size: 14px;
    color: var(--text-leise); cursor: pointer; margin-top: 4px; }
.login-remember input { width: auto; margin: 0; }
.login-remember span { user-select: none; }

/* --- Freigabe als eigene Box mit Berechtigung (v5.0) --- */
.freigabe-box { background: var(--creme); border: 1px solid var(--gold); border-radius: var(--radius);
    padding: 14px 16px; margin-top: 12px; }
.freigabe-box.nur-lesen { background: #f7f6f3; border-color: var(--grau-rand); }
.freigabe-titel { display: flex; align-items: center; gap: 8px; font-size: 15px; margin: 0 0 10px;
    color: var(--braun); font-family: 'Ubuntu', sans-serif; }
.freigabe-titel .ti { color: var(--gold); }
.freigabe-badge { font-size: 11px; font-weight: 600; background: var(--grau-bg); color: var(--text-leise);
    padding: 2px 8px; border-radius: 999px; }
.freigabe-gesperrt-hinweis { color: var(--text-leise); display: flex; align-items: center; gap: 6px; }
.freigabe-gesperrt-hinweis .ti { color: var(--gold-dunkel); }
.nur-lesen .check-zeile { color: var(--text-leise); }
.nur-lesen input[type=checkbox] { cursor: not-allowed; }

/* --- Bauzaunbanner-Link in der Statistikbox (v5.1) --- */
.banner-link { background: none; border: none; padding: 0; cursor: pointer;
    color: var(--gold-dunkel); font-size: inherit; font-family: inherit;
    text-decoration: underline; text-underline-offset: 2px; }
.banner-link:hover { color: var(--braun); }
.banner-anzahl { font-size: 13px; display: inline-flex; align-items: center; gap: 4px;
    color: var(--gold-dunkel); font-weight: 600; }
.banner-anzahl .ti { font-size: 15px; }

/* --- Mehrere Anzeigendateien mit Kennern (v5.2) --- */
.anz-dateien-box { margin-bottom: 14px; }
.anz-datei { padding: 10px 12px; border: 1px solid var(--grau-rand); border-radius: var(--radius-sm);
    margin-bottom: 8px; background: var(--weiss); }
.anz-datei-kopf { display: flex; align-items: center; gap: 8px; font-size: 13px; flex-wrap: wrap; }
.anz-datei-kopf a { color: var(--braun-hell); word-break: break-all; flex: 1; min-width: 120px; }
.anz-datei-kopf .ti { font-size: 16px; }
.anz-datei-meta { margin-top: 6px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.anz-bem { font-size: 12px; color: var(--text-leise); font-style: italic; }
.datei-leer-text { color: var(--text-leise); font-size: 14px; font-style: italic; margin: 4px 0 10px; }
.anz-aktionen { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }

/* Kenner-Badges */
.kenner { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.kenner-print { background: #e3edda; color: #3b6d11; }
.kenner-led { background: #e6eefb; color: #185fa5; }
.kenner-web { background: #f3e8f7; color: #6b4d8f; }
.kenner-logo { background: #fdeadb; color: #a8580f; }
.kenner-offen { background: var(--warte-bg); color: var(--warte-tx); }

/* Kenner-Auswahl im Dialog */
.kenner-check { display: flex; align-items: center; gap: 8px; font-size: 14px; margin: 6px 0; cursor: pointer; }
.kenner-check input { width: auto; margin: 0; }

/* --- Klärungsbedarf (v5.2) --- */
.klaerung-zeile { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; margin: 10px 0;
    padding: 10px 12px; background: var(--warte-bg); border-radius: var(--radius-sm); cursor: pointer; }
.klaerung-zeile input { width: auto; margin: 2px 0 0; }
.tag-klaerung { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; font-weight: 600;
    background: var(--warte-bg); color: var(--warte-tx); padding: 2px 8px; border-radius: 999px; }
.tag-klaerung .ti { font-size: 13px; }
.zeile.hat-klaerung { border-left: 3px solid var(--warte-tx); }

/* --- Klärungsbedarf-Filter als kompakte Checkbox (v5.2) --- */
.datei-filter .filter-check { flex-direction: row; align-items: center; gap: 5px;
    align-self: flex-end; height: 31px; padding: 0 2px; cursor: pointer;
    background: none; border: none; font-size: 13px; color: var(--text-leise); white-space: nowrap; }
.datei-filter .filter-check input { width: auto; margin: 0; accent-color: var(--gold); }
.datei-filter .filter-check span { display: inline-flex; align-items: center; gap: 3px; }
.datei-filter .filter-check .ti { font-size: 16px; }
.datei-filter .filter-check:has(input:checked) { color: var(--braun); font-weight: 600; }
.datei-filter .filter-check:has(input:checked) .ti { color: var(--warte-tx); }
@media (max-width: 700px) {
    .datei-filter .filter-check { width: 100%; justify-content: center; height: auto; padding: 8px; }
}

/* --- Versionsanzeige im Header (v5.2.1) --- */
.unter .version { font-size: 11px; color: var(--gold); opacity: 0.7; margin-left: 4px; font-weight: 500; }

/* --- Box-Titel-Zeile mit PDF-Button (v5.2.3) --- */
.box-titel-zeile { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.box-titel-zeile h3 { margin: 0; }
.icon-btn { background: none; border: none; cursor: pointer; color: var(--text-leise);
    width: 30px; height: 30px; border-radius: var(--radius-sm); display: inline-flex;
    align-items: center; justify-content: center; padding: 0; transition: background .15s, color .15s; }
.icon-btn:hover { background: var(--creme); color: var(--gold-dunkel); }
.icon-btn:disabled { cursor: default; opacity: 0.7; }
.icon-btn .ti { font-size: 19px; }
.icon-btn.ok { color: var(--ok-tx); }
/* Spinner-Drehung */
.dreh { animation: ksf-dreh 0.8s linear infinite; }
@keyframes ksf-dreh { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* --- Bearbeiter-Feld-Schutz (v5.3) --- */
.feld-hinweis { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--text-leise);
    margin-top: 4px; font-weight: 400; }
.feld-hinweis .ti { font-size: 13px; }
select:disabled { background: var(--grau-bg); cursor: not-allowed; opacity: 0.85; }

/* --- Druckhinweis-Icon in Firmenliste + Notiz-Anzeige (v5.3.4) --- */
.notiz-icon { font-size: 17px; color: var(--gold); flex-shrink: 0; }
.anz-notiz { font-size: 12px; color: var(--braun); background: #fffbee; border: 1px solid #e8d99a;
    border-radius: var(--radius-sm); padding: 4px 8px; margin-top: 6px; display: flex;
    align-items: flex-start; gap: 6px; }
.anz-notiz .ti { color: var(--gold-dunkel); font-size: 14px; flex-shrink: 0; margin-top: 1px; }

/* --- Passwort-Dialog (v5.4) --- */
.dlg-pw { width: min(420px, 95vw); }
.dlg-pw .detail-body { display: flex; flex-direction: column; gap: 12px; }
.dlg-pw .detail-body p { margin: 0; }
.dlg-pw .fehler { color: var(--kein-tx, #c0392b); background: #fdf0ee;
    border: 1px solid #f5c6c0; border-radius: var(--radius-sm); padding: 8px 12px;
    font-size: 13px; margin: 0; }

/* --- Passwort-Dialog Tabs (v5.4.4) --- */
.pw-tabs { display: flex; gap: 0; margin-bottom: 16px; border-bottom: 2px solid var(--grau-rand); }
.pw-tab { background: none; border: none; border-bottom: 2px solid transparent; margin-bottom: -2px;
    padding: 8px 16px; font-size: 14px; color: var(--text-leise); cursor: pointer; font-family: inherit; }
.pw-tab.aktiv { color: var(--braun); border-bottom-color: var(--gold); font-weight: 600; }
.pw-tab:hover:not(.aktiv) { color: var(--braun); }
#pw-ok { color: var(--ok-tx); font-size: 14px; margin: 0; }

/* --- Anzeigengröße-Spalte + "Anzeige in Arbeit" (v5.5) --- */
.tag-arbeit { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; font-weight: 600;
    background: var(--warte-bg); color: var(--warte-tx); padding: 2px 8px; border-radius: 999px;
    white-space: nowrap; vertical-align: middle; margin-left: 6px; }
.tag-arbeit .ti { font-size: 13px; }
.dot.arbeit { background: var(--warte-tx); }
.arbeit-zeile { margin-top: 10px; background: var(--creme); }

/* --- Web OK (v5.7) --- */
.tag-webok { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; font-weight: 600;
    background: var(--ok-bg); color: var(--ok-tx); padding: 2px 8px; border-radius: 999px;
    white-space: nowrap; vertical-align: middle; margin-left: 6px; }
.tag-webok .ti { font-size: 13px; }
.webok-zeile { margin-top: 12px; background: var(--ok-bg); padding: 10px 12px; border-radius: var(--radius-sm); }
