/* fibu-v2.css — HH-Fibu V2 Shell (AP 6.69.0, audit/60)
   Arbeitsprogramm-Optik: dicht, tabellarisch, Haushubert-Tannengrün, Beträge rechtsbündig,
   negative Werte rot, Statusfarben konsistent. Responsiv: unter 1100px Spalten-Stack. */

#fibu-v2-root { --fv-gruen:#14532d; --fv-gruen-hell:#16a34a; --fv-rot:#c2401e; --fv-gelb:#b8730a;
  --fv-grau:#64748b; --fv-border:var(--border,#d6dfd9); --fv-bg:#fff;
  font-size:13px; display:flex; flex-direction:column; gap:10px; min-height:70vh; }

/* Kopfleiste: Bereichs-Nav + Zeitraum + Suche */
.fv-top { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.fv-nav { display:flex; flex-wrap:wrap; gap:4px; }
.fv-nav button { border:1px solid var(--fv-border); background:var(--fv-bg); border-radius:7px;
  padding:6px 11px; cursor:pointer; font-size:12.5px; min-height:34px; }
.fv-nav button.aktiv { background:var(--fv-gruen); color:#fff; border-color:var(--fv-gruen); font-weight:700; }
.fv-nav button.vorbereitung { opacity:.55; }
.fv-nav button .fv-badge { background:var(--fv-gelb); color:#fff; border-radius:9px; padding:0 6px;
  font-size:10.5px; margin-left:5px; font-weight:800; }

.fv-zeitraum { display:flex; gap:4px; align-items:center; margin-left:auto; }
.fv-zeitraum button, .fv-zeitraum select { border:1px solid var(--fv-border); background:var(--fv-bg);
  border-radius:7px; padding:6px 9px; cursor:pointer; font-size:12.5px; min-height:34px; }
.fv-zeitraum .fv-zr-label { font-weight:800; padding:0 6px; white-space:nowrap; }
.fv-suche input { border:1px solid var(--fv-border); border-radius:7px; padding:6px 10px; width:220px; min-height:34px; }

/* Datenstatus-Leiste */
.fv-datenstatus { display:flex; flex-wrap:wrap; gap:6px; align-items:center;
  border:1px solid var(--fv-border); border-radius:9px; padding:7px 10px; background:#f7faf8; }
.fv-ds-chip { border-radius:7px; padding:3px 9px; font-size:11.5px; border:1px solid var(--fv-border); background:#fff; white-space:nowrap; }
.fv-ds-chip b { font-weight:800; }
.fv-ds-chip.ok { border-color:#16a34a55; }
.fv-ds-chip.warn { border-color:#b8730a88; background:#b8730a10; }
.fv-ds-chip.rot { border-color:#c2401e88; background:#c2401e10; }
.fv-qual { font-weight:800; padding:3px 10px; border-radius:7px; color:#fff; }
.fv-qual.vollstaendig { background:var(--fv-gruen-hell); }
.fv-qual.eingeschraenkt { background:var(--fv-gelb); }
.fv-qual.unvollstaendig { background:var(--fv-rot); }

/* Kacheln */
.fv-kacheln { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:8px; }
.fv-kachel { border:1px solid var(--fv-border); border-radius:10px; padding:10px 12px; background:var(--fv-bg); }
.fv-kachel .fv-k-label { font-size:11px; color:var(--fv-grau); }
.fv-kachel .fv-k-wert { font-size:19px; font-weight:800; font-variant-numeric:tabular-nums; }
.fv-kachel .fv-k-sub { font-size:10.5px; color:var(--fv-grau); margin-top:2px; }
.fv-neg { color:var(--fv-rot) !important; }
.fv-pos { color:#167a4d; }

/* Tabellen */
.fv-tabelle { width:100%; border-collapse:collapse; font-size:12.5px; }
.fv-tabelle th { text-align:left; font-size:11px; color:var(--fv-grau); border-bottom:2px solid var(--fv-border);
  padding:5px 8px; position:sticky; top:0; background:var(--fv-bg); z-index:1; }
.fv-tabelle td { border-bottom:1px solid #eef2ef; padding:5px 8px; vertical-align:top; }
.fv-tabelle tr:hover td { background:#f4f8f5; }
.fv-tabelle tr.fv-sel td { background:#14532d14; }
.fv-tabelle .fv-num, .fv-tabelle th.fv-num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.fv-chip { display:inline-block; border-radius:6px; padding:1px 7px; font-size:10.5px; font-weight:700; border:1px solid var(--fv-border); }
.fv-chip.ki { background:#7c3aed18; border-color:#7c3aed66; }
.fv-chip.auto { background:#16a34a14; border-color:#16a34a55; }
.fv-chip.karte { background:#b8730a14; border-color:#b8730a66; }
.fv-chip.storno { background:#c2401e14; border-color:#c2401e66; }

/* Buchungszentrale: 3 Spalten */
.fv-zentrale { display:grid; grid-template-columns:minmax(380px,1.15fr) minmax(300px,0.9fr) minmax(320px,1fr);
  gap:10px; align-items:start; }
.fv-panel { border:1px solid var(--fv-border); border-radius:10px; background:var(--fv-bg); overflow:hidden; }
.fv-panel-titel { padding:8px 12px; font-weight:800; border-bottom:1px solid var(--fv-border);
  display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:12.5px; }
.fv-panel-body { padding:0; max-height:66vh; overflow:auto; }
.fv-panel-body.pad { padding:10px 12px; }
.fv-detail dl { display:grid; grid-template-columns:110px 1fr; gap:3px 8px; margin:0; font-size:12.5px; }
.fv-detail dt { color:var(--fv-grau); font-size:11px; padding-top:2px; }
.fv-detail dd { margin:0; word-break:break-word; }
.fv-viewer iframe, .fv-viewer object { width:100%; height:64vh; border:0; }
.fv-leer { padding:26px 14px; text-align:center; color:var(--fv-grau); font-size:12.5px; }

.fv-aktionen { display:flex; flex-wrap:wrap; gap:6px; padding:8px 12px; border-top:1px solid var(--fv-border); position:sticky; bottom:0; background:var(--fv-bg); }
.fv-btn { border:1px solid var(--fv-border); background:var(--fv-bg); border-radius:7px; padding:7px 12px;
  cursor:pointer; font-size:12.5px; min-height:36px; }
.fv-btn.primaer { background:var(--fv-gruen); border-color:var(--fv-gruen); color:#fff; font-weight:700; }
.fv-btn.gefahr { color:var(--fv-rot); border-color:#c2401e66; }
.fv-btn:disabled { opacity:.5; cursor:default; }

.fv-filterzeile { display:flex; flex-wrap:wrap; gap:6px; padding:8px 10px; border-bottom:1px solid var(--fv-border); align-items:center; }
.fv-filterzeile input, .fv-filterzeile select { border:1px solid var(--fv-border); border-radius:6px; padding:5px 8px; font-size:12px; min-height:32px; }
.fv-pager { display:flex; gap:6px; align-items:center; padding:6px 10px; font-size:11.5px; color:var(--fv-grau); border-top:1px solid var(--fv-border); }

.fv-hinweis { font-size:11px; color:var(--fv-grau); }
.fv-warnbox { border:1px solid #b8730a66; background:#b8730a10; border-radius:8px; padding:8px 12px; font-size:12px; }
.fv-vorbereitung { border:1px dashed var(--fv-border); border-radius:10px; padding:34px 20px; text-align:center; color:var(--fv-grau); }

/* Suche-Overlay */
.fv-suchergebnis { position:absolute; z-index:60; background:#fff; border:1px solid var(--fv-border);
  border-radius:10px; box-shadow:0 8px 28px rgba(0,0,0,.14); max-height:64vh; overflow:auto; width:min(640px,92vw); right:0; top:40px; }
.fv-sr-gruppe { padding:6px 12px 2px; font-size:10.5px; font-weight:800; color:var(--fv-grau); text-transform:uppercase; }
.fv-sr-zeile { padding:6px 12px; cursor:pointer; display:flex; gap:8px; justify-content:space-between; font-size:12.5px; }
.fv-sr-zeile:hover { background:#f4f8f5; }

/* Responsiv: iPad/Schmal — Spalten stapeln, Touch-Ziele groß */
@media (max-width: 1100px) {
  .fv-zentrale { grid-template-columns:1fr; }
  .fv-panel-body { max-height:none; }
  .fv-viewer iframe, .fv-viewer object { height:70vh; }
  .fv-zeitraum { margin-left:0; }
  .fv-nav button, .fv-btn { min-height:42px; }
}
