:root{--bg:#f5f6f8;--card:#fff;--text:#18202a;--muted:#667085;--line:#d9dee7;--accent:#1f6feb;--danger:#b42318;--ok:#067647}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}header{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#101828;color:white;box-shadow:0 2px 10px #0002}header span{display:block;font-size:12px;color:#cbd5e1}.rolebar{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:white;border-bottom:1px solid var(--line);padding:8px 12px}.rolebar label{margin:0}.rolebar .hint{grid-column:1/-1;margin:0}nav{position:sticky;top:58px;z-index:4;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:8px;background:white;border-bottom:1px solid var(--line)}nav button{padding:10px 4px;font-size:13px;background:#eef2f7;color:#344054}nav button.active{background:var(--accent);color:#fff}main{max-width:900px;margin:0 auto;padding:14px 12px 90px}h1{font-size:24px;margin:12px 0 14px}h2{font-size:18px;margin:22px 0 10px}h3{margin-top:0}.view{display:none}.view.active{display:block}.cards{display:grid;gap:10px}.card,.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:0 1px 4px #0000000d}.card h3{margin:0 0 6px}.meta{color:var(--muted);font-size:13px}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.badge{display:inline-block;border-radius:99px;padding:3px 8px;font-size:12px;background:#eef2f7;color:#344054}.badge.warn{background:#fee4e2;color:var(--danger)}.badge.ok{background:#dcfae6;color:var(--ok)}button{border:0;border-radius:12px;background:var(--accent);color:white;padding:12px 14px;font-weight:700;font-size:15px;cursor:pointer}button.secondary{background:#eef2f7;color:#344054}button.danger{background:#fee4e2;color:var(--danger)}label{display:block;margin:10px 0 12px;font-weight:700;font-size:14px}input,select,textarea{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:12px;padding:12px;background:white;font:inherit}textarea{min-height:76px}.checkline{display:flex;align-items:center;gap:10px}.checkline input{width:auto;margin:0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.actions{grid-template-columns:repeat(2,1fr)}.hidden{display:none!important}.scanner-box{border:1px dashed var(--line);border-radius:16px;background:#111;min-height:230px;display:flex;align-items:center;justify-content:center;overflow:hidden}video{width:100%;max-height:320px}.hint{font-size:13px;color:var(--muted)}#toast{position:fixed;left:12px;right:12px;bottom:18px;background:#101828;color:#fff;border-radius:14px;padding:12px 14px;box-shadow:0 10px 30px #0003;display:none;z-index:20}a.qr{display:inline-block;margin-top:8px;color:var(--accent);font-weight:700;text-decoration:none}.qty{font-size:24px;font-weight:800}.low{color:var(--danger)}.oktext{color:var(--ok)}.locked{border-color:#fecdca;background:#fff7f7}.signature-wrap{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;touch-action:none}.signature-wrap canvas{width:100%;height:220px;display:block;background:white}code{background:#eef2f7;border-radius:6px;padding:2px 5px}.dangertext{color:var(--danger);font-weight:700}.success{background:#ecfdf3;border-color:#abefc6}.notice{background:#eff8ff;border-color:#b2ddff}.role-monteur .backoffice-only{display:none!important}.role-backoffice .monteur-only{display:none!important}@media(min-width:720px){nav{top:54px}main{padding-top:20px}.cards{grid-template-columns:repeat(2,1fr)}.actions{grid-template-columns:repeat(5,1fr)}}@media(max-width:600px){.rolebar{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}}

.checkbox-list { border:1px solid #d0d5dd; border-radius:10px; padding:10px; background:#fff; display:grid; gap:6px; }
.checkbox-list .checkline { margin:0; font-weight:500; display:flex; align-items:center; gap:8px; }

.table-wrap{width:100%;overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 4px #0000000d}.data-table{width:100%;border-collapse:collapse;}.data-table th,.data-table td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}.data-table th{background:#f8fafc;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#475467}.data-table tr:last-child td{border-bottom:0}.data-table input,.data-table select,.data-table textarea{margin-top:0;padding:8px;border-radius:9px;min-width:80px}.data-table textarea{min-height:46px}.actions-col{min-width:140px}.small{padding:7px 9px;font-size:12px;margin:3px 3px 3px 0}.inline-inputs{display:grid;grid-template-columns:1fr 1fr;gap:5px}.row-warn{background:#fff7f7}@media(max-width:600px){.data-table{}.table-wrap{border-radius:12px}.actions-col{min-width:130px}}
/* v1.5.3: übersichtlichere Tabellen */
.table-wrap{overflow-x:auto}.data-table th{white-space:nowrap}.data-table td{font-size:13px}.data-table code{white-space:nowrap}.data-table .num-input{max-width:92px;min-width:72px}.data-table .time-input{max-width:110px;min-width:90px}.data-table textarea{min-width:180px}.checkbox-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:6px}.checkbox-list label{margin:0;padding:8px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}

/* v1.5.4: breite Tabellen mit horizontalem Scrollen */
main{max-width:none;width:100%;}
.table-wrap{width:100%;overflow-x:auto;max-width:100vw;}
/* v1.24: Zellen brechen um; nur Kopfzeile und schmale Spalten bleiben einzeilig. */
.data-table th{white-space:nowrap;}
.data-table td{white-space:normal;overflow-wrap:anywhere;}
@media(max-width:800px){nav{grid-template-columns:repeat(5,1fr)}nav button{font-size:12px;padding:9px 2px}}

.modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(16, 24, 40, 0.55);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 8vh 16px 24px;
}
.modal.hidden { display: none; }
.modal-card {
  width: min(920px, 100%);
  max-height: 84vh;
  overflow: auto;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 24px 80px rgba(16, 24, 40, 0.28);
  padding: 18px;
}
.customer-results {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}
.customer-result {
  text-align: left;
  border: 1px solid #d0d5dd;
  background: #fff;
  color: #101828;
  border-radius: 10px;
  padding: 10px 12px;
  display: grid;
  gap: 3px;
  cursor: pointer;
}
.customer-result:hover,
.customer-result:focus {
  border-color: #175cd3;
  outline: 2px solid rgba(23, 92, 211, 0.18);
}
.customer-result span,
.customer-result small { color: #667085; }

/* v1.5.7: getrennte Kundendaten in Auftragsmasken */
.customer-data-box{border:1px solid var(--line);border-radius:14px;background:#f8fafc;padding:12px;margin:12px 0;}
.customer-data-box h3{margin:0 0 6px;}
.customer-data-box input[readonly]{background:#f2f4f7;color:#475467;}
.customer-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 14px;margin:10px 0;padding:10px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;font-size:13px;}

/* v1.5.8: Setup-Register */
.setup-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 14px;position:sticky;top:104px;z-index:3;background:var(--bg);padding:8px 0;}
.setup-tabs button.active{background:var(--accent);color:white;}
.setup-pane.hidden{display:none!important;}
/* v1.5.9: easyBill Fehlerüberwachung */

.data-table pre{white-space:pre-wrap;max-width:520px;max-height:180px;overflow:auto;margin:0;font-size:12px;line-height:1.35;}
.linklike{background:none;color:var(--accent);border:0;padding:0;text-align:left;text-decoration:underline;cursor:pointer;font-weight:700;}

/* v1.6.5: übersichtliche Auftragsliste mit Sortierung */
.grid4{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:10px;margin:8px 0;align-items:end;}
.compact-grid label{margin-bottom:0;}
.order-toolbar{margin-bottom:12px;}
.toolbar-status{align-self:end;padding:12px;color:var(--muted);}
.click-row{cursor:pointer;}
.click-row:hover{background:#eff8ff;}
.row-locked{background:#fff7f7;}
.badge.work{background:#fef0c7;color:#93370d;}
.badge.assigned{background:#d1e9ff;color:#175cd3;}
@media(max-width:900px){.grid4{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.grid4{grid-template-columns:1fr}.toolbar-status{padding:4px 0}}
.error-text { color: #b00020; font-weight: 600; white-space: pre-wrap; }
button:disabled { opacity: .55; cursor: wait; }

/* v1.8.0: Lagerliste wie Auftragsübersicht + Bestellvorschlag */
nav{grid-template-columns:repeat(6,1fr);}
.stock-toolbar{margin-bottom:12px;}
@media(max-width:800px){nav{grid-template-columns:repeat(3,1fr)}.purchase-table{}}

/* v1.8.3 */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 14px}.tabs button.active{background:var(--accent);color:white}.purchase-pane.hidden{display:none!important}.upload-progress{margin-top:8px;min-width:220px}.upload-progress progress{width:100%;height:16px}
.ref-table{}.supplier-suggestion{border-left:4px solid var(--accent)}.warn-panel{border-left:4px solid #e0a000}.subpanel{background:#fafafa}


/* v1.8.8: übersichtliche Lieferantenansicht */
.supplier-create-form{margin:12px 0 16px;border-left:4px solid var(--accent);}
.supplier-list{display:grid;gap:14px;margin-top:14px;}
.supplier-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:0 1px 5px #0000000d;}
.supplier-card.inactive{opacity:.72;background:#f8fafc;}
.supplier-card-head{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px;}
.supplier-name-input{font-weight:800;font-size:16px;margin-top:4px;}
.supplier-card-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap;}
.supplier-card-grid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:12px;align-items:start;}
.supplier-section{border:1px solid var(--line);border-radius:14px;background:#f8fafc;padding:12px;min-width:0;}
.supplier-section h4{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.03em;color:#475467;}
.supplier-section input,.supplier-section select,.supplier-section textarea{margin-top:0;margin-bottom:7px;min-width:0;}
.supplier-section label{margin:6px 0;font-size:13px;}
.supplier-section .checkline{font-weight:600;margin:7px 0;}
.supplier-details{margin-top:12px;border-top:1px solid var(--line);padding-top:10px;}
.supplier-details summary{cursor:pointer;font-weight:800;color:var(--accent);padding:6px 0;}
.condition-grid{display:grid;grid-template-columns:80px minmax(180px,1fr) minmax(140px,1fr);gap:8px;align-items:end;}
.condition-grid .wide-field{grid-column:1/-1;}
.inline-amount{display:grid;grid-template-columns:minmax(90px,1fr) 74px;gap:6px;align-items:center;}
.inline-amount select{width:74px;}
.two-cols{display:grid;grid-template-columns:110px minmax(150px,1fr);gap:8px;}
.details-grid{grid-template-columns:2fr 1fr;margin-top:12px;}
.upload-line{display:grid;grid-template-columns:minmax(210px,1fr) auto;gap:8px;align-items:end;margin-bottom:8px;}
.upload-line label{margin:0;}
.upload-line input[type=file]{padding:8px;background:#fff;}
.tiny-input{max-width:74px!important;min-width:60px!important;}
@media(max-width:1100px){.supplier-card-grid,.details-grid{grid-template-columns:1fr 1fr}.condition-grid{grid-template-columns:80px minmax(160px,1fr)}}
@media(max-width:720px){.supplier-card-head{grid-template-columns:1fr}.supplier-card-actions{justify-content:flex-start}.supplier-card-grid,.details-grid,.condition-grid{grid-template-columns:1fr}.two-cols,.inline-amount,.upload-line{grid-template-columns:1fr}.inline-amount select{width:100%;}}


/* v1.8.16 Materialerfassung im Auftrag */
.material-entry-head{align-items:flex-start;gap:16px;margin-bottom:12px}.order-context{margin:.25rem 0;color:#40546a}.material-input-panel details>summary,.sort-dropdown>summary{cursor:pointer;padding:8px 0}.compact-scanner{max-height:260px;overflow:hidden}.material-search-results{display:grid;gap:6px;margin:8px 0 14px}.material-search-item{display:flex;justify-content:space-between;gap:12px;text-align:left;background:#fff;color:#172033;border:1px solid #d8e0ea;padding:10px 12px;border-radius:8px}.material-search-item:hover{border-color:#2873e8;background:#f4f8ff}.order-material-live-list{margin-top:14px}.sort-dropdown{position:relative;min-width:180px}.sort-dropdown[open]{padding:8px 12px;border:1px solid #d8e0ea;border-radius:8px;background:#fff}.qty-stepper{display:grid;grid-template-columns:38px minmax(72px,110px) 38px;align-items:center;gap:5px}.qty-btn{padding:7px 9px;min-width:38px;font-size:1.2rem}.material-text-row td{background:#eef4fb;border-top:2px solid #9bb7d8;border-bottom:2px solid #9bb7d8}.material-text-row input{font-weight:700;font-size:1rem;background:transparent}.material-order-table-wrap{overflow-x:auto}@media(max-width:700px){.material-entry-head{display:block}.material-entry-head button{margin-top:8px;width:100%}.material-search-item{display:block}.material-search-item span{display:block;margin:2px 0}}

/* v1.8.18 kompakte Materialerfassung und Drag-and-drop */
.compact-material-entry{padding:12px}.compact-material-toolbar{display:grid;grid-template-columns:minmax(240px,2fr) minmax(150px,1fr) auto auto;gap:8px;align-items:end}.compact-material-toolbar label{margin:0}.compact-action{min-height:42px}.scanner-details{margin-top:8px}.scanner-details>summary{cursor:pointer;font-size:.9rem;color:#40546a}.compact-results{margin-bottom:8px}.compact-found{margin:8px 0;padding:10px}.compact-book-row{display:grid;grid-template-columns:120px minmax(180px,1fr) auto;gap:8px;align-items:end}.drag-col{width:34px}.drag-handle{width:34px;text-align:center;cursor:grab;user-select:none;font-size:1.25rem;color:#60758b}.material-draggable.dragging{opacity:.45}.material-draggable.drag-over{outline:2px dashed #2873e8;outline-offset:-2px}.sortable-material-body tr.material-draggable{transition:background .12s ease}.sortable-material-body tr.material-draggable:hover .drag-handle{color:#145cc5}
@media(max-width:800px){.compact-material-toolbar{grid-template-columns:1fr 1fr}.compact-material-toolbar .compact-search-label{grid-column:1/-1}.compact-book-row{grid-template-columns:100px 1fr}.compact-book-row button{grid-column:1/-1}.drag-handle{position:sticky;left:0;background:inherit;z-index:1}}

.article-thumb{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid #ccd3db;background:#f4f6f8}.article-thumb.small{width:42px;height:42px}.article-placeholder{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border:1px dashed #aab4bf;border-radius:8px;font-size:.75rem;color:#667}.article-admin-card{margin:12px 0;padding:14px;border:1px solid #d7dde4;border-radius:10px;background:#fff}.article-admin-head{display:grid;grid-template-columns:80px minmax(180px,1fr) auto;gap:12px;align-items:start}.article-admin-fields{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:8px}.article-admin-list{overflow-x:auto}.article-image-actions{display:flex;gap:6px;flex-wrap:wrap}.ref-inline{margin-top:10px;padding-top:10px;border-top:1px solid #e2e6ea}@media(max-width:800px){.article-admin-fields{grid-template-columns:1fr 1fr}.article-admin-head{grid-template-columns:70px 1fr}.article-admin-head>.article-actions{grid-column:1/-1}}

/* v1.8.27 Artikelverwaltung mit Lagerzuordnung */
.article-admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.article-filter-grid{margin-bottom:12px}.article-admin-list{overflow-x:auto}.article-list-head,.article-list-item>summary{display:grid;grid-template-columns:58px 150px minmax(260px,1.5fr) 150px 100px 90px 150px 90px;gap:10px;align-items:center}.article-list-head{padding:8px 12px;font-weight:700;background:#edf2f7;border:1px solid #d6dee7;border-radius:8px 8px 0 0}.article-list-item{border:1px solid #d6dee7;border-top:0;background:#fff}.article-list-item>summary{padding:8px 12px;cursor:pointer;list-style:none}.article-list-item>summary::-webkit-details-marker{display:none}.article-list-item>summary:hover{background:#f6f9fc}.article-list-item[open]>summary{background:#eef5ff;border-bottom:1px solid #d6dee7}.article-detail-panel{padding:14px}.article-admin-head{display:grid;grid-template-columns:80px minmax(600px,1fr) 220px;gap:14px;align-items:start}.article-admin-fields{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:8px}.ref-inline{margin-top:14px;padding-top:12px;border-top:1px solid #e2e6ea}.grid5{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px}
@media(max-width:900px){.grid5{grid-template-columns:1fr 1fr}.article-admin-head{grid-template-columns:70px minmax(520px,1fr)}.article-admin-head>.article-actions{grid-column:1/-1}}

.warehouse-assignment-grid{display:grid;gap:.6rem}.warehouse-assignment-row{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(260px,1.2fr);gap:.8rem;align-items:end;padding:.65rem;border:1px solid var(--border,#d9dee5);border-radius:8px;background:rgba(127,127,127,.04)}@media(max-width:760px){.warehouse-assignment-row{grid-template-columns:1fr}}


/* v1.9.0 Anmeldung und Produktionsoberfläche */
.auth-gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#eef4fb,#f8fafc)}
.auth-card{width:min(440px,100%);background:#fff;border:1px solid #d8e0ea;border-radius:18px;padding:28px;box-shadow:0 18px 50px #10182820}
.auth-card h1{margin:0}.auth-version{color:#667085;margin-top:4px}.auth-card button{width:100%;margin-top:8px}.session-user{display:flex;gap:10px;align-items:center;margin-left:auto}.session-user span{font-weight:700}.session-user button{width:auto}
@media(max-width:700px){.session-user{width:100%;justify-content:space-between}.auth-card{padding:20px}}

body.test-mode header { border-top: 6px solid #d97706; }
body.test-mode header::after { content:'TESTUMGEBUNG – KEINE BENUTZERANMELDUNG'; font-weight:700; color:#92400e; background:#fef3c7; padding:6px 10px; border-radius:6px; }

/* v1.9.7 Automation */
.weekday-selection { display:flex; flex-wrap:wrap; gap:.5rem 1rem; margin:.6rem 0 1rem; }
.weekday-selection .checkline { min-width:3.2rem; margin:0; }
.material-status-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:middle;border:1px solid rgba(0,0,0,.25)}
.status-ordered{background:#d32f2f}.status-processed{background:#2e7d32}.status-ready{background:#ef6c00}.status-received{background:#1976d2}.status-returned{background:#7e22ce}


/* v1.10.3: gebuchtes Material im Auftrag über volle Breite + Status Rückgabe */
#orderMaterials.cards { display:block; width:100%; grid-template-columns:1fr !important; }
#orderMaterials .table-wrap { width:100%; max-width:100%; }
#orderMaterials .material-order-table { width:100%;  }
.status-returned{background:#7e22ce}

/* v1.10.4: Stundenliste im Auftrag über volle Breite + Lieferantenkontaktpersonen */
#orderHours.cards { display:block; width:100%; grid-template-columns:1fr !important; }
#orderHours .table-wrap { width:100%; max-width:100%; }
#orderHours .data-table { width:100%;  }
.supplier-contact-list{display:grid;gap:8px;margin:8px 0;}
.supplier-contact-row{display:grid;grid-template-columns:1.2fr 1fr 1.2fr 1.2fr auto;gap:6px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px;background:#f8fafc;}
.supplier-contact-row input{margin-top:0;}
@media(max-width:900px){.supplier-contact-row{grid-template-columns:1fr}.supplier-contact-row .small{width:100%;}}

/* v1.10.5: Lieferanten löschen und A4-Briefpapier für Leistungsdaten-PDF */

/* v1.11.0 Bestellmatrizen Materialbezug */
.matrix-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin:1rem 0}.matrix-card{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start;min-height:110px;padding:1rem;border:1px solid #d8e0ea;border-radius:14px;background:#fff;color:#0b1f46;text-align:left;box-shadow:0 4px 12px rgba(12,36,80,.06)}.matrix-card:hover{border-color:#0b55cc;box-shadow:0 8px 18px rgba(12,36,80,.10)}.matrix-card strong{font-size:1.05rem}.matrix-card small{color:#5c6b80}.matrix-grid-wrap{overflow:auto;margin-top:1rem}.matrix-order-grid,.matrix-admin-grid{display:grid;gap:4px;align-items:stretch;min-width:max-content}.matrix-corner,.matrix-col-head,.matrix-row-head,.matrix-cell{background:#fff;border:1px solid #dde5ef;min-height:70px}.matrix-corner{position:sticky;left:0;z-index:3;background:#f5f7fb}.matrix-col-head{font-weight:700;text-align:center;padding:.6rem;background:#f8fafc;color:#061a44}.matrix-row-head{position:sticky;left:0;z-index:2;padding:.6rem;background:#f8fafc;font-weight:700;color:#061a44}.matrix-cell{padding:.45rem;min-width:125px;background:#f7f8fa;position:relative}.matrix-empty{background:#f1f3f6}.matrix-cell-title{font-size:.75rem;line-height:1.2;display:flex;flex-direction:column;gap:.15rem;min-height:2.1em}.matrix-qty{width:100%;margin-top:.35rem;text-align:right}.matrix-availability{display:flex;gap:.25rem;align-items:center;justify-content:flex-end;margin-top:.35rem;min-height:24px}.matrix-dot{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:999px;color:#fff;font-size:.72rem;font-weight:700;padding:0 .25rem}.matrix-dot.green{background:#4c943d}.matrix-dot.red{background:#e32225}.matrix-separator{height:16px;min-height:16px;background:#0b55cc;border-radius:8px;color:#fff;font-size:.78rem;padding:0 .6rem;display:flex;align-items:center}.matrix-separator.admin{height:auto;min-height:30px;gap:.5rem}.matrix-admin-grid .matrix-col-head,.matrix-admin-grid .matrix-row-head{display:flex;flex-direction:column;gap:.25rem}.matrix-admin-grid input{width:100%}.matrix-cell.admin{display:grid;grid-template-columns:1fr auto auto;gap:.25rem;align-items:center}.tiny{padding:.25rem .45rem;font-size:.8rem}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}@media(max-width:900px){.grid3{grid-template-columns:1fr}.matrix-card-grid{grid-template-columns:1fr}.matrix-row-head,.matrix-corner{position:static}}

/* v1.11.1 Matrixfeinschliff */
.matrix-row-head-with-image{display:flex;align-items:center;gap:.5rem;overflow:hidden}
.matrix-row-image{width:42px;height:42px;object-fit:contain;flex:0 0 auto}
.matrix-row-image-actions{display:flex;gap:.25rem;align-items:center;flex-wrap:wrap}
.matrix-row-image-actions input[type=file]{max-width:115px;font-size:.72rem}
.matrix-cell-title{display:none}
.matrix-qty-wrap{display:grid;grid-template-columns:28px 1fr 28px;gap:.2rem;align-items:center;margin-top:.25rem}
.matrix-step{padding:.15rem .25rem;min-width:28px;height:28px;line-height:1;font-weight:700;border-radius:8px}
.matrix-qty{margin-top:0;text-align:center}
.matrix-admin-grid .matrix-row-head{min-width:250px}
.matrix-admin-grid .matrix-cell.admin{grid-template-columns:1fr auto auto;overflow:hidden}
.matrix-admin-grid .matrix-cell-article{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.8rem}
.matrix-col-head .matrix-width-input,.matrix-row-head .matrix-height-input,.matrix-separator .matrix-height-input{max-width:80px}

/* v1.11.2 Matrix-Setup: sichtbare Größenfelder, Zeilenbilder und Zeilenverschiebung */
.matrix-admin-col-head{gap:.35rem;align-items:stretch;text-align:left}
.matrix-admin-col-head label,.matrix-admin-row-head label{font-size:.72rem;font-weight:600;color:#34435a;display:flex;flex-direction:column;gap:.15rem}
.matrix-admin-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:.25rem;align-items:end}
.matrix-admin-mini-grid input{min-width:0;width:100%}
.matrix-admin-row-head{align-items:flex-start;gap:.5rem;padding:.4rem;overflow:visible}
.matrix-admin-row-head .matrix-row-image{width:54px;height:54px;border:1px solid #d8e0ea;border-radius:8px;background:#fff}
.matrix-row-fields{display:flex;flex-direction:column;gap:.25rem;min-width:0;flex:1}
.matrix-row-image-actions{display:grid;grid-template-columns:1fr auto auto;gap:.25rem;align-items:center}
.matrix-row-image-actions input[type=file]{max-width:none;width:100%;font-size:.72rem}
.matrix-row-actions{display:flex;flex-direction:column;gap:.25rem;align-items:center;justify-content:center;background:#fff;border:1px solid #dde5ef;padding:.3rem;min-height:70px}
.matrix-admin-actions-head{text-align:center;justify-content:center}
.matrix-separator.admin{overflow:visible;border-radius:0;display:flex;gap:.5rem;align-items:center;min-height:32px;padding:.25rem .5rem}
.matrix-separator.admin label{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:#fff;font-weight:600}
.matrix-separator.admin input{max-width:240px}
.matrix-separator.admin .matrix-height-input{max-width:80px}
#matrixEditRowHeaderWidth{max-width:120px}
.matrix-grid-wrap{padding-bottom:.75rem}

/* v1.11.3 Matrix-Setup Korrektur: nutzbare Höhenfelder, dünne Trennbalken, sticky Spaltenkopf */
.matrix-grid-wrap{max-height:72vh;overflow:auto;position:relative;scrollbar-gutter:stable both-edges}
.matrix-order-grid,.matrix-admin-grid{align-items:stretch}
.matrix-order-grid .matrix-col-head,.matrix-admin-grid .matrix-col-head,.matrix-sticky-head{position:sticky;top:0;z-index:8;background:#f8fafc}
.matrix-order-grid .matrix-corner,.matrix-admin-grid .matrix-corner{position:sticky;top:0;left:0;z-index:12;background:#f5f7fb}
.matrix-row-head{box-sizing:border-box}
.matrix-cell{box-sizing:border-box;overflow:visible;display:flex;flex-direction:column;justify-content:center}
.matrix-cell.admin{display:grid;align-content:center;overflow:visible}
.matrix-qty-wrap{margin-top:0}
.matrix-availability{min-height:28px;margin-top:.25rem;justify-content:center;flex-wrap:wrap}
.matrix-dot{min-width:28px;height:28px;font-size:.76rem;line-height:1}
.matrix-separator{height:8px;min-height:8px;border-radius:4px;padding:0 .35rem;font-size:.68rem;line-height:1;overflow:hidden}
.matrix-separator.admin{border-radius:4px;min-height:36px;background:#0b55cc;overflow:visible;padding:.25rem .5rem}
.matrix-separator.admin input{height:28px;padding:.15rem .35rem}
.matrix-separator.admin .matrix-height-input{max-width:72px}
.matrix-admin-grid .matrix-row-head{min-width:unset}
.matrix-admin-row-head{align-items:flex-start;overflow:visible;box-sizing:border-box;background:#f8fafc;z-index:2}
.matrix-admin-row-head .matrix-row-fields input{height:34px;box-sizing:border-box}
.matrix-admin-mini-grid input{height:34px;box-sizing:border-box}
.matrix-row-image-actions{grid-template-columns:minmax(0,1fr) auto auto;align-items:center}
.matrix-row-image-actions input[type=file]{min-width:0;height:auto;position:relative;z-index:3;background:#fff}
.matrix-row-actions{box-sizing:border-box;overflow:visible;min-width:116px;gap:.35rem}
.matrix-row-actions .tiny{min-width:30px}
.matrix-admin-actions-head{min-width:116px}
#matrixEditRowHeaderWidth{max-width:180px;min-width:110px}
.matrix-admin-grid{gap:6px}
@media(max-width:900px){.matrix-order-grid .matrix-col-head,.matrix-admin-grid .matrix-col-head,.matrix-order-grid .matrix-corner,.matrix-admin-grid .matrix-corner{position:sticky;top:0}}

/* v1.11.4 Artikelblatt: Lagerzuordnung mit Bestand/Min/Soll/Max je Lager */
.warehouse-assignment-grid-extended{display:grid;gap:.7rem;}
.warehouse-assignment-row-extended{display:grid;grid-template-columns:minmax(200px,1.2fr) minmax(220px,1.4fr) repeat(4,minmax(90px,.55fr));gap:.65rem;align-items:end;}
.warehouse-assignment-row-extended label{min-width:0;}
.warehouse-assignment-row-extended .num-input{width:100%;min-width:0;}
.warehouse-assignment-row-extended .warehouse-name{align-self:center;margin-bottom:.2rem;}
@media(max-width:1100px){.warehouse-assignment-row-extended{grid-template-columns:1fr 1fr repeat(2,minmax(90px,1fr));}.warehouse-assignment-row-extended .warehouse-name{grid-column:1/-1;}}
@media(max-width:760px){.warehouse-assignment-row-extended{grid-template-columns:1fr;}}

/* v1.12.0 Werkzeugverwaltung */
.tool-list{display:grid;gap:1rem;margin-top:1rem}
.tool-book-panel .grid3{align-items:end}
.tool-inline-actions{display:flex;gap:.5rem;align-items:end;flex-wrap:wrap}
.tool-book-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;align-items:end;min-width:240px}
.tool-book-grid button{grid-column:1/-1}
.tool-table small{display:block;color:#5c6b80;line-height:1.35;margin-top:.25rem}
.tool-table .badge{display:inline-flex;margin-bottom:.25rem}
@media(max-width:900px){.tool-book-grid{grid-template-columns:1fr;min-width:0}.tool-inline-actions{align-items:stretch}.tool-inline-actions button{width:100%}}

/* Angebotswesen Grundgeruest v1.13.5 */
.offer-tree { margin-top: 1rem; }
.offer-node { border: 1px solid #d7dde8; border-radius: 10px; margin: .6rem 0; padding: .7rem; background: #fff; }
.offer-lot { border-left: 5px solid #264f94; background: #f8fbff; }
.offer-title { margin-left: 1.2rem; border-left: 5px solid #527bbd; background: #fbfdff; }
.offer-position { margin-left: 1.2rem; border-left: 5px solid #7b9ad0; }
.offer-item { margin: .35rem 0 .35rem 2.2rem; padding: .45rem .6rem; border: 1px solid #e3e7ef; border-radius: 8px; background: #f6f7fa; }
.offer-item span { display: inline-block; min-width: 60px; color: #52606d; font-size: .85rem; }
button.tiny { padding: .15rem .45rem; margin-left: .5rem; }

/* Angebotswesen v1.13.5 */
.offer-add-line{display:grid;grid-template-columns:2fr 100px 130px auto 1fr;gap:.45rem;align-items:center;margin:.55rem 0;padding:.45rem;border:1px dashed #cbd4e2;border-radius:8px;background:#fff}
.offer-add-line.offer-article-line{grid-template-columns:2fr 90px 120px 130px auto}
.offer-node-head{gap:.6rem;align-items:center}
.offer-total{margin-left:auto;font-weight:700;color:#1f3b64;background:#eef5ff;border:1px solid #c7dcfb;border-radius:999px;padding:.2rem .55rem;white-space:nowrap}
.offer-jumbo{background:#fff8e8;border-color:#e8d3a2}
.offer-jumbo-items{margin-left:2.2rem;border-left:3px solid #ead7aa;padding-left:.6rem}
.offer-article-input{min-width:260px}
@media(max-width:900px){.offer-add-line,.offer-add-line.offer-article-line{grid-template-columns:1fr}.offer-total{margin-left:0}.offer-title,.offer-position{margin-left:.3rem}.offer-jumbo-items{margin-left:.4rem}}

/* Angebotswesen v1.13.5 */
.offer-total-row{display:flex;justify-content:flex-end;gap:1rem;align-items:center;margin:.55rem 0 0 auto;padding:.45rem .7rem;background:#eef5ff;border:1px solid #c7dcfb;border-radius:8px;font-weight:700;color:#1f3b64;max-width:420px}
.offer-total-row span{color:#52606d}
.offer-edit-line{display:grid;grid-template-columns:70px 90px minmax(180px,1fr) 120px 120px 120px 120px auto auto;gap:.45rem;align-items:center}
.offer-edit-line label{margin:0;font-size:.82rem}
.offer-edit-line input,.offer-edit-line select{width:100%}
.offer-item-name{min-width:0!important;color:#172033!important;font-size:.95rem!important}
.offer-jumbo .offer-edit-line{background:#fff8e8}
@media(max-width:1100px){.offer-edit-line{grid-template-columns:1fr}.offer-total-row{max-width:none;justify-content:space-between}}

/* Angebotswesen v1.13.5 */
.offer-unit-select{max-width:86px;min-width:72px;padding:.32rem .4rem;font-size:.86rem}
.offer-qty-input{max-width:76px;min-width:58px;padding:.32rem .4rem;text-align:right}
.offer-qty-label,.offer-price-label{display:flex;align-items:center;gap:.25rem;white-space:nowrap;font-size:.82rem;margin:0}
.offer-head-edit{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin-left:auto}
.offer-node-head strong{min-width:220px}
.offer-add-line{grid-template-columns:minmax(220px,2fr) 78px 92px auto 1fr!important}
.offer-add-line.offer-article-line{grid-template-columns:minmax(260px,2fr) 78px 92px 118px auto!important}
.offer-grand-total{margin:1rem 0 1.2rem auto;max-width:520px;border:2px solid #1f3b64;border-radius:10px;background:#f8fbff;padding:.75rem 1rem;font-weight:700}
.offer-grand-total div{display:flex;justify-content:space-between;gap:1rem;padding:.25rem 0;border-bottom:1px solid #d7dde8}
.offer-grand-total div:last-child{border-bottom:0}
.offer-grand-total .gross{font-size:1.1rem;color:#13223a}
.offer-edit-line{grid-template-columns:70px 90px minmax(180px,1fr) 110px 90px 110px 120px auto auto}
@media(max-width:1100px){.offer-head-edit{margin-left:0}.offer-node-head strong{min-width:0}.offer-add-line,.offer-add-line.offer-article-line{grid-template-columns:1fr!important}.offer-grand-total{max-width:none}.offer-edit-line{grid-template-columns:1fr}}

/* v1.13.6: Lieferanten-Kontakte und Bestellwege übersichtlicher */
.supplier-contact-section{grid-column:1/-1;}
.supplier-contact-row{grid-template-columns:minmax(180px,1.1fr) minmax(130px,.8fr) minmax(220px,1.2fr) minmax(220px,1.1fr) auto;}
.supplier-contact-row input{min-width:0;width:100%;}
.interface-flags{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:6px 12px;margin:6px 0 10px;}
.interface-flags .checkline{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:0;}
.supplier-interface-summary{grid-column:span 1;}
.interface-create{margin:8px 0 12px;background:#f8fafc;}
.condition-rows{display:grid;gap:8px;margin:8px 0;}
.condition-row{display:grid;grid-template-columns:72px minmax(190px,1.1fr) minmax(190px,1fr) minmax(150px,.8fr);gap:10px;align-items:end;border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px;}
.condition-row label{margin:0;font-size:13px;}
.condition-row .condition-name{font-weight:800;align-self:center;color:#344054;}
.condition-row input,.condition-row select{margin-top:4px;margin-bottom:0;}
.condition-rows .wide-field{margin:0;border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px;}
@media(max-width:900px){.supplier-contact-row,.condition-row{grid-template-columns:1fr}.supplier-contact-row .small{width:100%;}.condition-row span{display:none}}

.po-channel-row{gap:12px;align-items:center;flex-wrap:wrap}.po-channel select{min-width:220px}

/* ===== v1.21.0 Responsive/Touch-Ebene (Tablet, Smartphone, Desktop) ===== */
/* Größere Touch-Ziele und iOS-Zoom vermeiden (Schriftgröße >= 16px in Feldern) */
@media (max-width: 900px){
  button, .btn{min-height:44px}
  input, select, textarea{font-size:16px; min-height:44px}
  .data-table input, .data-table select{min-height:40px}
  main{padding:12px 10px 96px}
  h1{font-size:21px}
  h2{font-size:17px}
}
/* Navigation: bricht auf kleineren Screens sauber um statt zu quetschen */
@media (max-width: 760px){
  nav{grid-template-columns:repeat(3, 1fr); gap:6px}
  nav button{padding:12px 6px; font-size:14px; min-height:46px}
  .rolebar{grid-template-columns:1fr}
}
@media (max-width: 420px){
  nav{grid-template-columns:repeat(2, 1fr)}
}
/* Formularraster auf Smartphones einspaltig -> kein seitliches Scrollen */
@media (max-width: 640px){
  .grid2, .grid3, .grid4, .two-cols, .inline-inputs{grid-template-columns:1fr !important; display:grid; gap:8px}
  .row{flex-wrap:wrap}
  .modal-card{width:96vw; max-width:96vw; padding:14px}
}
/* Datentabellen auf dem Smartphone als gestapelte Karten (kein Horizontal-Scroll).
   Greift für alle Tabellen mit der Klasse .stackable und ist per JS/Markup opt-in;
   zusätzlich fallen breite Tabellen in .table-wrap weiterhin auf Scrollen zurück. */
@media (max-width: 640px){
  table.stackable thead{position:absolute; left:-9999px}
  table.stackable, table.stackable tbody, table.stackable tr, table.stackable td{display:block; width:100%}
  table.stackable tr{border:1px solid var(--line); border-radius:12px; margin-bottom:10px; padding:6px 8px; background:#fff}
  table.stackable td{border:0; padding:6px 4px; text-align:left}
  table.stackable td::before{content:attr(data-label); display:block; font-size:11px; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); margin-bottom:2px}
  table.stackable td:empty{display:none}
}
/* Aktions-Buttons in Tabellen auf Touch untereinander mit Abstand */
@media (max-width: 640px){
  .data-table .actions-col, .data-table td:last-child{white-space:normal}
  .data-table td:last-child button{display:inline-block; margin:3px 4px 3px 0}
}

/* ===== v1.22 Ruhigeres Erscheinungsbild ===== */
/* Tabellen dürfen umbrechen statt zu scrollen; nur bei sehr schmalen Screens greift der Scroll-Fallback */
.data-table{min-width:0}
.data-table th,.data-table td{padding:12px 12px;vertical-align:top}
.data-table tbody tr:nth-child(even of :not(.detail-row)){background:#fbfcfd}
.data-table .cell-main{font-weight:500;font-size:14px;line-height:1.35}
.data-table .meta{font-size:12px;line-height:1.4}
.cell-stack{display:flex;gap:10px;align-items:flex-start}
.cell-levels{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.cell-levels label{margin:0;font-weight:400;font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:2px}
.cell-levels .num-input{max-width:88px;min-width:64px;margin-top:0}
.detail-row>td{background:#f8fafc}
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.detail-grid label{margin:0}

/* Buttons: nur die Hauptaktion farbig, Nebenaktionen dezent */
button{font-weight:500;border-radius:8px;padding:10px 16px;font-size:14px}
button.secondary{background:#fff;color:#344054;border:1px solid var(--line)}
button.secondary:hover{background:#f4f6f9}
button.danger{background:#fff;color:var(--danger);border:1px solid #f3c3bf}
button.danger:hover{background:#fff5f4}
button.small{padding:7px 11px;font-size:13px;border-radius:8px}
nav button{font-weight:500}

/* Mehr Luft in Formularen und Karten */
label{margin:12px 0 14px;font-weight:500}
input,select,textarea{border-radius:8px;padding:11px 12px;margin-top:6px}
.card,.panel{border-radius:12px;padding:18px}
.grid2,.grid3,.grid4{gap:14px}

/* v1.23 Aufgabenliste „Noch zu erledigen" */
.todo-table .todo-check{width:22px;height:22px;margin:0;cursor:pointer}
.todo-table .todo-text{margin-top:0;width:100%}
.todo-table tr.todo-done .todo-text{color:var(--muted);text-decoration:line-through}
.todo-table tr.todo-done{background:#f6fbf7}

/* v1.23.1 Vereinbarte Projektleistungen (aus easyBill, nicht änderbar) */
#projectServicesPanel{margin-bottom:6px}
#projectServicesPanel .hint{margin:-4px 0 10px;color:var(--muted);font-size:12px}
.project-services-table tbody tr{background:#f8fafc}
.project-services-table td{color:#344054}
.project-services-table td.svc-name{font-weight:600}
.project-services-table td.svc-pos{color:var(--muted);width:60px}


/* =====================================================================
   v1.24 Spaltenbreiten auf das noetige Minimum
   Grundsatz: schmale Spalten schrumpfen auf ihren Inhalt (width:1%),
   Textspalten bekommen den Rest und brechen um.
   ===================================================================== */
.data-table{table-layout:auto}
.data-table th,.data-table td{padding:9px 10px}
.data-table td{font-size:13px;line-height:1.35}

/* schmale Spalten: nur so breit wie noetig */
.data-table .col-icon,.data-table .col-pos,.data-table .col-qty,.data-table .col-unit,
.data-table .col-num,.data-table .col-size,.data-table .col-date,.data-table .col-when,
.data-table .col-state,.data-table .col-sort,.data-table .col-check,.data-table .actions-col{
  width:1%;white-space:nowrap
}
.data-table .col-num,.data-table .col-qty,.data-table .col-size,.data-table .num{text-align:right;font-variant-numeric:tabular-nums}
.data-table .col-icon{text-align:center;padding-left:8px;padding-right:0}
.data-table .col-cat{white-space:nowrap;width:1%}

/* Textspalten: flexibel, aber nicht endlos */
.data-table .col-text,.data-table .cell-main{overflow-wrap:anywhere}
.data-table .cell-main{font-weight:600}

/* Eingabefelder in Tabellen so schmal wie moeglich */
.data-table input,.data-table select,.data-table textarea{min-width:0;padding:7px 8px}
.data-table .num-input{max-width:84px;min-width:60px;text-align:right}
.data-table .tiny-input{max-width:70px;min-width:52px}
.data-table .time-input{max-width:96px;min-width:80px}
.data-table textarea{min-width:140px}
.data-table input[type=checkbox]{width:20px;height:20px;min-width:20px}
.actions-col{min-width:0}
.actions-col .small{margin:2px 2px 2px 0}

/* Zebra-Streifen und ruhigere Kopfzeile */
.data-table tbody tr:nth-child(even){background:#fbfcfe}
.data-table tbody tr:hover{background:#eff8ff}

/* Dateiablage (Projektdaten) */
.doc-panel{margin:18px 0}
.doc-upload{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(160px,1fr) minmax(180px,1.2fr) auto;gap:10px;align-items:end;margin:10px 0 12px}
.doc-upload label{margin:0}
.doc-progress{margin:6px 0 10px;font-size:13px;color:var(--muted)}
.doc-table .doc-icon{font-size:18px}
.doc-link{color:var(--accent);font-weight:600;text-decoration:none}
.doc-link:hover{text-decoration:underline}
.btn-link{display:inline-block;margin:2px 8px 2px 0;color:var(--accent);font-size:12px;font-weight:600;text-decoration:none}
.btn-link:hover{text-decoration:underline}
.doc-cat-new{display:grid;grid-template-columns:minmax(220px,2fr) minmax(120px,1fr) auto;gap:10px;align-items:end;margin-bottom:12px}
.doc-cat-new label{margin:0}
@media(max-width:820px){
  .doc-upload,.doc-cat-new{grid-template-columns:1fr}
}

/* v1.24 Spaltenauswahl (Zahnrad) */
.table-tools{display:flex;justify-content:flex-end;margin:0 0 6px}
.col-chooser{position:relative}
.col-chooser>summary{list-style:none;cursor:pointer;display:inline-block;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#475467;font-size:12px;font-weight:600}
.col-chooser>summary::-webkit-details-marker{display:none}
.col-chooser[open]>summary{background:#eef2f7}
.col-chooser-list{position:absolute;right:0;top:110%;z-index:12;min-width:230px;max-height:60vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px #10182826;padding:10px;display:grid;gap:4px}
.col-chooser-list .checkline{margin:0;font-weight:500;font-size:13px}
.col-chooser-list .checkline input{width:18px;height:18px;min-width:18px}
.col-chooser-list button{margin-top:6px}
.data-table .col-hidden{display:none}
.data-table .col-tight{width:1%;white-space:nowrap}

/* v1.24 Globale Suche in der Kopfzeile */
.global-search{position:relative;flex:1 1 320px;max-width:520px;margin:0 12px}
.global-search input{margin:0;padding:9px 12px;border-radius:10px;border:1px solid #33405a;background:#1c2637;color:#fff;font-size:14px}
.global-search input::placeholder{color:#94a3b8}
.global-search input:focus{outline:2px solid var(--accent);outline-offset:1px;background:#111a29}
.global-search-results{position:absolute;left:0;right:0;top:110%;z-index:30;background:#fff;color:var(--text);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px #10182833;max-height:60vh;overflow:auto;padding:8px}
.search-group{margin-bottom:6px}
.search-group-title{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#475467;padding:6px 8px 4px}
.search-hit{display:block;width:100%;text-align:left;background:#fff;color:var(--text);border:0;border-radius:8px;padding:8px 10px;font-weight:500;font-size:14px}
.search-hit:hover{background:#eff8ff}
.search-hit-title{display:block}
.search-hit-meta{display:block;color:var(--muted);font-size:12px;margin-top:2px}
@media(max-width:820px){
  header{flex-wrap:wrap}
  .global-search{order:5;flex:1 1 100%;margin:8px 0 0;max-width:none}
}

/* v1.24 Rückmeldung beim automatischen Speichern */
.row-status{display:inline-block;font-size:11px;font-weight:600;margin-right:8px;min-width:0;color:var(--ok)}
.row-status.row-status-error{color:var(--danger)}
.row-status:empty{display:none}
.qty-stepper{grid-template-columns:34px minmax(56px,84px) 34px;gap:4px}
.qty-btn{padding:6px 8px;min-width:34px;font-size:1.05rem}


/* =====================================================================
   v1.24.1 Nur ein Scrollbalken: es scrollt die Seite, nicht die Tabelle
   ===================================================================== */
.table-wrap{max-height:none;overflow-y:visible}
.material-order-table-wrap,.article-admin-list{max-height:none;overflow-y:visible}
/* v1.24.2: Der Tabellenkopf steht wieder normal ueber der ersten Zeile.
   Vorher klebte er am Tabellenkasten (der wegen overflow-x ein eigener
   Scrollbereich ist) und schwebte dadurch mitten in der Liste. */
.data-table thead th{position:static}

/* v1.24.1 Aufklappbare Such- und Filterbereiche */
.filter-details{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 4px #0000000d;margin:0 0 12px;overflow:visible}
.filter-details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:10px 14px;font-weight:600;font-size:14px;color:#344054;user-select:none}
.filter-details>summary::-webkit-details-marker{display:none}
.filter-details>summary::after{content:'▾';margin-left:auto;color:var(--muted);transition:transform .15s ease}
.filter-details[open]>summary::after{transform:rotate(180deg)}
.filter-details>summary:hover{background:#f8fafc;border-radius:12px}
.filter-details[open]>summary{border-bottom:1px solid var(--line);border-radius:12px 12px 0 0}
.filter-summary-info{background:#d1e9ff;color:#175cd3;border-radius:99px;padding:2px 8px;font-size:11px;font-weight:600}
/* eingebettete Kaesten verlieren ihren eigenen Rahmen */
.filter-details>.panel{border:0;box-shadow:none;background:transparent;border-radius:0;padding:12px 14px 6px;margin:0}
.filter-details>.grid2,.filter-details>.grid3,.filter-details>.grid4,.filter-details>.grid5{padding:12px 14px;margin:0}
