:root {
  --bg: #f5f6f8;
  --card: #ffffff;
  --text: #19202a;
  --muted: #667085;
  --line: #e4e7ec;
  --primary: #173b57;
  --primary-2: #245778;
  --success: #16794d;
  --warning: #b15f00;
  --danger: #b42318;
  --danger-bg: #fff1f0;
  --radius: 18px;
  --shadow: 0 10px 30px rgba(16,24,40,.08);
}
* { box-sizing: border-box; }
html { background: var(--bg); }
body { margin: 0; font-family: Arial, Helvetica, sans-serif; color: var(--text); background: var(--bg); }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.container { width: min(1180px, calc(100% - 32px)); margin: 0 auto; }
.topbar { background: #102f46; color: white; padding: 18px 0; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.brand { font-weight: 800; letter-spacing: .2px; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 24px; }
.stack { display: grid; gap: 18px; }
.grid { display: grid; gap: 18px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.field { display: grid; gap: 7px; }
.field label { font-size: 14px; font-weight: 700; color: #344054; }
.input, .textarea, .select { width: 100%; border: 1px solid #cfd4dc; border-radius: 12px; padding: 13px 14px; background: white; color: var(--text); outline: none; }
.input:focus, .textarea:focus, .select:focus { border-color: #4e88ad; box-shadow: 0 0 0 3px rgba(36,87,120,.12); }
.input.money { font-size: 20px; font-variant-numeric: tabular-nums; }
.textarea { min-height: 96px; resize: vertical; }
.button { border: 0; border-radius: 12px; padding: 13px 18px; font-weight: 800; background: var(--primary); color: white; }
.button:hover { background: var(--primary-2); }
.button.secondary { background: #eef2f6; color: #223; }
.button.danger { background: var(--danger); }
.button:disabled { opacity: .55; cursor: not-allowed; }
.muted { color: var(--muted); }
.small { font-size: 13px; }
.alert { border-radius: 12px; padding: 14px 16px; border: 1px solid var(--line); }
.alert.danger { background: var(--danger-bg); border-color: #fecdca; color: #7a271a; }
.alert.success { background: #ecfdf3; border-color: #abefc6; color: #05603a; }
.alert.warning { background: #fffaeb; border-color: #fedf89; color: #7a2e0e; }
.money-big { font-size: 28px; font-weight: 900; font-variant-numeric: tabular-nums; }
.mobile-shell { width: min(620px, calc(100% - 24px)); margin: 28px auto 60px; }
.mobile-header { margin-bottom: 18px; }
.mobile-header h1 { margin: 0 0 6px; font-size: 28px; }
.section-title { margin: 8px 0 2px; font-size: 18px; }
.file-preview { border: 1px dashed #98a2b3; border-radius: 14px; padding: 14px; background: #fafafa; }
.file-preview img { max-width: 100%; border-radius: 10px; display:block; }
.signature-canvas { width: 100%; height: 190px; border: 2px dashed #98a2b3; border-radius: 14px; touch-action: none; background: #fff; }
.checkbox-row { display:flex; gap:10px; align-items:flex-start; }
.checkbox-row input { margin-top:4px; width:20px; height:20px; }
.divider { border:0; border-top:1px solid var(--line); margin: 4px 0; }
.admin-shell { display:grid; grid-template-columns: 250px 1fr; min-height: 100vh; }
.sidebar { background:#102f46; color:white; padding:24px 18px; }
.sidebar .brand { font-size:20px; margin-bottom:28px; display:block; }
.nav { display:grid; gap:7px; }
.nav a { padding:11px 12px; border-radius:10px; color:#d8e6ef; }
.nav a:hover { background:rgba(255,255,255,.08); color:white; }
.admin-main { padding:28px; min-width:0; }
.page-head { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:22px; }
.page-head h1 { margin:0; }
.kpis { display:grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap:14px; margin-bottom:22px; }
.kpi { background:white; border:1px solid var(--line); border-radius:14px; padding:16px; }
.kpi .value { font-size:27px; font-weight:900; margin-top:8px; }
.table-wrap { overflow:auto; border-radius:14px; border:1px solid var(--line); background:white; }
table { width:100%; border-collapse: collapse; }
th, td { text-align:left; padding:12px 14px; border-bottom:1px solid var(--line); white-space:nowrap; }
th { font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:#667085; background:#fafbfc; }
.badge { display:inline-flex; border-radius:999px; padding:5px 9px; font-size:12px; font-weight:800; background:#f2f4f7; }
.badge.danger { background:#fee4e2; color:#b42318; }
.badge.success { background:#dcfae6; color:#067647; }
.badge.warning { background:#fef0c7; color:#b54708; }
.actions { display:flex; gap:9px; flex-wrap:wrap; }
.login-wrap { min-height:100vh; display:grid; place-items:center; padding:24px; }
.login-card { width:min(430px,100%); }
@media (max-width: 900px) {
  .admin-shell { grid-template-columns: 1fr; }
  .sidebar { position:static; }
  .nav { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-main { padding:18px; }
  .kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .grid-4,.grid-3,.grid-2 { grid-template-columns:1fr; }
}
@media (max-width: 520px) {
  .card { padding:18px; border-radius:14px; }
  .mobile-shell { margin-top:16px; }
  .kpis { grid-template-columns:1fr 1fr; }
}

/* v1.5: integrated invoice workflow + Stammkunden */
.invoice-employee-shell { width:min(1480px,calc(100% - 32px)); margin:24px auto 60px; }
.invoice-layout { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr); gap:20px; align-items:start; }
.invoice-side { min-width:0; }
.invoice-fieldset { border:0; padding:0; margin:0; min-width:0; }
.invoice-fieldset h3 { margin:14px 0 0; padding-top:14px; border-top:1px solid var(--line); }
.invoice-fieldset p { margin:0; }
.invoice-wrap { white-space:pre-wrap !important; overflow-wrap:anywhere; }
.invoice-link { color:var(--primary); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.invoice-meta,.invoice-summary { margin:0; display:grid; gap:8px; }
.invoice-meta dt,.invoice-summary dt { font-size:13px; font-weight:700; color:var(--muted); }
.invoice-meta dd,.invoice-summary dd { margin:0 0 10px; overflow-wrap:anywhere; white-space:pre-wrap; }
.invoice-summary { grid-template-columns:minmax(100px,1fr) 2fr; column-gap:20px; }
.invoice-history-item { border-left:3px solid var(--line); padding:8px 0 12px 16px; }
.invoice-history-item summary { padding:12px 0; cursor:pointer; }
.invoice-document-row { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; }
.invoice-document-row strong { overflow-wrap:anywhere; }
.invoice-file-button { position:relative; display:block; text-align:center; overflow:hidden; cursor:pointer; }
.invoice-file-button input { position:absolute; inset:0; width:100%; opacity:0; cursor:pointer; }
.invoice-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.invoice-mobile { display:none; }
.invoice-tile h2 { margin:0; }.invoice-tile p { margin-bottom:0; color:var(--muted); }
.invoice-tile:focus-visible { outline:3px solid var(--primary); }
@media(max-width:1100px) { .invoice-layout {grid-template-columns:1fr;} }
@media(max-width:700px) { .invoice-desktop{display:none;} .invoice-mobile{display:grid;} .invoice-kpis{grid-template-columns:repeat(2,minmax(0,1fr));} .invoice-summary{grid-template-columns:1fr;} .invoice-employee-shell{width:calc(100% - 24px);} .page-head{align-items:flex-start;flex-wrap:wrap;} }

.invoice-layout > .invoice-data {grid-column:1;grid-row:1 / span 2;min-width:0;}
.invoice-layout > .invoice-evidence {grid-column:2;grid-row:1;min-width:0;}
.invoice-layout > .invoice-side {grid-column:2;grid-row:2;}
@media(max-width:1100px){
 .invoice-layout > .invoice-data,.invoice-layout > .invoice-evidence,.invoice-layout > .invoice-side{grid-column:auto;grid-row:auto;}
}

/* v1.6.5: compact desktop layout for Auf Rechnung */
.invoice-kpi-tile { position:relative; overflow:hidden; }
.invoice-kpi-tile::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:#f79009; }
.invoice-kpi-tile.invoice-kpi-done::before { background:var(--success); }
.invoice-kpi-open { background:#fffdf7; }
.invoice-kpi-done { background:#f4fbf7; }
.invoice-row-open td:first-child { box-shadow:inset 3px 0 0 #f79009; }
.invoice-row-done { background:#f7fcf9; }
.invoice-row-done td:first-child { box-shadow:inset 3px 0 0 var(--success); }
.invoice-row-cancelled { background:#fff8f7; }
.invoice-row-cancelled td:first-child { box-shadow:inset 3px 0 0 var(--danger); }

@media (min-width:1101px) {
  .admin-shell { grid-template-columns:220px minmax(0,1fr); }
  .sidebar { padding:18px 14px; }
  .sidebar .brand { font-size:18px; margin-bottom:20px; }
  .nav { gap:5px; }
  .nav a { padding:9px 10px; font-size:14px; }
  .admin-main { padding:20px; }

  .invoice-admin-page { gap:12px; }
  .invoice-admin-page .invoice-page-head { margin-bottom:4px; }
  .invoice-admin-page .invoice-page-head h1 { font-size:28px; }
  .invoice-admin-page .invoice-page-head p { margin:4px 0 0; font-size:13px; }
  .invoice-admin-page .button,
  .invoice-dashboard-compact .button { padding:9px 12px; border-radius:10px; font-size:13px; }
  .invoice-admin-page .invoice-compact-actions { gap:6px; }

  .invoice-kpis.invoice-kpis-compact { grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
  .invoice-kpis-compact .kpi { padding:10px 12px 9px; border-radius:11px; }
  .invoice-kpis-compact .kpi .small { font-size:11px; line-height:1.25; }
  .invoice-kpis-compact .kpi .value { font-size:22px; margin-top:3px; line-height:1; }

  .invoice-filter-card { padding:14px; gap:10px; border-radius:12px; }
  .invoice-filter-card .grid { gap:10px; }
  .invoice-filter-card .field { gap:4px; }
  .invoice-filter-card .field > span { font-size:12px; }
  .invoice-filter-card .input,
  .invoice-filter-card .select { padding:9px 10px; border-radius:9px; font-size:13px; }
  .invoice-filter-card summary { font-size:13px; cursor:pointer; }

  .invoice-table-dense { border-radius:11px; }
  .invoice-table-dense table { font-size:12.5px; }
  .invoice-table-dense th { padding:8px 9px; font-size:10.5px; }
  .invoice-table-dense td { padding:8px 9px; }
  .invoice-table-dense .small { font-size:11px; }
  .invoice-table-dense .badge { padding:4px 7px; font-size:10px; letter-spacing:.01em; }
  .invoice-table-dense .invoice-link { font-size:12px; }

  .invoice-dashboard-compact { padding:14px; gap:10px; }
  .invoice-dashboard-compact .invoice-page-head { margin-bottom:0; }
  .invoice-dashboard-compact .invoice-page-head h2 { margin:0; font-size:18px; }
}

/* v1.6.7: simplified invoice processing checklist */
.invoice-process-card { gap:14px; }
.invoice-process-step { border:1px solid var(--line); border-radius:12px; padding:12px; background:#fafbfc; display:grid; gap:10px; }
.invoice-process-step.done { background:#f4fbf7; border-color:#abefc6; }
.invoice-process-check { display:flex; gap:10px; align-items:flex-start; cursor:default; }
.invoice-process-check input { width:20px; height:20px; margin-top:1px; accent-color:#067647; }
.invoice-process-check span { display:grid; gap:2px; }
.invoice-process-check small { color:var(--muted); font-size:12px; font-weight:400; }
.invoice-process-details { border-top:1px solid var(--line); padding-top:8px; }
.invoice-process-details summary { cursor:pointer; font-weight:700; color:#344054; }
.invoice-process-fields { margin-top:10px; gap:10px; }
@media (min-width:1101px) {
  .invoice-process-card { padding:14px; }
  .invoice-process-step { padding:10px; gap:8px; }
  .invoice-process-card .input,.invoice-process-card .select,.invoice-process-card .textarea { padding:9px 10px; border-radius:9px; font-size:13px; }
  .invoice-process-card .textarea { min-height:72px; }
  .invoice-process-card .button { padding:9px 12px; border-radius:10px; font-size:13px; }
}

/* v1.6.9: compact cash-count status action */
.button.compact { padding: 8px 11px; border-radius: 9px; font-size: 12px; }

/* v1.7.0: clear loading feedback */
.loading-indicator { display:flex; align-items:center; justify-content:center; gap:10px; min-height:72px; padding:18px; color:var(--muted); font-weight:700; }
.loading-indicator.compact { min-height:0; padding:4px 0; justify-content:flex-start; font-size:12px; font-weight:600; }
.loading-spinner { width:22px; height:22px; flex:0 0 22px; border:3px solid #d0d5dd; border-top-color:var(--primary); border-radius:50%; animation:loading-spin .75s linear infinite; }
.loading-indicator.compact .loading-spinner { width:15px; height:15px; flex-basis:15px; border-width:2px; }
.route-loading { min-height:42vh; display:grid; place-items:center; }
.inline-refresh { display:flex; align-items:center; justify-content:flex-end; min-height:20px; }
@keyframes loading-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .loading-spinner { animation-duration:1.8s; } }
.button .button-spinner { width:15px; height:15px; display:inline-block; vertical-align:-2px; margin-right:8px; border-width:2px; border-color:rgba(255,255,255,.45); border-top-color:#fff; }
.button.secondary .button-spinner { border-color:#cfd4dc; border-top-color:var(--primary); }


/* v1.7.5: Mitarbeiterliste kompakt, umbrechbar und mit Drei-Punkt-Aktionsmenue */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.employee-table { table-layout:fixed; min-width:760px; }
.employee-table th, .employee-table td { vertical-align:top; }
.employee-table .employee-wrap { white-space:normal; overflow-wrap:anywhere; word-break:break-word; line-height:1.35; }
.employee-table th { white-space:normal; overflow-wrap:anywhere; }
.employee-col-username { width:12%; }
.employee-col-name { width:12%; }
.employee-col-role { width:10%; }
.employee-col-login { width:17%; }
.employee-col-locations { width:17%; }
.employee-col-rights { width:20%; }
.employee-col-status { width:8%; }
.employee-col-actions { width:52px; }
.employee-action-cell { width:52px; text-align:right; white-space:normal; position:relative; }
.row-action-menu { display:inline-block; position:relative; text-align:left; }
.row-action-menu > summary { list-style:none; display:grid; place-items:center; width:36px; height:36px; border:1px solid var(--line); border-radius:10px; background:#fff; color:#344054; font-size:24px; line-height:1; font-weight:800; cursor:pointer; user-select:none; }
.row-action-menu > summary::-webkit-details-marker { display:none; }
.row-action-menu > summary:hover, .row-action-menu[open] > summary { background:#f2f4f7; border-color:#cfd4dc; }
.row-action-menu-panel { position:absolute; right:0; top:42px; z-index:50; display:grid; gap:3px; width:180px; padding:6px; border:1px solid var(--line); border-radius:11px; background:#fff; box-shadow:0 12px 26px rgba(16,24,40,.14); }
.row-action-item { width:100%; border:0; border-radius:8px; background:transparent; color:var(--text); padding:9px 10px; text-align:left; font-size:13px; font-weight:700; }
.row-action-item:hover { background:#f2f4f7; }
.row-action-item.danger-text { color:var(--danger); }
.row-action-item:disabled { opacity:.5; cursor:not-allowed; }
@media (max-width:1100px) {
  .employee-table { min-width:760px; }
  .employee-col-login { width:15%; }
  .employee-col-locations { width:18%; }
  .employee-col-rights { width:21%; }
}


/* v1.7.6: sauberes, responsives Mitarbeiterformular */
.employee-form-section { border:0; border-top:1px solid var(--line); padding:16px 0 0; margin:0; min-width:0; display:grid; gap:14px; }
.employee-form-section > legend { float:left; width:100%; padding:0 0 2px; margin:0; font-size:20px; line-height:1.25; font-weight:800; color:var(--text); }
.employee-form-section > legend + * { clear:both; }
.employee-role-grid { display:grid; gap:16px; align-items:start; min-width:0; }
.employee-role-grid.is-employee { grid-template-columns:minmax(0,1fr) minmax(280px,1fr); }
.employee-role-grid.is-backoffice { grid-template-columns:repeat(3,minmax(0,1fr)); }
.employee-login-hint { min-width:0; min-height:100%; border:1px solid var(--line); border-radius:12px; background:#fafbfc; padding:12px 14px; display:grid; align-content:center; gap:4px; }
.employee-location-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px 20px; min-width:0; }
.employee-location-grid .checkbox-row { min-width:0; }
.employee-location-grid .checkbox-row span { min-width:0; overflow-wrap:anywhere; }
.employee-permission-intro { margin-top:-6px; }
.employee-permission-block { display:grid; gap:9px; min-width:0; }
.employee-permission-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:10px; min-width:0; }
.employee-permission-card { min-width:0; border:1px solid var(--line); border-radius:12px; background:#fafbfc; padding:11px 12px; }
.employee-permission-card > span { min-width:0; overflow-wrap:anywhere; }
.employee-permission-hint { display:block; margin-top:2px; line-height:1.35; }
.employee-role-note { border-left:3px solid var(--line); padding-left:10px; }
@media (max-width:1100px) {
  .employee-role-grid.is-backoffice { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .employee-role-grid.is-backoffice .field:last-child { grid-column:1 / -1; }
}
@media (max-width:900px) {
  .employee-role-grid.is-employee, .employee-role-grid.is-backoffice { grid-template-columns:1fr; }
  .employee-role-grid.is-backoffice .field:last-child { grid-column:auto; }
  .employee-location-grid, .employee-permission-grid { grid-template-columns:1fr; }
  .employee-form-section > legend { font-size:18px; }
}

/* v1.7.7: PIN-Feld nicht durch die Benutzername-Hilfe auf Zeilenhoehe strecken */
.employee-basic-grid { align-items:start; }
.employee-basic-grid > .field { align-self:start; }

/* v1.7.9: klarere Hover-Zustaende und Nachweis-Vollansicht */
.button,
.row-action-item,
.evidence-preview-open,
.evidence-preview-button,
a { transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.button:not(:disabled):hover { background: var(--primary-2); color: #fff; }
.button.secondary:not(:disabled):hover { background: #dce8f0; color: #123a56; box-shadow: inset 0 0 0 1px #b8cbd8; }
.button.danger:not(:disabled):hover { background: #8f1d14; color: #fff; }
.admin-main a:not(.button):not(.brand):not(.invoice-tile):hover,
.mobile-shell a:not(.button):not(.brand):not(.invoice-tile):hover,
.invoice-employee-shell a:not(.button):not(.brand):not(.invoice-tile):hover { color: var(--primary-2); }
.invoice-tile:hover { border-color:#a9c1d2; background:#f7fbfd; box-shadow:0 12px 30px rgba(23,59,87,.12); }
.row-action-item:hover { color: var(--primary-2); }
.row-action-item.danger-text:hover { color:#8f1d14; background:#fff1f0; }

.evidence-preview-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.evidence-preview-card { min-width:0; border:1px solid var(--line); border-radius:14px; background:#fafbfc; padding:12px; display:grid; gap:10px; }
.evidence-preview-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.evidence-preview-open { border:0; background:transparent; color:var(--primary); padding:4px 0; font-weight:800; font-size:12px; cursor:pointer; }
.evidence-preview-open:hover { color:var(--primary-2); text-decoration:underline; text-underline-offset:3px; }
.evidence-preview-button { position:relative; width:100%; min-height:190px; max-height:280px; padding:0; overflow:hidden; border:1px solid #cfd4dc; border-radius:12px; background:#fff; cursor:zoom-in; display:grid; place-items:center; }
.evidence-preview-button:hover { border-color:#7fa2b9; box-shadow:0 8px 20px rgba(23,59,87,.13); transform:translateY(-1px); }
.evidence-preview-image { display:block; width:100%; height:230px; object-fit:contain; background:#fff; }
.evidence-preview-frame { width:100%; height:230px; border:0; pointer-events:none; background:#fff; }
.evidence-preview-hint { position:absolute; left:10px; right:10px; bottom:10px; padding:7px 10px; border-radius:9px; background:rgba(16,47,70,.88); color:#fff; font-size:12px; font-weight:800; opacity:0; transform:translateY(4px); transition:opacity .16s ease, transform .16s ease; }
.evidence-preview-button:hover .evidence-preview-hint,
.evidence-preview-button:focus-visible .evidence-preview-hint { opacity:1; transform:translateY(0); }
.evidence-preview-state { min-height:190px; display:grid; place-items:center; align-content:center; gap:10px; color:var(--muted); text-align:center; }
.evidence-preview-error { color:#b42318; }
.evidence-lightbox { position:fixed; inset:0; z-index:10000; background:rgba(7,17,25,.94); display:grid; grid-template-rows:auto minmax(0,1fr); padding:16px; }
.evidence-lightbox-toolbar { width:min(1600px,100%); margin:0 auto; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:0 0 12px; color:#fff; }
.evidence-lightbox-toolbar .button.secondary { background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.28); }
.evidence-lightbox-toolbar .button.secondary:hover { background:#fff; color:#102f46; }
.evidence-lightbox-content { width:min(1600px,100%); height:100%; min-height:0; margin:0 auto; display:grid; place-items:center; overflow:auto; border-radius:12px; }
.evidence-lightbox-image { display:block; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; background:#fff; border-radius:8px; box-shadow:0 18px 60px rgba(0,0,0,.3); }
.evidence-lightbox-frame { width:100%; height:100%; min-height:70vh; border:0; border-radius:8px; background:#fff; }
@media (max-width:700px) {
  .evidence-preview-grid { grid-template-columns:1fr; }
  .evidence-preview-image,.evidence-preview-frame { height:210px; }
  .evidence-lightbox { padding:10px; }
  .evidence-lightbox-toolbar { align-items:flex-start; }
  .evidence-lightbox-toolbar .actions { justify-content:flex-end; }
}
@media (prefers-reduced-motion: reduce) {
  .button,.row-action-item,.evidence-preview-open,.evidence-preview-button,a,.evidence-preview-hint { transition:none; }
  .evidence-preview-button:hover { transform:none; }
}

/* v1.7.10: direkte Belegvorschau im Auf-Rechnung-Detail */
.invoice-document-preview-grid { align-items:start; }
.invoice-document-preview-card .evidence-preview-head > div { min-width:0; }
.invoice-document-preview-card .evidence-preview-head strong { display:block; overflow-wrap:anywhere; }
@media (max-width:1100px) {
  .invoice-document-preview-grid { grid-template-columns:1fr; }
}

/* v1.7.12: kompaktes Drei-Punkt-Menue in der Kassenhistorie */
.cash-history-action-cell { width:52px; text-align:right; white-space:nowrap; position:relative; }
.cash-history-action-menu .row-action-menu-panel { width:170px; }
.cash-history-action-menu .row-action-item { text-decoration:none; cursor:pointer; }
.cash-history-action-menu .row-action-item { display:block; box-sizing:border-box; }
/* HTML Edition additions */
html{background:#f5f7f9}body{margin:0}.html-app-loading{padding:32px}.otp-code{font-size:2rem;letter-spacing:.4em;text-align:center;font-weight:800}.sidebar-toggle{display:none}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}.modal-card{background:#fff;border-radius:16px;max-width:1100px;width:min(100%,1100px);max-height:90vh;overflow:auto;padding:20px}.evidence-thumb{width:100%;max-height:320px;object-fit:contain;background:#f5f5f5;border-radius:10px}.field-help{font-size:.82rem;color:#6b7280}.html-toast{position:fixed;right:18px;bottom:18px;z-index:1200;max-width:420px}.route-link{cursor:pointer}.code-box{max-width:280px}.table-wrap table td,.table-wrap table th{vertical-align:top}.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:end}.inline-form .field{min-width:160px;flex:1}.hidden{display:none!important}
@media(max-width:900px){.admin-shell{display:block}.sidebar{position:static;width:auto;min-height:auto}.admin-main{padding:16px}.sidebar-toggle{display:inline-flex}.nav{display:flex;overflow-x:auto;gap:8px}.nav a{white-space:nowrap}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.table-wrap{overflow-x:auto}}

/* ===== Finanzen (v2.1.0) ===== */
.fin-head{margin-bottom:12px}.fin-lock{display:flex;align-items:center;gap:12px}
.fin-tabs,.fin-subtabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}
.fin-tabs a,.fin-subtabs a{padding:10px 14px;border-bottom:3px solid transparent;color:var(--muted);font-weight:700;white-space:nowrap}
.fin-tabs a.active,.fin-subtabs a.active{color:var(--primary);border-bottom-color:var(--primary)}
.fin-subtabs{border-bottom:0;margin-bottom:14px}.fin-subtabs a{border:1px solid var(--line);border-radius:999px;padding:7px 14px;background:#fff}.fin-subtabs a.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.fin-filter{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--bg);padding:10px 0;margin-bottom:12px}
.fin-chip{border:1px solid #cfd4dc;border-radius:999px;padding:8px 14px;background:#fff;font-weight:700;color:var(--text);max-width:100%}
.fin-until input{border:0;font:inherit;background:transparent;padding:0 0 0 4px}.fin-stand{margin-left:auto}
.fin-outlet{position:relative}.fin-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:40;width:min(380px,90vw);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:14px;display:grid;gap:8px}
.fin-opt{display:flex;gap:8px;align-items:center;padding:4px 2px;cursor:pointer}.fin-opt-list{max-height:260px;overflow:auto;display:grid;gap:2px}
.fin-pop-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:6px}
.fin-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:12px}
.fin-card{text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:6px;color:var(--text);min-width:0}
.fin-card:hover{border-color:#98a2b3}.fin-card.main{border:2px solid var(--primary);background:#f1f6fa}
.fin-card-top{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--muted);font-weight:700}
.fin-card-value{font-size:24px;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fin-card-delta{font-size:12px;min-height:16px}.fin-delta{font-weight:800}.fin-delta.up{color:var(--success)}.fin-delta.down{color:var(--danger)}
.fin-card-spark{color:#98a2b3;height:26px}.fin-card-spark.good{color:var(--success)}.fin-card-spark.warning{color:var(--warning)}.fin-card-spark.critical{color:var(--danger)}
.fin-spark{width:100%;height:26px;display:block}
.fin-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;flex:none;vertical-align:baseline}
.fin-dot.good{background:var(--success)}.fin-dot.warning{background:#f59e0b}.fin-dot.critical{background:var(--danger)}
.fin-minis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin-bottom:16px}
.fin-mini{display:flex;justify-content:space-between;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:13px;color:var(--text);text-align:left}
.fin-mini span{color:var(--muted)}.fin-mini b{white-space:nowrap;font-variant-numeric:tabular-nums}
.fin-grid-2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;margin-bottom:16px}
.fin-panel{padding:18px;margin-bottom:16px}.fin-grid-2 .fin-panel{margin-bottom:0}.fin-panel h2{margin:0 0 10px;font-size:17px}
.fin-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:12px}.fin-panel-head h2{margin:0}
.fin-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.fin-chart{width:100%;height:auto;display:block}.fin-grid{stroke:#eaecf0}.fin-axis{font-size:11px;fill:var(--muted)}
.fin-bar{fill:var(--primary)}.fin-bar-py{fill:#c7d3dd}.fin-bar-inc{fill:#fff;stroke:var(--primary);stroke-dasharray:4 3}
.fin-line{fill:none;stroke:#c2410c;stroke-width:2.5}.fin-line-dot{fill:#c2410c}.fin-band{fill:#fef3c7;opacity:.8}.fin-target{stroke:var(--success);stroke-dasharray:5 4}
.fin-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--muted);margin-top:8px}.fin-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.fin-l-bar{background:var(--primary)}.fin-l-py{background:#c7d3dd}.fin-l-line{background:#c2410c;height:3px!important;vertical-align:3px!important}.fin-l-band{background:#fef3c7}.fin-l-inc{border:1px dashed var(--primary)}
.fin-costs{display:grid;gap:12px}.fin-cost{display:grid;grid-template-columns:110px 1fr 64px;gap:10px;align-items:center;font-size:13px;cursor:pointer}
.fin-cost b{text-align:right;font-variant-numeric:tabular-nums}.fin-cost-track{position:relative;height:12px;background:#f2f4f7;border-radius:6px}
.fin-cost-bar{height:100%;background:#98a2b3;border-radius:6px}.fin-cost-bar.over{background:var(--danger)}.fin-cost-mark{position:absolute;top:-3px;width:2px;height:18px;background:var(--success)}
.fin-hints{list-style:none;margin:0;padding:0;display:grid;gap:10px}.fin-hints li{position:relative;padding-left:20px;font-size:14px}
.fin-hints li:before{content:"";position:absolute;left:0;top:5px;width:10px;height:10px;border-radius:50%;background:#98a2b3}
.fin-hints li.critical:before{background:var(--danger)}.fin-hints li.warning:before{background:#f59e0b}.fin-hints a{text-decoration:underline}
table .num,th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.fin-rank th[data-sort]{cursor:pointer;user-select:none}.fin-rank th.sorted-asc:after{content:" ▲"}.fin-rank th.sorted-desc:after{content:" ▼"}
.fin-below{background:#fff4ed}.fin-ref td{font-weight:800;background:#f8fafc;border-top:2px solid var(--line)}.fin-col-active{background:#f1f6fa}
.fin-matrix td.fin-cell{font-size:12px}.fin-cell.good{background:#dcfae6}.fin-cell.warning{background:#fef0c7}.fin-cell.critical{background:#fee4e2}.fin-cell.empty{background:#f9fafb}
.fin-bwa tr.total td,tr.total td{font-weight:800;background:#f8fafc}.fin-bwa td.neg,.fin-bwa .neg{color:var(--danger)}
.fin-row{cursor:pointer}.fin-row:hover td{background:#f8fafc}.fin-changed td{background:#fffaeb}.fin-num{max-width:140px;padding:9px 10px}
.fin-drawer-backdrop{position:fixed;inset:0;background:rgba(16,24,40,.45);z-index:900;display:flex;justify-content:flex-end}
.fin-drawer{width:100vw;height:100dvh;max-width:none;background:#fff;box-shadow:none;display:flex;flex-direction:column}
.fin-drawer-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.fin-drawer-head h2{margin:0;font-size:18px}
.fin-drawer-body{padding:24px;overflow:auto;flex:1;width:100%;max-width:none}.fin-dd-line{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.fin-dd{font-size:12px}
@media (max-width:1300px){.fin-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.fin-grid-2{grid-template-columns:1fr}.fin-stand{margin-left:0;width:100%}}
@media (max-width:520px){.fin-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.fin-card-value{font-size:19px}.fin-filter{position:static}.fin-chip{flex:1 1 auto}.fin-head{flex-wrap:wrap}.fin-cost{grid-template-columns:84px 1fr 56px}}
@media print{.sidebar,.fin-filter,.fin-tabs,.fin-lock,.fin-actions,#logoutBtn,.html-toast{display:none!important}.admin-shell{display:block}.admin-main{padding:0}.card{box-shadow:none;border:0}.table-wrap{overflow:visible;border:0}body,html{background:#fff}}
.fin-drawer{flex:0 0 auto;max-width:100%;min-width:0}.fin-drawer-body{min-width:0}.fin-drawer .table-wrap{max-width:100%}
.fin-dd-line b{white-space:nowrap}.fin-bwa{font-size:14px}.fin-bwa td,.fin-bwa th{padding-left:8px;padding-right:8px}
.fin-drawer .stack,.fin-panel.stack,.modal-card.stack{grid-template-columns:minmax(0,1fr)}
.fin-rank{font-size:13.5px}.fin-rank td,.fin-rank th{padding-left:8px;padding-right:8px}

/* ===== v2.2.0: Usability ===== */
/* Navigation */
.nav-group{display:grid;gap:4px;margin-bottom:14px}.nav-group-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8fb0c6;padding:0 12px;margin-bottom:2px}
.nav a.active{background:rgba(255,255,255,.14);color:#fff;font-weight:800;box-shadow:inset 3px 0 0 #7cc4f0}
.nav-toggle{display:none;width:100%;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;border-radius:10px;padding:10px 12px;font-weight:800;text-align:left}
@media(max-width:900px){.nav-toggle{display:block}#mainNav{display:none!important}#mainNav.open{display:grid!important;gap:4px;margin-top:10px}#mainNav.open a{white-space:normal}}
/* Lade-Platzhalter */
.sk-page{display:grid;gap:16px}.sk{background:linear-gradient(90deg,#eceff3 25%,#f5f7f9 50%,#eceff3 75%);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:12px}
.sk-title{height:34px;width:240px}.sk-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.sk-card{height:96px}.sk-block{height:260px}.sk-block.short{height:140px}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.sk{animation:none}}
@media(max-width:520px){.sk-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Meldungen */
.html-toast{display:grid;gap:8px}.toast-item{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;box-shadow:var(--shadow)}
.toast-close{border:0;background:transparent;font-size:20px;line-height:1;cursor:pointer;color:inherit;padding:0 2px}
.field-error{color:var(--danger);font-size:13px;font-weight:700}.input[aria-invalid=true]{border-color:var(--danger)}
/* Dashboard */
.kpi-link{display:block;color:var(--text);transition:border-color .15s}.kpi-link:hover{border-color:var(--primary)}
/* Mitarbeiter */
.step-no{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;font-size:15px;margin-right:8px;vertical-align:2px}
.success-card{text-align:center;justify-items:center}.success-check{width:64px;height:64px;border-radius:50%;background:#dcfae6;color:var(--success);font-size:34px;font-weight:900;display:flex;align-items:center;justify-content:center}
.summary-list{width:100%;margin:0;display:grid;gap:8px;text-align:left}.summary-list div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:8px 0}.summary-list dt{color:var(--muted)}.summary-list dd{margin:0;font-weight:800}.summary-list dd.neg{color:var(--danger)}
/* Finanzen */
.fin-dot{width:16px;height:16px;font-size:10px;line-height:16px;text-align:center;color:#fff;font-weight:900;vertical-align:-2px}
.fin-i{display:inline-flex;width:15px;height:15px;border-radius:50%;border:1px solid #98a2b3;font-size:10px;align-items:center;justify-content:center;font-style:italic;color:#667085;margin-left:4px;vertical-align:1px}
.fin-extend{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.otp-mini{width:120px;letter-spacing:.3em;text-align:center;font-weight:800}
.setup-list{list-style:none;padding:0;margin:0;display:grid;gap:14px}.setup-list li{display:flex;gap:12px;align-items:flex-start}.setup-list .chk{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid #cfd4dc;display:flex;align-items:center;justify-content:center;font-weight:900;color:#fff}.setup-list li.done .chk{background:var(--success);border-color:var(--success)}.setup-list li.done strong{text-decoration:line-through;color:var(--muted)}
.seg{display:inline-flex;border:1px solid #cfd4dc;border-radius:12px;overflow:hidden}.seg button{border:0;background:#fff;padding:10px 14px;font-weight:800;color:var(--muted)}.seg button.on{background:var(--primary);color:#fff}
.fin-bwa-months th:nth-child(1),.fin-bwa-months td:nth-child(1){position:sticky;left:0;z-index:1;background:#fff;min-width:56px}
.fin-bwa-months th:nth-child(2),.fin-bwa-months td:nth-child(2){position:sticky;left:56px;z-index:1;background:#fff;min-width:170px;box-shadow:2px 0 0 var(--line)}
.fin-bwa-months tr.total td:nth-child(-n+2){background:#f8fafc}.fin-bwa-months td.num:last-child,.fin-bwa-months th.num:last-child{font-weight:800;background:#f8fafc}
.fin-month-link{text-decoration:underline dotted;color:inherit}
.fin-drop{display:grid;gap:4px;justify-items:center;border:2px dashed #98a2b3;border-radius:14px;padding:26px;background:#fafbfc;cursor:pointer;text-align:center}.fin-drop.over,.fin-drop:focus{border-color:var(--primary);background:#f1f6fa;outline:none}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.progress{height:6px;background:#eaecf0;border-radius:3px;margin-top:6px;overflow:hidden}.progress i{display:block;height:100%;background:var(--primary);transition:width .2s}
/* Fokus sichtbar für Tastaturbedienung */
a:focus-visible,button:focus-visible,.input:focus-visible,select:focus-visible{outline:3px solid #7cc4f0;outline-offset:2px}
/* Tabellen als Karten auf dem Handy */
@media(max-width:700px){
  table.cards-mobile thead{display:none}table.cards-mobile,table.cards-mobile tbody,table.cards-mobile tr,table.cards-mobile td{display:block;width:100%}
  table.cards-mobile tr{border-bottom:8px solid var(--bg);padding:6px 0}table.cards-mobile td{display:flex;justify-content:space-between;gap:12px;text-align:right;border:0!important;padding:6px 12px}
  table.cards-mobile td[data-label]::before{content:attr(data-label);font-weight:700;color:var(--muted);text-align:left}
  .table-wrap:has(table.cards-mobile){background:transparent;border:0}
}
@media(max-width:900px){#mainNav.open{grid-template-columns:1fr!important;align-items:start}.nav-group{align-content:start}#mainNav.open a{padding:10px 12px}}
.fin-panel.stack h2{margin:0}
/* v2.3.0: Inaktivitäts-Warnung */
.idle-warn{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:1300;display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:#fff;border:2px solid var(--warning);border-radius:14px;box-shadow:var(--shadow);padding:14px 18px;max-width:calc(100% - 32px)}
.fin-dot.implausible{background:#98a2b3}
.fin-range-warn{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}.fin-range-warn ul{margin:6px 0 0;padding-left:18px}

/* ===== v2.5.0: Kassendifferenz begründen + Anleitung ===== */
.form-help-row{display:flex;justify-content:flex-end;margin-bottom:-6px}
.guide-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 14px;border:1px solid #cfd4dc;border-radius:999px;background:#fff;color:var(--primary);font-weight:700;font-size:14px;cursor:pointer}
.guide-link:hover{border-color:var(--primary)}.guide-link.small-link{min-height:36px;padding:4px 10px;font-size:13px}
.guide-entry{display:flex;justify-content:center;margin-top:12px}
.start-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.start-row .button{flex:1 1 220px}
.diff-box .money-big{font-variant-numeric:tabular-nums}
.alert.warning.diff-box{background:#fffaeb;border-color:#fec84b;color:#7a2e0e}
.reason-box{border:2px solid #fec84b;background:#fffcf5;border-radius:14px;padding:14px;display:grid;gap:10px}
.reason-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.reason-box select,.reason-box textarea{width:100%;max-width:100%}
.reason-box [aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px rgba(180,35,24,.15)}
.submit-gate{margin:0}
.button.is-blocked{opacity:.55;cursor:not-allowed}
/* Anleitung: Vollbild auf dem Handy, Karte auf dem Desktop */
html.guide-open,html.guide-open body{overflow:hidden}
.guide-backdrop{position:fixed;inset:0;z-index:1400;background:rgba(16,24,40,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.guide-card{background:#fff;border-radius:18px;width:min(560px,100%);max-height:100%;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.guide-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 8px}
.guide-close{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:24px;line-height:1;cursor:pointer;flex:none}
.guide-chips{display:flex;gap:6px;overflow-x:auto;padding:4px 16px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.guide-chips::-webkit-scrollbar{display:none}
.guide-chips button{flex:none;border:1px solid #cfd4dc;background:#fff;border-radius:999px;padding:7px 12px;font-weight:700;font-size:13px;color:var(--muted);min-height:36px;cursor:pointer}
.guide-chips button.on{background:var(--primary);border-color:var(--primary);color:#fff}
.guide-body{overflow-y:auto;padding:0 16px 8px;flex:1;min-height:0}
.guide-shot{margin:0 0 12px;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#f2f4f7}
.guide-shot img{display:block;width:100%;height:auto;max-height:52vh;object-fit:contain;background:#f5f6f8}
.guide-body h2{margin:4px 0 6px;font-size:20px}.guide-text{font-size:16px;line-height:1.5}
.guide-ex{display:grid;gap:6px;margin-top:10px;font-size:14px}.guide-ex div{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.guide-foot{display:flex;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line)}
.guide-foot .button{flex:1;min-height:48px}.guide-foot .button:disabled{opacity:.45}
@media(max-width:600px){.guide-backdrop{padding:0;align-items:stretch}.guide-card{border-radius:0;width:100%;height:100%;max-height:none}.guide-head{padding-top:calc(12px + env(safe-area-inset-top,0px))}}
@media(prefers-reduced-motion:no-preference){.guide-shot img{transition:opacity .15s}}

/* ===== v2.5.1: Bildbetrachter mit Zoom & Verschieben ===== */
html.lb-open,html.lb-open body{overflow:hidden}
.evidence-lightbox{display:flex;flex-direction:column;padding:0;background:rgba(7,17,25,.96)}
.lb-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;color:#fff;flex-wrap:wrap}
.lb-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 140px}
.lb-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lb-btn{min-width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff;font-size:22px;font-weight:800;line-height:1;cursor:pointer;padding:0 10px}
.lb-btn:hover{background:#fff;color:#102f46}.lb-btn.lb-text{font-size:14px}.lb-close{font-size:26px}
.lb-pct{min-width:58px;text-align:center;font-variant-numeric:tabular-nums;font-weight:700;font-size:14px}
.lb-stage{position:relative;flex:1;min-height:0;overflow:hidden;touch-action:none;cursor:grab;user-select:none}
.lb-stage.dragging{cursor:grabbing}
.lb-img{position:absolute;left:50%;top:50%;max-width:none!important;max-height:none!important;transform-origin:center center;background:#fff;border-radius:4px;box-shadow:0 18px 60px rgba(0,0,0,.35);-webkit-user-drag:none;will-change:transform}
.lb-stage .evidence-lightbox-frame{width:100%;height:100%;min-height:0;border:0;background:#fff}
.lb-hint{color:rgba(255,255,255,.7);font-size:12px;text-align:center;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px))}
@media(max-width:520px){.lb-text{display:none}.lb-hint{font-size:11px}}

/* ===== v2.7.0: Dashboard (nur ungeprüfte Vorgänge) + Mitarbeiter-Abmelden ===== */
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px}
.dash-card{display:grid;gap:12px;align-content:start}
.dash-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.dash-head h2{margin:0}
.dash-count{min-width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:900;font-variant-numeric:tabular-nums}
.dash-count.warn{background:#fffaeb;color:#b54708;border:2px solid #fec84b}.dash-count.ok{background:#ecfdf3;color:var(--success);border:2px solid #abefc6}
.dash-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.dash-list a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;color:var(--text)}
.dash-list a:hover{border-color:var(--primary);background:#f8fafc}.dash-main{min-width:0}
.dash-amount{font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}.dash-amount.neg{color:var(--danger)}.dash-amount.pos{color:#b54708}
.dash-empty{padding:18px;border-radius:12px;background:#ecfdf3;color:var(--success);font-weight:800;text-align:center}
.emp-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.emp-who{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.emp-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.emp-bar-home{font-weight:700;color:var(--primary)}
[data-emp-logout]{min-height:44px}
/* v2.7.1: Abmelden bleibt beim Scrollen sichtbar */
.emp-topbar{position:sticky;top:0;z-index:900;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:calc(6px + env(safe-area-inset-top,0px)) 14px 6px;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);box-shadow:0 2px 10px rgba(16,24,40,.06)}
.emp-topbar-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;font-size:14px}
.emp-topbar .button{flex:none;min-height:40px;padding:8px 16px}

/* v2.7.5 – bebilderte Admin-Authenticator-Anleitung */
.mfa-guide-open{width:100%}
.mfa-guide-backdrop{position:fixed;inset:0;z-index:1500;background:rgba(15,23,42,.68);display:grid;place-items:center;padding:20px}
.mfa-guide-card{width:min(1040px,100%);max-height:94vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.3)}
.mfa-guide-head{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px;background:#fff;border-bottom:1px solid var(--line)}
.mfa-guide-head h2{margin:0 0 4px}.mfa-guide-head p{margin:0}
.mfa-guide-body{display:grid;gap:18px;padding:22px 24px 26px}
.mfa-guide-step{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(360px,1.35fr);gap:22px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:18px;background:#fafbfc}
.mfa-guide-copy{display:flex;gap:14px;align-items:flex-start}.mfa-guide-copy h3{margin:1px 0 8px;font-size:18px}.mfa-guide-copy p{margin:0;color:var(--muted);line-height:1.55}
.mfa-guide-no{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;font-weight:800}
.mfa-guide-step img{display:block;width:100%;height:auto;max-height:330px;object-fit:contain;border:1px solid #d8dee7;border-radius:14px;background:#fff}
@media(max-width:760px){.mfa-guide-backdrop{padding:0}.mfa-guide-card{width:100%;max-height:100vh;height:100vh;border-radius:0}.mfa-guide-head{padding:16px}.mfa-guide-body{padding:16px}.mfa-guide-step{grid-template-columns:1fr;padding:14px;gap:14px}.mfa-guide-step img{max-height:none}.mfa-guide-head .button{flex:0 0 auto}}
/* v2.9.0 – Finanzen → Kassenumsätze */
.pos-head{align-items:center}
.pos-range{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pos-range .fin-chip{flex:0 0 auto;cursor:pointer;padding:6px 12px;font-size:13px}
.pos-range .fin-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}
.pos-custom{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.pos-custom .input{width:auto;min-width:0;padding:6px 8px}
.pos-kpis{margin-bottom:16px}
.pos-kpis .kpi .value{font-size:24px}
.pos-table tr.pos-row{cursor:pointer}
.pos-table tr.pos-row:hover td{background:#f8fafc}
.pos-table tfoot th{border-top:2px solid var(--line)}
.pos-bar{height:8px;background:#eef1f5;border-radius:99px;min-width:80px;overflow:hidden}
.pos-bar span{display:block;height:100%;background:var(--primary);border-radius:99px}
.pos-delta{font-size:12px;font-weight:700;white-space:nowrap}
.pos-delta.up{color:#067647}.pos-delta.down{color:#b42318}
.button.small{padding:5px 10px;font-size:12px}
@media (max-width:720px){.pos-custom{width:100%}.pos-head .actions{width:100%;justify-content:space-between}}
.pos-mobile-delta{display:none}
@media (max-width:720px){.pos-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}.pos-kpis .kpi{padding:12px}.pos-kpis .kpi .value{font-size:19px}.pos-mobile-delta{display:block}}
/* v2.10.0 – Anleitung Auf Rechnung */
.invoice-help-row{margin-bottom:6px}
.guide-alt{margin-top:4px;border:0;background:none;padding:0;color:var(--primary);font-weight:700;font-size:13px;text-decoration:underline;cursor:pointer}

/* v2.11.0 - zentraler Bereich Anleitungen */
.guide-document{max-width:980px;margin:0 auto}
.guide-doc-step{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,42%);gap:20px;align-items:center}
.guide-doc-copy{display:flex;gap:14px;align-items:flex-start}.guide-doc-copy h2{margin:0 0 8px}.guide-doc-copy>div>div{line-height:1.55}
.guide-doc-no{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;font-weight:800}
.guide-doc-step img{width:100%;max-height:360px;object-fit:contain;border:1px solid var(--line);border-radius:14px;background:#fff}
.guide-reg{min-width:220px}
@media(max-width:720px){.guide-doc-step{grid-template-columns:1fr}.guide-doc-step img{max-height:none}.guide-reg{width:100%}}

/* v2.11.4: Authenticator QR-Code */
.mfa-qr-wrap { display:flex; justify-content:center; align-items:center; width:100%; overflow:hidden; }
.mfa-qr-wrap img { display:block; width:min(240px,100%); height:auto; background:#fff; padding:10px; border-radius:12px; }

/* v2.12.3: zentrale Einstellungen */
.settings-hub { margin-bottom:18px; }
.settings-hub-grid { align-items:stretch; }
.settings-tile { box-shadow:none; padding:18px; display:flex; flex-direction:column; gap:8px; min-height:150px; transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease; }
.settings-tile:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(16,24,40,.08); border-color:#98a2b3; }
.settings-tile h3 { margin:0; font-size:18px; }
.settings-tile p { margin:0; color:var(--muted); line-height:1.45; flex:1; }
.settings-tile-link { color:var(--primary); font-weight:800; font-size:13px; }
.settings-form-section { margin-top:18px; }
@media(max-width:900px){.settings-hub-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:620px){.settings-hub-grid{grid-template-columns:1fr;}.settings-tile{min-height:0;}}


/* v2.15.4: Hilfe/Anleitung und Sprachwahl direkt nebeneinander im Mitarbeiter-Login. */
.login-help-language-row{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:nowrap;margin-top:12px}
.employee-lang-switch{display:inline-flex;align-items:center;border:1px solid #cfd4dc;border-radius:999px;background:#fff;overflow:hidden;min-height:44px}
.employee-lang-btn{border:0;background:#fff;color:var(--primary);font-weight:800;font-size:14px;min-width:48px;min-height:42px;padding:8px 12px;cursor:pointer}
.employee-lang-btn+.employee-lang-btn{border-left:1px solid #cfd4dc}
.employee-lang-btn.active{background:var(--primary);color:#fff}
@media(max-width:420px){.login-help-language-row{gap:8px}.guide-link{padding-left:12px;padding-right:12px}.employee-lang-btn{min-width:44px;padding-left:10px;padding-right:10px}}

/* v2.15.4 */
.login-help-language-row{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:nowrap;margin-top:12px}
.employee-lang-switch{display:inline-flex;align-items:center;border:1px solid #cfd4dc;border-radius:999px;background:#fff;overflow:hidden;min-height:44px}
.employee-lang-btn{border:0;background:#fff;color:var(--primary);font-weight:800;font-size:14px;min-width:48px;min-height:42px;padding:8px 12px;cursor:pointer}
.employee-lang-btn+.employee-lang-btn{border-left:1px solid #cfd4dc}
.employee-lang-btn.active{background:var(--primary);color:#fff}
@media(max-width:420px){.login-help-language-row{gap:8px}.guide-link{padding-left:12px;padding-right:12px}.employee-lang-btn{min-width:44px;padding-left:10px;padding-right:10px}}

/* ---- Aufgaben (v2.16.0), mobil zuerst ---- */
.tk{--tk-line:#d9e1e8}.tk h1{margin:.2em 0}
.tk-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:12px 0}
.tk-tile{display:block;background:#fff;border:1px solid var(--tk-line);border-radius:14px;padding:14px;text-decoration:none;color:inherit;min-height:84px}
.tk-tile-n{font-size:30px;font-weight:700;line-height:1}.tk-tile-l{font-size:13px;color:#5b6b7b;margin-top:6px}.tk-tile.tk-bad .tk-tile-n{color:#b42318}.tk-tile.tk-pool{border-color:#0f4c81}
.tk-tabs,.tk-chips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0;overflow-x:auto}
.tk-tabs a,.tk-chips a{padding:10px 14px;border-radius:999px;border:1px solid var(--tk-line);background:#fff;text-decoration:none;color:inherit;font-weight:600;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
.tk-tabs a.active,.tk-chips a.active{background:#0f4c81;color:#fff;border-color:#0f4c81}
.tk-list{display:grid;gap:12px}
.tk-card{display:block;background:#fff;border:1px solid var(--tk-line);border-left:6px solid #0f4c81;border-radius:14px;padding:14px;text-decoration:none;color:inherit}
.tk-card.tk-overdue{border-left-color:#b42318}.tk-card-top,.tk-card-bottom,.tk-row{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.tk-num{font-size:12px;color:#5b6b7b}.tk-title{font-size:18px;font-weight:700;margin:6px 0}.tk-card-bottom{margin-top:8px;font-size:14px}
.tk-due-bad{color:#b42318;font-weight:700}
.tk-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;background:#eef2f6;color:#14202e}
.tk-st-OPEN{background:#e0efff;color:#0f4c81}.tk-st-IN_PROGRESS{background:#fff4d6;color:#7a5200}.tk-st-QUESTION{background:#f3e5ff;color:#5b2a86}.tk-st-DONE{background:#dff6e8;color:#13795b}.tk-st-CLOSED{background:#e5e7eb;color:#374151}
.tk-pr-HIGH{background:#ffe7d1;color:#9a4a00}.tk-pr-URGENT{background:#fde0dc;color:#b42318}.tk-pr-LOW{background:#eef2f6;color:#5b6b7b}
.tk-big{min-height:52px;font-size:17px;width:100%}.tk-actions{display:grid;gap:10px;margin:12px 0}
@media(min-width:700px){.tk-actions{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.tk-big{width:auto}}
.tk-infos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.tk-desc{white-space:pre-wrap;word-break:break-word;font-size:16px}
.tk-progress{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.tk-progress i{display:block;height:100%;background:#13795b}
.tk-check{display:flex;gap:12px;align-items:center;padding:10px 0;font-size:16px;min-height:44px}.tk-check input{width:24px;height:24px}
.tk-checks{display:flex;gap:14px;flex-wrap:wrap}
.tk-comment{border-top:1px solid var(--tk-line);padding:12px 0}.tk-comment-b{white-space:pre-wrap;word-break:break-word;margin-top:4px}.tk-internal{background:#fff8e6;border-radius:8px;padding:12px}
.tk-atts{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.tk-thumb{border:1px solid var(--tk-line);border-radius:10px;padding:0;background:#fff;cursor:pointer;overflow:hidden}.tk-thumb img{display:block;width:96px;height:96px;object-fit:cover}
.tk-file{padding:10px 12px;border:1px solid var(--tk-line);border-radius:10px;text-decoration:none;color:inherit;background:#fff}
.tk-upload{display:grid;gap:8px}@media(min-width:700px){.tk-upload{grid-template-columns:1fr 1fr}}
.tk-history{padding-left:18px;line-height:1.7}
.tk-dist-row{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--tk-line);text-decoration:none;color:inherit}.tk-dist-label{font-weight:700}
.tk-modal{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:80;display:flex;align-items:flex-end;justify-content:center}.tk-modal-box{background:#fff;border-radius:18px 18px 0 0;padding:18px;width:100%;max-width:560px;display:grid;gap:12px}
@media(min-width:700px){.tk-modal{align-items:center}.tk-modal-box{border-radius:18px}}
.tk-full{position:fixed;inset:0;background:#000;z-index:90;display:flex;align-items:center;justify-content:center}.tk-full img{max-width:100%;max-height:100%}.tk-full button{position:absolute;top:12px;right:12px;width:auto}
.tk-sec{margin:22px 0 8px}.tk-acting{color:#7a5200;margin-top:6px}.tk-acting-banner{margin:12px 0}.tk-inbox{border-left-color:#7a5200}.tk-deleg{margin:10px 0;border-color:#7a5200}

/* ---- Einstellungen: zentrale Navigation, Suche, Rollen & Rechte (v2.19.0) ---- */
.st-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:22px;align-items:start}
.st-nav{position:sticky;top:16px;display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--line,#d9e1e8);border-radius:14px;padding:12px;max-height:calc(100vh - 40px);overflow:auto}
.st-search{position:relative;margin-bottom:8px}.st-search input{width:100%;padding:10px 34px 10px 12px;border:1px solid var(--line,#d9e1e8);border-radius:10px;font:inherit;min-height:42px}
.st-search kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:12px;color:#667085;border:1px solid #d0d5dd;border-radius:5px;padding:0 6px;background:#f9fafb}
.st-nav a{display:block;padding:9px 12px;border-radius:9px;color:#344054;text-decoration:none;font-weight:500;line-height:1.3}
.st-nav a:hover{background:#f2f4f7}.st-nav a.active{background:#e8f1fa;color:#0f4c81;font-weight:700}
.st-nav .st-home{font-weight:700;margin-bottom:6px}.st-group{margin-top:10px}.st-group-t{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#667085;padding:4px 12px}
.st-empty{padding:10px 12px;color:#667085;font-size:14px}.st-content{min-width:0}
.st-home-search .st-big{font-size:18px;min-height:52px;padding:12px 16px}
.st-chips{display:flex;gap:8px;flex-wrap:wrap}.st-chip{border:1px solid #d0d5dd;background:#fff;border-radius:999px;padding:8px 14px;font:inherit;font-weight:600;cursor:pointer;min-height:40px;color:#344054}
.st-chip:hover{background:#f2f4f7}.st-chip.active{background:#0f4c81;border-color:#0f4c81;color:#fff}.st-chip b{opacity:.75}
.st-h2{margin:14px 0 2px;font-size:19px}
.st-results{display:grid;gap:8px}.st-result{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid #d9e1e8;border-radius:12px;text-decoration:none;color:inherit;background:#fff}
.st-result:hover{border-color:#0f4c81;background:#f5f9fd}.st-result-g{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#667085}
.rg-card{padding:0;overflow:hidden}.rg-card summary{list-style:none;cursor:pointer;padding:14px 16px;display:flex;flex-direction:column;gap:6px}.rg-card summary::-webkit-details-marker{display:none}
.rg-card summary::after{content:"▾";position:absolute;right:16px;margin-top:2px;color:#667085}.rg-card{position:relative}.rg-card[open] summary::after{content:"▴"}
.rg-head{padding-right:24px}.rg-chips{display:flex;gap:6px;flex-wrap:wrap}.rg-body{border-top:1px solid #eaecf0;padding:6px 16px 16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:4px 24px}
.rg-sec{padding:10px 0}.rg-sec-h{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.rg-sec-h h4{margin:0 0 4px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:#667085}
.rg-list{margin:0;padding-left:18px}.muted-badge{background:#f2f4f7;color:#667085}
.st-jump{display:none}
@media(max-width:980px){.st-layout{grid-template-columns:1fr;gap:12px}.st-nav{position:static;max-height:none;padding:0;border:0;background:none}
.st-nav .st-search,.st-nav .st-home,.st-nav .st-group,.st-nav .st-empty{display:none}.st-jump{display:block;width:100%;min-height:48px;font-size:16px;font-weight:600;padding:10px 12px;border:1px solid #d0d5dd;border-radius:12px;background:#fff}}

/* hidden-Attribut gewinnt immer gegen display-Regeln (Suche, Reiter) */
[hidden]{display:none!important}
.badge.perm{background:#f2f4f7;color:#344054;font-weight:600}
.st-checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:0 12px;max-height:210px;overflow:auto;border:1px solid #d9e1e8;border-radius:10px;padding:4px 12px;background:#fff}.st-checklist .tk-check{padding:6px 0;min-height:40px}



/* ---- Fehlende Belege (Konto 13700) ---- */
.badge.info{background:#e0f2fe;color:#075985}
.rc-head{align-items:flex-start;flex-wrap:wrap}
.rc-fetch{display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:min(560px,100%)}
.rc-fetch-state{color:var(--muted);text-align:right;line-height:1.4}
.rc-fetch-state.ok{color:var(--success)}.rc-fetch-state.bad{color:var(--danger);font-weight:700}
.rc-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}
.rc-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;border-top:4px solid var(--line);transition:box-shadow .15s,border-color .15s}
.rc-tile:hover{box-shadow:0 2px 10px rgba(16,24,40,.08)}
.rc-tile.active{border-color:var(--primary);box-shadow:0 0 0 2px rgba(36,87,120,.18)}
.rc-tile-OFFEN{border-top-color:var(--danger)}.rc-tile-PRUEFEN{border-top-color:#f79009}.rc-tile-BELEG_VORHANDEN{border-top-color:#0ea5e9}.rc-tile-ARCHIV{border-top-color:var(--success)}
.rc-tile-n{font-size:28px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1.1}.rc-tile-l{font-size:13px;font-weight:700;color:#344054}
.rc-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.rc-toolbar .input{flex:1 1 220px;min-width:180px}.rc-toolbar .select{flex:0 1 auto;width:auto;min-width:150px}
.rc-check{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:#344054;cursor:pointer}
.rc-lastrun{margin-left:auto}
.rc-warn{color:var(--danger);font-weight:700}
.rc-send{background:#f0f9ff;border:1px solid #b9e6fe;border-radius:14px;padding:14px 16px;margin-bottom:14px;display:grid;gap:8px}
.rc-send-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.rc-layout{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:16px;align-items:start}
.rc-hint{margin:0 2px 10px}
.rc-rows{display:grid;gap:8px}
.rc-row{display:grid;grid-template-columns:28px 98px minmax(0,1fr) 120px 118px 140px;grid-template-areas:"pick date main amount mini state";gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 14px;cursor:pointer;transition:border-color .12s,box-shadow .12s}
.rc-row:hover{border-color:#b8cbd8;box-shadow:0 2px 8px rgba(16,24,40,.06)}
.rc-row.open{border-color:var(--primary);box-shadow:0 0 0 2px rgba(36,87,120,.16)}.rc-row.sel{background:#f5faff}
.rc-row.drop-on,.rc-drop.drop-on{outline:2px dashed #2e90fa;outline-offset:-2px;background:#eff8ff}
.rc-pick{display:flex;align-items:center;justify-content:center;padding:6px;margin:-6px}.rc-pick input{width:18px;height:18px}
.rc-date{display:grid;gap:1px}.rc-main{min-width:0}
.rc-text{font-weight:700;overflow-wrap:anywhere}.rc-meta{overflow-wrap:anywhere}
.rc-amount{text-align:right;font-weight:800;font-variant-numeric:tabular-nums;display:grid}.rc-amount.neg,.rc-list .neg,.rc-detail .neg{color:#067647}
.rc-state{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}
.rc-clip{font-size:12px;font-weight:700;color:#075985}
.rc-new{display:inline-block;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.4px;background:#fef0c7;color:#b54708;border-radius:6px;padding:2px 6px;vertical-align:middle}
.rc-conf{display:inline-flex;font-size:12px;font-weight:800;border-radius:999px;padding:3px 9px}
.rc-conf-HOCH{background:#dcfae6;color:#067647}.rc-conf-MITTEL{background:#fef0c7;color:#b54708}.rc-conf-NIEDRIG{background:#fee4e2;color:#b42318}
.rc-sug{background:#fff;border:1px solid #fedf89;border-left:5px solid #f79009;border-radius:12px;padding:12px 14px;display:grid;gap:10px;cursor:pointer}
.rc-sug.open{box-shadow:0 0 0 2px rgba(36,87,120,.16)}
.rc-sug header{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.rc-rule{font-size:13px;color:#344054}
.rc-sug-rows,.rc-group{display:grid;gap:4px}
.rc-sug-row{display:grid;grid-template-columns:86px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;background:#f9fafb;border:1px solid transparent;border-radius:8px;padding:8px 10px;font-size:14px}
.rc-sug-row:hover{border-color:#cfd4dc}.rc-sug-row.self{background:#eef6fb;border-color:#b8cbd8}
.rc-sug-t{overflow-wrap:anywhere}.rc-sug-row strong{font-variant-numeric:tabular-nums;white-space:nowrap}
.rc-sug footer{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center}
.rc-detail{position:sticky;top:12px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:20px;max-height:calc(100vh - 24px);overflow:auto;display:grid;gap:16px}
.rc-detail-empty,.rc-empty{display:grid;justify-items:center;gap:6px;text-align:center;padding:36px 16px;color:#344054}
.rc-empty{background:#fff;border:1px dashed #cfd4dc;border-radius:14px}.rc-empty-i{font-size:30px;color:#98a2b3}
.rc-d-head{position:relative;display:grid;gap:6px;padding-right:34px}.rc-d-head h2{margin:0;font-size:19px;overflow-wrap:anywhere}
.rc-d-close{position:absolute;right:-6px;top:-6px;border:0;background:#f2f4f7;border-radius:999px;width:32px;height:32px;font-size:15px}
.rc-d-amount{font-size:26px;font-weight:900;font-variant-numeric:tabular-nums}
.rc-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:0;padding:12px 0;border-block:1px solid var(--line)}
.rc-facts dt{font-size:12px;color:var(--muted);font-weight:700}.rc-facts dd{margin:2px 0 0;font-weight:700;overflow-wrap:anywhere}
.rc-sec{display:grid;gap:8px}.rc-sec h3{margin:0;font-size:15px}
.rc-sum{font-size:14px}
.rc-drop{display:grid;gap:3px;justify-items:center;text-align:center;border:2px dashed #cfd4dc;border-radius:12px;padding:18px 12px;font-weight:700;color:#344054;cursor:pointer}
.rc-files{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.rc-link{background:none;border:0;padding:0;font:inherit;font-weight:700;text-decoration:underline;color:#075985}
.rc-x{border:0;background:#f2f4f7;border-radius:999px;width:24px;height:24px;font-size:12px;color:#b42318}
.rc-events{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line);display:grid;gap:10px}
.rc-events li{position:relative}.rc-events li::before{content:"";position:absolute;left:-20px;top:5px;width:10px;height:10px;border-radius:50%;background:#98a2b3}
.rc-bulk{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:30;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center;background:#102f46;color:#fff;border-radius:14px;padding:12px 16px;box-shadow:0 12px 30px rgba(16,24,40,.35);max-width:calc(100% - 24px)}
.rc-bulk .button.secondary{background:#e7eef4}
.rc-pager{display:flex;gap:12px;align-items:center;justify-content:center;margin:14px 0}
.rc-modal-bg{position:fixed;inset:0;z-index:60;background:rgba(16,24,40,.5);display:grid;place-items:center;padding:16px}
.rc-modal{background:#fff;border-radius:16px;padding:22px;width:min(480px,100%);box-shadow:0 20px 50px rgba(16,24,40,.35);max-height:90vh;overflow:auto}.rc-modal h3{margin:0 0 12px}.rc-modal p{margin:0}
@media (max-width:1100px){.rc-layout{grid-template-columns:minmax(0,1fr)}.rc-detail{display:none}
  .rc-detail.open{display:grid;position:fixed;inset:0;z-index:50;border-radius:0;max-height:none;padding:18px 16px 90px}}
@media (max-width:760px){.rc-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rc-row{grid-template-columns:28px minmax(0,1fr) auto;grid-template-areas:"pick date amount" "pick main main" "pick state state"}
  .rc-pick{grid-area:pick;align-self:start}.rc-date{grid-area:date;display:flex;gap:8px;align-items:baseline}.rc-main{grid-area:main}.rc-amount{grid-area:amount}.rc-state{grid-area:state;justify-content:flex-start}
  .rc-fetch{align-items:stretch;width:100%}.rc-fetch-state{text-align:left}.rc-lastrun{margin-left:0}
  .rc-sug-row{grid-template-columns:78px minmax(0,1fr) auto}}
.rc-co-form{grid-template-columns:minmax(0,1.3fr) minmax(0,1.6fr) minmax(0,.8fr) auto;align-items:end}
@media (max-width:760px){.rc-co-form{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){.rc-toolbar .select,.rc-toolbar .input{width:100%;flex:1 1 100%}}

/* ---- Bedienbarkeit (Audit): Touch-Ziele, Fokus ---- */
@media (pointer:coarse){
  .button,.button.compact,.row-action-item,summary{min-height:44px}
  .button.compact{padding:11px 14px;font-size:13px}
  .rc-tile,.rc-sug-row,.rc-link{min-height:44px}
}
.button:focus-visible,a:focus-visible,summary:focus-visible,.rc-row:focus-visible,.rc-tile:focus-visible{outline:3px solid #2e90fa;outline-offset:2px}
.input:focus,.textarea:focus,.select:focus{border-color:#1f6b9a;box-shadow:0 0 0 3px rgba(31,107,154,.28)}

.rc-confbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 10px}
.rc-chip{border:1px solid #cfd4dc;background:#fff;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700;color:#344054}
.rc-chip.on{background:var(--primary);border-color:var(--primary);color:#fff}
.rc-confbar .button{margin-left:auto}

.rc-amount.pos,.rc-list .pos,.rc-detail .pos{color:#b42318}

.rc-saldo{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;background:#102f46;color:#fff;border-radius:14px;padding:12px 16px;margin-bottom:14px;box-shadow:0 6px 16px rgba(16,24,40,.18)}
.rc-saldo-i{display:grid;gap:1px}.rc-saldo-i .muted{color:#b9cddd}
.rc-saldo-i strong{font-size:24px;font-variant-numeric:tabular-nums;line-height:1.2}
.rc-saldo .neg{color:#6ce9a6}.rc-saldo .pos{color:#fda29b}
@media (max-width:760px){.rc-saldo{grid-template-columns:minmax(0,1fr);gap:6px;padding:10px 14px}.rc-saldo-i:nth-child(2){display:none}.rc-saldo-i strong{font-size:21px}}

.rc-selall{margin-left:4px}
.rc-bulk-saldo{font-weight:900;font-variant-numeric:tabular-nums;font-size:16px;border-radius:8px;padding:4px 10px;background:rgba(255,255,255,.12)}
.rc-bulk-saldo.neg{color:#6ce9a6}.rc-bulk-saldo.pos{color:#fda29b}.rc-bulk-saldo.zero{background:#12b76a;color:#fff}
.rc-bulk.zero{background:#054f31}
.rc-bulk .button.go{background:#12b76a;color:#fff}
.rc-bulk .button:disabled{opacity:.45}

.rc-saldo-wrap{display:contents}
.rc-saldo.sel{background:#1d3f5a;outline:2px solid #6aa7d1}
.rc-saldo.sel.zero{background:#054f31;outline-color:#12b76a}
.rc-saldo-go{align-content:center;justify-items:start;gap:6px}
.rc-saldo .button{font-size:15px}.rc-saldo .button.go{background:#12b76a;color:#fff}.rc-saldo .button:disabled{background:#3d5d75;color:#cfe0ec;opacity:1}
.rc-linkbtn{background:none;border:0;color:#cfe0ec;text-decoration:underline;padding:0}
@media (max-width:760px){.rc-saldo.sel .rc-saldo-i:nth-child(2){display:grid}}

.rc-sug.sel{background:#f5faff;border-color:#84caff}
.rc-sug header .rc-pick{margin:-6px 0 -6px -6px}

.rc-tile-ALLE{border-top-color:#98a2b3}
@media (max-width:1100px){.rc-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.rc-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}

.rc-sendjob{color:#075985;font-weight:700}

.rc-mini{display:grid;justify-items:center;align-content:center;gap:1px;min-height:44px;border:2px dashed #b8cbd8;border-radius:4px;background:#f8fbfd;color:#475467;font-size:12px;font-weight:700;text-align:center;cursor:pointer;padding:4px}
.rc-mini:hover{border-color:#2e90fa;background:#eff8ff}.rc-mini.drop-on{border-color:#2e90fa;background:#d1e9ff;outline:0}
.rc-mini.busy{opacity:.6;cursor:wait}.rc-mini.busy .rc-mini-t::after{content:" …"}
.rc-mini-i{font-size:16px;line-height:1}.rc-mini.full{border-style:solid;border-color:#abefc6;background:#ecfdf3;color:#067647;cursor:default}
/* Zeilen passen sich der Breite der Liste an (mit offenem Detail ist sie schmal): zweizeilig statt gequetscht */
.rc-list{container-type:inline-size}
.rc-pick{grid-area:pick}.rc-date{grid-area:date}.rc-main{grid-area:main}.rc-amount{grid-area:amount}.rc-state{grid-area:state}.rc-mini,.rc-mini-ph{grid-area:mini}
@container (max-width:780px){
  .rc-row{grid-template-columns:28px 92px minmax(0,1fr) 150px 120px;grid-template-areas:"pick date main main amount" "pick . . mini state";row-gap:8px}
  .rc-mini-ph{display:none}.rc-state{justify-content:flex-end}
}
@container (max-width:520px){
  .rc-row{grid-template-columns:28px minmax(0,1fr) auto;grid-template-areas:"pick date amount" "pick main main" "pick mini state"}
  .rc-state{justify-content:flex-end}.rc-mini{min-height:44px}
}

.rc-fetch-state{overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rc-fetch{min-width:0}

.rc-sendok{color:#067647;font-weight:700}

/* v2.24: Dichte "sehr kompakt" für Desktop und Tablet (Handy-Ansichten bleiben groß zum Tippen) */
@media (min-width: 901px) {
  body { font-size: 13px; }
  .container { width: min(1180px, calc(100% - 24px)); }
  .card { padding: 14px 16px; border-radius: 12px; }
  .stack { gap: 10px; }
  .grid { gap: 10px; }
  .field { gap: 3px; }
  .field label { font-size: 12px; }
  .input, .textarea, .select { padding: 5px 9px; border-radius: 7px; font-size: 12px; }
  .input.money { font-size: 15px; }
  .textarea { min-height: 64px; }
  .button { padding: 5px 12px; border-radius: 7px; font-size: 12px; }
  .button.compact, .button.small { padding: 3px 9px; font-size: 11px; border-radius: 6px; }
  .small { font-size: 12px; }
  .alert { padding: 8px 12px; border-radius: 8px; }
  .badge { padding: 2px 8px; font-size: 11px; }
  .money-big { font-size: 22px; }
  .section-title { font-size: 15px; margin: 6px 0 0; }
  h1 { font-size: 20px; }
  h2 { font-size: 16px; }
  h3 { font-size: 14px; }
  .admin-shell { grid-template-columns: 210px 1fr; }
  .sidebar { padding: 14px 12px; }
  .sidebar .brand { font-size: 16px; margin-bottom: 16px; }
  .nav { gap: 3px; }
  .nav a { padding: 7px 10px; border-radius: 8px; font-size: 13px; }
  .admin-main { padding: 16px 18px; }
  .page-head { margin-bottom: 12px; gap: 10px; }
  .page-head h1 { font-size: 20px; }
  .kpis { gap: 8px; margin-bottom: 12px; }
  .kpi { padding: 9px 12px; border-radius: 9px; }
  .kpi .value { font-size: 20px; margin-top: 3px; }
  .table-wrap { border-radius: 9px; }
  th, td { padding: 5px 8px; font-size: 12px; }
  th { font-size: 10px; }
  .actions { gap: 6px; }
  .invoice-employee-shell { margin: 14px auto 40px; }
  .invoice-layout { gap: 12px; }
  .invoice-kpis { gap: 8px; }
  .evidence-preview-frame { max-height: 360px; }
  .modal-card { padding: 14px; border-radius: 12px; }
  .employee-form-section > legend { font-size: 15px; }
  .fin-panel { padding: 12px; margin-bottom: 10px; }
  .fin-panel h2 { font-size: 14px; margin-bottom: 6px; }
  .fin-card-value { font-size: 18px; }
  .settings-tile h3 { font-size: 14px; }
  .tk-title { font-size: 15px; }
  .html-toast { right: 12px; bottom: 12px; }
}

/* v2.26: Menü mit Zählern, Glocke */
.nav a { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.nav-count { background:#f79009; color:#fff; border-radius:999px; padding:0 7px; font-size:10px; line-height:16px; font-weight:800; min-width:16px; text-align:center; }
.nav-count.hidden { display:none; }
.bell-link { font-size:15px; text-decoration:none; padding:2px 6px; border-radius:8px; }
.bell-link:hover { background:#eef2f6; }
.nav-group-label { text-transform:uppercase; letter-spacing:.06em; }
.fin-fold { border:1px solid var(--line); border-radius:10px; padding:8px 12px; background:#fff; }
.fin-fold > summary { cursor:pointer; list-style:revert; }
.fin-fold[open] > summary { margin-bottom:4px; }
.master-row { cursor:pointer; }
.master-row:hover, .master-row:focus-visible { background:#f6f9fb; outline:none; }
.master-detail > td { background:#fafbfc; }
.master-table .fin-yn { text-align:center; }

/* v3: neue Navigation (sechs Bereiche, einklappbar; Smartphone: untere Leiste) */
.admin-shell { grid-template-columns: 224px minmax(0,1fr); }
.admin-shell.sb-collapsed { grid-template-columns: 64px minmax(0,1fr); }
.sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; gap:6px; padding:14px 10px; overflow-y:auto; }
.brand-row { margin-bottom:12px; }
.sidebar .brand { display:flex; align-items:center; gap:10px; margin:0; }
.brand-text { display:grid; line-height:1.1; }
.brand-text b { font-size:15px; letter-spacing:.08em; color:#fff; }
.brand-text i { font-style:normal; font-size:10px; letter-spacing:.32em; color:#b9cad9; }
.nav { display:grid; gap:2px; }
.nav a { padding:9px 10px; font-size:13px; justify-content:flex-start; }
.nav a .nav-label { flex:1; }
.nav a.active { background:rgba(255,255,255,.14); color:#fff; box-shadow:inset 3px 0 0 #a6192e; }
.sb-collapse { margin-top:auto; display:flex; align-items:center; gap:8px; background:transparent; border:0; color:#9fb4c6; padding:8px 10px; cursor:pointer; font-size:12px; border-radius:8px; }
.sb-collapse:hover { background:rgba(255,255,255,.08); color:#fff; }
.sb-ar { display:inline-block; font-size:16px; line-height:1; }
.sb-collapsed .nav-label, .sb-collapsed .brand-text { display:none; }
.sb-collapsed .nav a { justify-content:center; position:relative; }
.sb-collapsed .nav-count { position:absolute; top:2px; right:6px; }
.sb-collapsed .sb-collapse { justify-content:center; }
.sb-collapsed .sb-ar { transform:rotate(180deg); }
.topbar-lite { display:flex; justify-content:flex-end; align-items:center; gap:12px; margin-bottom:12px; }
.area-tabs { display:flex; gap:4px; border-bottom:1px solid var(--line); margin:0 0 14px; overflow-x:auto; }
.area-tabs a { padding:8px 14px; border-bottom:3px solid transparent; color:var(--muted); font-weight:700; white-space:nowrap; }
.area-tabs a.active { color:var(--primary); border-bottom-color:var(--primary); }
.nav a:focus-visible, .mnav a:focus-visible, .mnav button:focus-visible, .sb-collapse:focus-visible, .area-tabs a:focus-visible { outline:2px solid #7fb4e3; outline-offset:2px; }
.mnav, .mnav-sheet { display:none; }
@media (max-width: 900px) {
  .admin-shell, .admin-shell.sb-collapsed { display:block; }
  .sidebar { display:none; }
  .admin-main { padding:12px 12px 88px; }
  .mnav { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; position:fixed; left:0; right:0; bottom:0; background:#0f2a3f; z-index:50; padding-bottom:env(safe-area-inset-bottom,0px); box-shadow:0 -2px 10px rgba(0,0,0,.15); }
  .mnav a, .mnav button { display:grid; justify-items:center; align-content:center; gap:2px; padding:8px 2px; min-height:56px; color:#b9cad9; background:transparent; border:0; font-size:11px; font-weight:700; position:relative; cursor:pointer; }
  .mnav .on { color:#fff; box-shadow:inset 0 3px 0 #a6192e; }
  .mnav .nav-count { position:absolute; top:4px; right:calc(50% - 22px); }
  .mnav-sheet:not(.hidden) { display:grid; position:fixed; left:8px; right:8px; bottom:calc(66px + env(safe-area-inset-bottom,0px)); background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 10px 30px rgba(16,24,40,.25); z-index:60; padding:6px; }
  .mnav-sheet a { display:flex; gap:12px; align-items:center; padding:14px; min-height:48px; font-weight:700; border-radius:10px; }
  .mnav-sheet a:active { background:#eef2f6; }
  .topbar-lite { margin-bottom:8px; }
}

/* v3.1: Profilmenü, Pfadanzeige */
.profile-menu { position:relative; }
.profile-menu > summary { list-style:none; cursor:pointer; padding:6px 10px; border-radius:8px; font-size:13px; color:var(--muted); }
.profile-menu > summary::-webkit-details-marker { display:none; }
.profile-menu > summary::after { content:" ▾"; font-size:10px; }
.profile-menu > summary:hover, .profile-menu[open] > summary { background:#eef2f6; color:var(--text); }
.profile-pop { position:absolute; right:0; top:calc(100% + 4px); min-width:230px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 10px 30px rgba(16,24,40,.15); padding:6px; z-index:40; display:grid; }
.profile-pop a { padding:9px 12px; border-radius:7px; font-size:13px; }
.profile-pop a:hover { background:#eef2f6; }
.breadcrumb { font-size:12px; color:var(--muted); margin:0 0 6px; }
.breadcrumb a { color:var(--muted); text-decoration:underline; text-underline-offset:2px; }
.breadcrumb strong { color:var(--text); font-weight:700; }

/* v3.2: Aufmerksamkeits-Kacheln auf der Startseite */
.dash-tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; margin:0 0 14px; }
.dash-tile { display:grid; gap:2px; background:#fff; border:1px solid var(--line); border-radius:10px; padding:10px 12px; color:var(--text); }
.dash-tile b { font-size:22px; font-variant-numeric:tabular-nums; }
.dash-tile span { font-size:12px; color:var(--muted); }
.dash-tile.warn { border-color:#f1c27a; background:#fffaf0; }
.dash-tile.bad { border-color:#f1a8a0; background:#fff4f2; }
.dash-tile:hover { box-shadow:0 2px 8px rgba(16,24,40,.08); }

/* v3.3: Schnellerfassung Zahlung in der Liste (iOS-Schalter) */
.paycell { display:flex; align-items:center; gap:8px; }
.paycell .pay-amt { width:96px; text-align:right; font-variant-numeric:tabular-nums; }
.paycell .pay-date { width:128px; }
.ios { position:relative; display:inline-block; width:40px; height:24px; flex:none; }
.ios input { appearance:none; -webkit-appearance:none; position:absolute; inset:0; margin:0; width:100%; height:100%; border-radius:999px; background:#d0d5dd; cursor:pointer; transition:background .2s; outline-offset:2px; }
.ios input:checked { background:#34c759; }
.ios input:disabled { cursor:default; opacity:.85; }
.ios input:focus-visible { outline:2px solid #1d4d73; }
.ios span { position:absolute; top:2px; left:2px; width:20px; height:20px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.35); transition:transform .2s; pointer-events:none; }
.ios input:checked + span { transform:translateX(16px); }
.pay-exp { background:transparent; border:0; cursor:pointer; font-size:14px; padding:2px 6px; color:var(--muted); border-radius:6px; }
.pay-exp:hover { background:#eef2f6; }
.pay-detail > td { background:#fafbfc; padding:8px 0 10px; }
.pay-inner { position:sticky; left:14px; width:min(820px, calc(100vw - 340px)); }
.pay-line { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:3px 0; font-size:12px; }
tr.invoice-row-open, tr.invoice-row-done { transition:transform .35s ease, opacity .35s ease; }
tr.pay-gone { opacity:0; transform:translateX(80px); }
.snack-undo { display:flex; justify-content:space-between; align-items:center; gap:10px; }

/* v3.4: Auf Rechnung: kompakter Kopfbereich */
.inv-bar { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:0 0 8px; }
.inv-bar h1 { font-size:20px; margin:0; }
.inv-chips { display:flex; gap:6px; flex-wrap:wrap; }
.inv-chip { background:#fff; border:1px solid var(--line); border-radius:999px; padding:3px 10px; font-size:12px; color:var(--muted); white-space:nowrap; }
.inv-chip b { color:var(--text); font-variant-numeric:tabular-nums; margin-right:2px; }
.inv-chip.has { border-color:#f1c27a; background:#fffaf0; }
.inv-chip.has b { color:#b15f00; }
#invoiceFilters.invoice-filter-card { display:flex; flex-wrap:wrap; align-items:flex-end; gap:8px 10px; padding:8px 12px; margin-bottom:8px; }
#invoiceFilters > .grid { flex:1 1 560px; display:grid; grid-template-columns:2fr 1.4fr 1fr; gap:8px; }
#invoiceFilters .field > span { font-size:11px; }
#invoiceFilters .input, #invoiceFilters .select { padding:5px 9px; font-size:12px; }
#invoiceFilters > details { order:3; flex:1 0 100%; }
#invoiceFilters > details > summary { font-size:12px; color:var(--muted); }
#invoiceFilters > .actions { flex:none; }
.invoice-admin-page > details.card, main details.card:has(#invoiceCreate) { padding:6px 12px; margin-bottom:8px; }
details.card > summary { font-size:13px; }

.auto-wrap { display:inline-flex; align-items:center; gap:6px; cursor:pointer; vertical-align:middle; }
.ios.sm { width:30px; height:18px; }
.ios.sm span { width:14px; height:14px; top:2px; left:2px; }
.ios.sm input:checked + span { transform:translateX(12px); }

/* v3.5: Anmeldeseiten: Desktop ganzflächig mit Balkenmotiv, Smartphone ruhige Karte */
.login-v3 { position:relative; min-height:100vh; display:grid; place-items:center; padding:24px 16px; overflow:hidden; background:linear-gradient(180deg,#f4f6f8,#e6edf3); }
.lv-bars { position:absolute; right:-24px; bottom:-8px; display:flex; gap:18px; align-items:flex-end; opacity:.07; pointer-events:none; }
.lv-bars span { display:block; width:56px; background:#0f2a3f; }
.lv-inner { position:relative; width:min(420px,100%); display:grid; gap:16px; }
.lv-brand { display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; }
.lv-name { display:grid; line-height:1.1; }
.lv-name b { font-size:18px; letter-spacing:.1em; color:#0f2a3f; }
.lv-name i { font-style:normal; font-size:10px; letter-spacing:.34em; color:#667085; }
.login-v3 .login-card { width:100%; padding:22px 24px; gap:12px; box-shadow:0 10px 30px rgba(16,24,40,.08); }
.login-v3 .login-card h1 { font-size:22px; }
.pw-wrap { position:relative; }
.pw-wrap .input { padding-right:84px; }
.pw-toggle { position:absolute; right:6px; top:50%; transform:translateY(-50%); background:transparent; border:0; color:#1d4d73; font-weight:700; font-size:12px; padding:6px 8px; border-radius:6px; cursor:pointer; }
.pw-toggle:hover { background:#eef2f6; }
@media (max-width: 700px) {
  .login-v3 { background:#f4f6f8; place-items:start center; padding-top:28px; }
  .lv-bars { display:none; }
  .lv-brand { flex-direction:row; align-items:center; justify-content:flex-start; text-align:left; gap:10px; }
  .lv-brand .lv-logo { width:36px; height:36px; }
  .lv-name b { font-size:15px; }
  .login-v3 .login-card { padding:18px; border-radius:14px; box-shadow:none; }
  .login-v3 .input, .login-v3 .button { min-height:46px; font-size:16px; }
}

/* v3.6: Auf Rechnung (Verwaltung): Reiter nach Phase, Kacheln, Altersbalken, Sammelleiste */
.ar-top { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 10px; }
.ar-top h1 { font-size:20px; margin:0 8px 0 0; }
.ar-search { display:flex; gap:8px; flex:1 1 320px; min-width:240px; }
.ar-search .input { flex:1; }
.ar-search .select { width:200px; }
.ar-menu { position:relative; }
.ar-menu > summary { list-style:none; cursor:pointer; }
.ar-menu > summary::-webkit-details-marker { display:none; }
.ar-pop { position:absolute; right:0; top:calc(100% + 4px); min-width:230px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 10px 30px rgba(16,24,40,.15); padding:6px; z-index:40; display:grid; }
.ar-pop a { padding:9px 12px; border-radius:7px; font-size:13px; }
.ar-pop a:hover { background:#eef2f6; }
.ar-pop .invoice-help-row { margin:0; padding:4px 8px; }
.ar-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; margin:0 0 10px; }
.ar-card { display:grid; gap:2px; background:#fff; border:1px solid var(--line); border-radius:10px; padding:8px 12px; color:var(--text); }
.ar-card b { font-size:18px; font-variant-numeric:tabular-nums; }
.ar-card span { font-size:12px; color:var(--muted); }
.ar-card.warn { border-color:#f1c27a; background:#fffaf0; } .ar-card.warn b { color:#b15f00; }
.ar-card.bad { border-color:#f1a8a0; background:#fff4f2; } .ar-card.bad b { color:#b42318; }
.ar-card:hover { box-shadow:0 2px 8px rgba(16,24,40,.08); }
.ar-tabs a i { font-style:normal; font-size:11px; background:#eef2f6; border-radius:999px; padding:0 7px; margin-left:6px; color:var(--muted); }
.ar-age { display:flex; height:10px; border-radius:999px; overflow:hidden; margin:2px 0 4px; }
.ar-age a { display:block; }
.ar-leg { display:flex; gap:14px; flex-wrap:wrap; font-size:12px; color:var(--muted); margin-bottom:8px; }
.ar-leg i { display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:5px; }
.ar-leg b { color:var(--text); font-weight:700; }
.ar-table .num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ar-table td { vertical-align:middle; white-space:normal; }
.ar-table tr.ar-od > td { background:#fffaf0; }
.pill-s { font-size:10px; border-radius:999px; padding:0 6px; background:#eef2f6; color:var(--muted); }
.pill-s.warn { background:#fef0c7; color:#b54708; }
.ar-row-menu { position:relative; display:inline-block; }
.ar-row-menu > summary { list-style:none; cursor:pointer; padding:2px 8px; border-radius:6px; font-weight:700; }
.ar-row-menu > summary::-webkit-details-marker { display:none; }
.ar-row-menu > summary:hover { background:#eef2f6; }
.ar-bulk { position:sticky; bottom:8px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; background:#0f2a3f; color:#fff; border-radius:10px; padding:8px 12px; margin:8px 0; z-index:20; }
.ar-bulk .button { background:#fff; color:#0f2a3f; }
.ar-bulk .button.secondary { background:#dce8f0; }
@media (max-width: 800px) {
  .ar-table thead { display:none; }
  .ar-table, .ar-table tbody { display:block; }
  .ar-table tr { display:grid; gap:4px 10px; grid-template-columns:auto 1fr; padding:10px; border:1px solid var(--line); border-radius:10px; margin-bottom:8px; background:#fff; }
  .ar-table td { border:0; padding:2px 0; }
  .ar-table td.num { text-align:left; }
  .paycell { flex-wrap:wrap; }
  .ar-wrap { border:0; background:transparent; }
  .pay-detail > td { grid-column:1 / -1; }
  .pay-inner { position:static; width:auto; }
}

/* v3.7: Tabelle bis zum unteren Rand mit innerem Scrollbalken, feste Kopfzeile, Fußzeile mit Seitenauswahl */
.ar-wrap { overflow:auto; }
.ar-table thead th { position:sticky; top:0; z-index:3; background:#fafbfc; box-shadow:0 1px 0 var(--line); }
.ar-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:8px; }
.ar-foot .select { width:auto; padding:3px 8px; font-size:12px; margin-left:6px; }
@media (max-width: 800px) { .ar-table thead th { position:static; } }

/* v3.8: Anmeldeseite größer, mit Logo als Wasserzeichen */
.login-v3 { background:radial-gradient(1200px 700px at 78% 108%, rgba(29,77,115,.16), transparent 60%), radial-gradient(900px 600px at 8% -10%, rgba(166,25,46,.07), transparent 55%), linear-gradient(180deg,#f6f8fa,#e4ebf1); }
.lv-bars { display:none; }
.lv-mark { position:absolute; pointer-events:none; opacity:.07; }
.lv-mark-a { width:min(62vw,760px); right:-9vw; bottom:-12vh; transform:rotate(-6deg); }
.lv-mark-b { width:min(26vw,320px); left:-5vw; top:-6vh; transform:rotate(8deg); opacity:.045; }
.lv-inner { width:min(620px,100%); gap:26px; }
.lv-brand { gap:12px; }
.lv-name b { font-size:26px; letter-spacing:.12em; }
.lv-name i { font-size:12px; letter-spacing:.42em; }
.login-v3 .login-card { padding:44px 52px; gap:18px; border-radius:18px; box-shadow:0 24px 60px rgba(15,42,63,.14), 0 2px 6px rgba(15,42,63,.06); border-color:#d3dde6; }
.login-v3 .login-card h1 { font-size:34px; }
.login-v3 .login-card p { font-size:15px; }
.login-v3 .field label, .login-v3 .field > span { font-size:14px; }
.login-v3 .input { padding:16px 18px; font-size:17px; border-radius:12px; }
.login-v3 .button { padding:17px 20px; font-size:17px; border-radius:12px; }
.login-v3 .pw-wrap .input { padding-right:100px; }
.login-v3 .pw-toggle { font-size:13px; }
@media (max-width: 700px) {
  .lv-mark-a { width:90vw; right:-30vw; bottom:-6vh; opacity:.06; }
  .lv-mark-b { display:none; }
  .lv-inner { gap:14px; }
  .lv-name b { font-size:17px; }
  .lv-brand .lv-logo { width:40px; height:40px; }
  .login-v3 .login-card { padding:20px; border-radius:14px; box-shadow:none; }
  .login-v3 .login-card h1 { font-size:24px; }
}
.pill-s.danger { background:#fee4e2; color:#b42318; }
.pill-s.ok { background:#d1fadf; color:#027a48; }
/* v3.9: lange Texte und Adressen brechen um statt über den Rand zu laufen; Datumsfeld in der Liste nicht abschneiden */
.card .small, .card code, .card .muted { overflow-wrap:anywhere; }
@media (max-width: 700px) { .paycell .pay-date { width:150px; min-width:150px; } .paycell .pay-amt { width:110px; } }
.card code { white-space:normal; word-break:break-all; }
.card.stack { grid-template-columns:minmax(0,1fr); } .actions .badge { white-space:normal; overflow-wrap:anywhere; }
/* v3.10: Rechtlicher Hinweis auf der Startseite */
.legal-note { margin-top:6px; padding:12px 14px; border-radius:10px; background:#fff5f5; border:1px solid #f3c9c9; color:#5b1a1a; font-size:12px; line-height:1.45; }
.legal-note > strong:first-child { display:block; font-size:12.5px; color:#8a1c1c; margin-bottom:4px; text-transform:uppercase; letter-spacing:.03em; }
.legal-note p { margin:0 0 6px; }
.legal-note p:last-child { margin:0; color:#7a4a4a; }
