.acc-main { max-width: 1280px; margin: 0 auto; padding: 1.25rem 1.5rem 2.5rem; }
.acc-head { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-end; margin-bottom: 0.9rem; }
.acc-head h1 { margin: 0; font-size: 1.7rem; color: var(--on-bg); }
.acc-sub { margin: 0.25rem 0 0; color: var(--on-bg-muted); }
.acc-subnav { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; }
.acc-subnav a {
  text-decoration: none; color: var(--on-bg-dim); border: 1px solid var(--separator-subtle);
  border-radius: 999px; padding: 0.45rem 0.8rem; font-size: 0.84rem; font-weight: 600; background: var(--bg-1);
}
.acc-subnav a.active { border-color: #2563eb; color: #1d4ed8; background: #eff6ff; }

/* Mehrere Subnav-Zeilen (z. B. Modulwechsel + Buchhaltung), kompakt wie Hauptnavigation */
.acc-subnav-stack {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 0.65rem;
}
.acc-subnav-stack .acc-subnav {
  margin-bottom: 0;
}

/* Kompakter Buchhaltungs-Stil: Heizkosten / NK-Abrechnung (Dichte wie Buchhaltung · Verträge) */
.acc-main.acc-buha-tight {
  max-width: 1280px;
  padding: 1rem 1.25rem 1.75rem;
}
.acc-main.acc-buha-tight .acc-head {
  align-items: flex-start;
  margin-bottom: 0.45rem;
}
.acc-main.acc-buha-tight .acc-head h1 {
  font-size: 1.375rem;
  font-weight: 600;
}
.acc-main.acc-buha-tight .acc-sub {
  font-size: 0.8125rem;
  margin-top: 0.2rem;
}
.acc-main.acc-buha-tight .acc-subnav {
  margin-bottom: 0.5rem;
}
.acc-main.acc-buha-tight .v-module-help {
  margin-bottom: 0.55rem;
  padding: 0.55rem 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.45;
}
.acc-main.acc-buha-tight .acc-kpis {
  gap: 0.5rem;
  margin-bottom: 0.55rem;
}
.acc-main.acc-buha-tight .acc-kpi {
  padding: 0.55rem 0.65rem;
  border-radius: 12px;
}
.acc-main.acc-buha-tight .acc-kpi-label {
  font-size: 0.6875rem;
}
.acc-main.acc-buha-tight .acc-kpi-value {
  margin-top: 0.2rem;
  font-size: 0.95rem;
}
.acc-main.acc-buha-tight .acc-panel {
  margin-bottom: 0.65rem;
  border-radius: 12px;
}
.acc-main.acc-buha-tight .acc-panel-head {
  padding: 0.65rem 0.85rem;
  font-size: 0.8125rem;
}
.acc-main.acc-buha-tight .acc-panel-body {
  padding: 0.65rem 0.85rem;
}
.acc-main.acc-buha-tight .acc-toolbar {
  gap: 0.5rem;
}
.acc-main.acc-buha-tight .acc-table th,
.acc-main.acc-buha-tight .acc-table td {
  padding: 0.6rem 0.75rem;
  font-size: 0.8125rem;
}
.acc-main.acc-buha-tight .acc-table th {
  font-size: 0.6875rem;
}
.acc-main.acc-buha-tight .v-module-workflow-strip {
  margin-bottom: 0.5rem;
  padding: 0.5rem 0.7rem;
  font-size: 0.8rem;
}
.acc-main.acc-buha-tight .acc-hk-workflow {
  margin-bottom: 0.5rem;
  padding: 0.45rem 0.65rem;
  gap: 0.35rem 0.85rem;
}
.acc-main.acc-buha-tight .acc-hk-workflow li {
  font-size: 0.78rem;
}
.acc-main.acc-buha-tight .acc-hk-guide {
  margin-bottom: 0.55rem;
}
.acc-main.acc-buha-tight .acc-hk-guide summary {
  padding: 0.5rem 0.75rem;
  font-size: 0.8125rem;
}
.acc-main.acc-buha-tight .acc-status {
  margin-top: 0.55rem;
  padding: 0.5rem 0.65rem;
  font-size: 0.8125rem;
}

/* Kompakter Leerzustand (wie Tabellen-Hinweis in der Buchhaltung) */
.acc-main.acc-buha-tight .hk-empty-compact {
  display: none;
  padding: 0.75rem 0.85rem;
  text-align: left;
}
.acc-main.acc-buha-tight .hk-empty-compact .acc-empty-lead {
  margin: 0 0 0.2rem;
  font-size: 0.875rem;
}
.acc-main.acc-buha-tight .hk-empty-compact .acc-empty {
  margin: 0 0 0.65rem;
  font-size: 0.8125rem;
  max-width: 32rem;
}

.acc-panel { background: var(--bg-1); border: 1px solid var(--separator-subtle); border-radius: 18px; box-shadow: var(--shadow-card, var(--shadow-1)); margin-bottom: 1rem; overflow: hidden; }
.acc-panel-head { padding: 0.82rem 1rem; border-bottom: 1px solid var(--separator-subtle); font-weight: 650; color: var(--on-bg); }
.acc-panel-body { padding: 1rem; }
.acc-toolbar { display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: flex-end; }
.acc-control { display: flex; flex-direction: column; gap: 0.35rem; min-width: 170px; }
.acc-control label { font-size: 0.78rem; color: var(--on-bg-dim); }
.acc-control input, .acc-control select {
  border: 1px solid var(--separator); background: var(--bg-0); border-radius: 10px; padding: 0.55rem 0.7rem; color: var(--on-bg);
}
.acc-btn { border: 1px solid var(--separator); border-radius: 10px; padding: 0.6rem 0.9rem; cursor: pointer; font-weight: 600; background: var(--bg-0); color: var(--on-bg); }
.acc-btn.primary { background: #2563eb; border-color: #2563eb; color: #fff; }
.acc-btn:disabled { opacity: 0.55; cursor: not-allowed; }
.acc-status { padding: 0.65rem 0.8rem; border-radius: 10px; font-size: 0.9rem; border: 1px solid transparent; margin-top: 0.8rem; }
.acc-status.info { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
.acc-status.ok { background: #ecfdf3; color: #067647; border-color: #abefc6; }
.acc-status.warn { background: #fffaeb; color: #b54708; border-color: #fedf89; }
.acc-status.error { background: #fef3f2; color: #b42318; border-color: #fecdca; }
.acc-kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.75rem; margin-bottom: 1rem; }
.acc-kpis.acc-kpis-4 { grid-template-columns: repeat(4, 1fr); }
.acc-kpi { background: var(--bg-1); border: 1px solid var(--separator-subtle); border-radius: 12px; padding: 0.78rem; }
.acc-kpi-label { font-size: 0.72rem; color: var(--on-bg-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.acc-kpi-value { margin-top: 0.3rem; font-size: 1.03rem; font-weight: 650; color: var(--on-bg); }
.acc-table-wrap { overflow: auto; }
.acc-table { width: 100%; border-collapse: collapse; }
.acc-table th, .acc-table td { padding: 0.7rem 0.85rem; border-bottom: 1px solid var(--separator-subtle); text-align: left; font-size: 0.9rem; }
.acc-table th { position: sticky; top: 0; background: var(--bg-1); z-index: 1; color: var(--on-bg-dim); font-size: 0.76rem; text-transform: uppercase; letter-spacing: 0.04em; }
.acc-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.text-right { text-align: right !important; }
.is-open { color: #b42318; font-weight: 700; }
.is-zero { color: #067647; font-weight: 700; }
.is-credit { color: #175cd3; font-weight: 700; }
.acc-badge { display: inline-flex; align-items: center; padding: 0.2rem 0.5rem; border-radius: 999px; font-size: 0.72rem; font-weight: 600; }
.acc-badge.open { background:#fff7e8; color:#b54708; }
.acc-badge.suggested { background:#eff8ff; color:#175cd3; }
.acc-badge.matched { background:#ecfdf3; color:#067647; }
.acc-badge.ignored { background:#f2f4f7; color:#344054; }
.acc-empty { color: var(--on-bg-muted); font-size: 0.88rem; }
.acc-empty a { color: #1d4ed8; font-weight: 600; text-decoration: none; }
.acc-empty a:hover { text-decoration: underline; }
.acc-empty-lead { font-weight: 650; color: var(--on-bg); margin: 0 0 0.35rem; font-size: 0.9rem; }
.acc-empty p { margin: 0 0 0.35rem; }
.acc-pagination { display:flex; align-items:center; justify-content:flex-end; gap:.6rem; padding:.8rem 1rem; border-top:1px solid var(--separator-subtle); }
.acc-page-info { font-size:.85rem; color:var(--on-bg-dim); min-width:140px; text-align:center; }
.acc-modal { position:fixed; inset:0; background:rgba(16,24,40,.45); display:flex; align-items:center; justify-content:center; z-index:1200; padding:1rem; }
.acc-modal.hidden { display:none; }
.acc-modal-card { width:min(920px,96vw); max-height:88vh; overflow:auto; background:var(--bg-1); border:1px solid var(--separator-subtle); border-radius:14px; box-shadow:var(--shadow-1); padding:1rem; }
.acc-modal-head { display:flex; justify-content:space-between; align-items:flex-start; gap:.75rem; margin-bottom:.8rem; }
.acc-modal-head h3 { margin:0; font-size:1.05rem; color:var(--on-bg); }
.acc-alloc-grid { display:grid; grid-template-columns: 1fr auto auto auto; gap:.55rem; align-items:center; }
.acc-alloc-grid .acc-control { min-width:unset; }
.acc-inline-hint { margin:.6rem 0; font-size:.84rem; color:var(--on-bg-dim); }
.acc-alloc-row { display:contents; }
.acc-alloc-total { margin-top:.8rem; display:flex; gap:1rem; flex-wrap:wrap; font-size:.9rem; }
@media (max-width: 1100px) {
  .acc-kpis { grid-template-columns: repeat(2, 1fr); }
  .acc-kpis.acc-kpis-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
  .acc-main { padding: 1rem; }
  .acc-main.acc-buha-tight { padding: 0.85rem 1rem 1.25rem; }
  .acc-kpis { grid-template-columns: 1fr; }
  .acc-pagination { justify-content:space-between; }
  .acc-alloc-grid { grid-template-columns: 1fr; }
}

/* Heiz-/Nebenkosten Vorschau */
.acc-hk-checks { list-style: none; margin: 0.75rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.acc-hk-check { display: flex; align-items: flex-start; gap: 0.45rem; font-size: 0.86rem; line-height: 1.35; }
.acc-hk-check.ok { color: #067647; }
.acc-hk-check.fail { color: #b42318; }
.acc-hk-check .acc-hk-check-mark { flex-shrink: 0; font-weight: 700; width: 1.1rem; }
.acc-hk-check.nonblocking.fail { color: #b54708; }
.acc-hk-detail-inner { padding: 0.65rem 0.85rem; font-size: 0.82rem; }
.acc-hk-detail-inner table { width: 100%; border-collapse: collapse; }
.acc-hk-detail-inner th, .acc-hk-detail-inner td { padding: 0.35rem 0.5rem; border-bottom: 1px solid var(--separator-subtle); text-align: left; }
.acc-hk-detail-inner th { color: var(--on-bg-dim); font-size: 0.72rem; text-transform: uppercase; }
.hk-toggle-detail { min-width: 2rem; padding: 0.35rem 0.45rem !important; }

/* Nebenkosten: Arbeitsablauf & Hilfe */
.acc-panel-head-row { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; flex-wrap: wrap; }
.acc-hk-workflow {
  list-style: none; margin: 0 0 1rem; padding: 0.65rem 0.85rem;
  display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; align-items: center;
  background: var(--bg-1); border: 1px solid var(--separator-subtle); border-radius: 12px;
  counter-reset: none;
}
.acc-hk-workflow li {
  display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.82rem; font-weight: 600; color: var(--on-bg-muted);
}
.acc-hk-workflow-n {
  display: inline-flex; align-items: center; justify-content: center; width: 1.45rem; height: 1.45rem;
  border-radius: 999px; background: #eff6ff; color: #1d4ed8; font-size: 0.75rem; font-weight: 700;
}
.acc-hk-workflow-t { color: var(--on-bg); }
.acc-hk-guide {
  margin: 0 0 1rem; padding: 0; border: 1px solid var(--separator-subtle); border-radius: 12px; background: var(--bg-1);
  overflow: hidden;
}
.acc-hk-guide summary {
  cursor: pointer; padding: 0.65rem 0.9rem; font-weight: 650; font-size: 0.88rem; color: var(--on-bg);
  list-style: none;
}
.acc-hk-guide summary::-webkit-details-marker { display: none; }
.acc-hk-guide summary::before { content: '▸ '; opacity: 0.5; }
.acc-hk-guide[open] summary::before { content: '▾ '; }
.acc-hk-guide-body { padding: 0 0.9rem 0.85rem; font-size: 0.84rem; line-height: 1.5; color: var(--on-bg-muted); }
.acc-hk-guide-body p { margin: 0 0 0.5rem; }
.acc-hk-guide-note { font-size: 0.8rem; color: var(--on-bg-dim); font-style: italic; }
.acc-panel-lead { margin: 0 0 0.85rem; font-size: 0.86rem; line-height: 1.45; color: var(--on-bg-muted); max-width: 62rem; }
.acc-field-hint { margin: -0.35rem 0 0.65rem; font-size: 0.78rem; color: var(--on-bg-dim); max-width: 48rem; }
.acc-checkbox-label { display: flex; gap: 0.45rem; align-items: center; font-size: 0.85rem; cursor: pointer; }
.acc-hk-subhead { margin: 0.85rem 0 0.35rem; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--on-bg-dim); font-weight: 650; }
.acc-toolbar-actions { align-items: center; }
.acc-muted-cell { opacity: 0.55; font-size: 0.9rem; }

