.tt-bar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px 0;color:#475569;font:12px/1.5 system-ui,sans-serif;text-align:left}.tt-bar button,.tt-dialog button,.tt-projection>button{background:#fff;color:#334155;border:1px solid #cbd5e1;border-radius:6px;padding:5px 9px;cursor:pointer;font:inherit}.tt-count{margin-right:auto}.tt-chips:empty{display:none}.tt-chips{display:flex;gap:5px;flex-wrap:wrap;flex-basis:100%}.tt-chips button{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.tt-scope{flex-basis:100%;font-size:11px}.tt-panel:not([hidden]){display:flex;gap:6px;flex-wrap:wrap;flex-basis:100%;padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.tt-panel input,.tt-panel select,.tt-dialog input,.tt-dialog select{padding:6px;border:1px solid #cbd5e1;border-radius:5px;min-width:100px;max-width:100%;font:inherit}.tt-table{border-collapse:separate!important;border-spacing:0;width:100%;font-size:13px;line-height:1.5}.tt-table>thead>tr>th{position:sticky;top:0;z-index:2;background:#f1f5f9;padding:9px 16px 9px 9px!important;border-bottom:1px solid #cbd5e1;text-align:left;white-space:nowrap}.tt-table>tbody>tr>td{padding:8px 9px;border-bottom:1px solid #edf0f4}.tt-table>tbody>tr:hover>td{background-color:#f8fafc}.tt-sort{border:0;background:transparent;color:#64748b;cursor:pointer;font:inherit;padding:2px 4px;margin-left:5px}.tt-resize{position:absolute;right:0;top:0;width:8px;height:100%;cursor:col-resize;touch-action:none}.tt-resize:hover{background:#cbd5e1}.tt-filtered,.tt-col-hidden{display:none!important}.tt-dialog{border:1px solid #cbd5e1;border-radius:12px;padding:22px;width:min(660px,92vw);max-height:85vh;overflow:auto;color:#1e293b;box-shadow:0 12px 60px #0f172a33}.tt-dialog::backdrop{background:#0f172a66}.tt-dialog h3{margin:0 0 14px;font-size:18px}.tt-dialog>div{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.tt-column{display:flex;align-items:center;gap:6px;padding:5px 0}.tt-column label{min-width:170px;flex:1}.tt-column input{min-width:0}.tt-projection{border:1px solid #cbd5e1;border-radius:8px;padding:12px}.tt-projection>p{font-size:12px;color:#475569}.tt-sort:focus-visible,.tt-bar button:focus-visible,.tt-resize:focus-visible{outline:2px solid #2563eb;outline-offset:2px}@media print{.tt-bar,.tt-sort,.tt-resize,.tt-dialog{display:none!important}.tt-table>thead>tr>th{position:static}}
/* Column filters, nested groups and totals use the same layout in both apps. */
.tt-column-filter{display:block!important;width:100%;min-width:85px;max-width:100%;box-sizing:border-box;margin-top:7px;padding:6px!important;border:1px solid #cbd5e1!important;border-radius:4px;font:12px system-ui!important;background:white!important;color:#1d2b3a!important}
.tt-group>td{background:#eaf1f8!important;border-top:1px solid #cbd5e1;font-weight:600}.tt-group-toggle{border:0;background:transparent;color:#003878;font:inherit;text-align:left;cursor:pointer;padding:5px;white-space:normal}
.tt-group-hidden{display:none!important}.tt-sum>td{background:#f1f5f9!important;border-top:1px solid #cbd5e1;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.tt-sum>td:first-child{text-align:left}
.tt-table>tfoot>tr>td{padding:9px;border-top:1px solid #cbd5e1;background:#edf3f9;font-weight:600;white-space:nowrap}
.tt-editor-totals{display:flex;flex-wrap:wrap;gap:8px 20px;padding:12px;background:#edf3f9;border:1px solid #dfe5ec;font:13px system-ui}
.tt-records{max-width:100%;overflow:auto}.tt-records table{min-width:900px}.tt-view-toggle{margin:8px 0;padding:7px 12px;background:white;color:#003878;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer}
.tt-group-toggle:focus-visible,.tt-column-filter:focus-visible{outline:2px solid #e69926;outline-offset:2px}
[hidden].tt-records,[hidden].tt-editor-totals{display:none!important}
@media print{.tt-column-filter,.tt-view-toggle{display:none!important}.tt-group-toggle{color:#000}}

.tt-table .tt-native-total{display:none!important}
/* Excel-like viewport: one original header, independent vertical/horizontal scrolling. */
@media screen {
 .tt-viewport{max-width:100%;min-width:0;max-height:70vh;overflow:auto;position:relative;isolation:isolate;overscroll-behavior-x:contain;border:1px solid #dfe5ec;border-radius:6px;scrollbar-gutter:stable}
 .tt-viewport>table{border-collapse:separate!important;border-spacing:0;width:100%;margin:0!important}
 .tt-viewport .tt-sticky-heading{position:sticky!important;top:0!important;z-index:5!important;background:#f1f5f9!important;box-shadow:0 1px #cbd5e1}
 .tt-viewport .tt-frozen{position:sticky!important;left:var(--tt-frozen-left)!important;z-index:2;background:#fff}
 .tt-viewport .tt-sticky-heading.tt-frozen{z-index:7!important;background:#f1f5f9!important}
 .tt-viewport .tt-frozen-edge{box-shadow:2px 0 0 #94a3b8,4px 0 6px #0f172a12}
 .tt-freeze-control{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.tt-freeze-control select{padding:5px 8px;border:1px solid #cbd5e1;border-radius:5px;background:white;color:#334155;max-width:260px;font:inherit}
 .tt-viewport:focus-visible{outline:2px solid #e69926;outline-offset:2px}
 .tt-records{overflow:visible}
}
@media print{.tt-viewport{overflow:visible;max-height:none;border:0}.tt-freeze-control{display:none!important}.tt-frozen,.tt-sticky-heading{position:static!important;box-shadow:none!important}}
/* Touch/Handy (14.10.2026): Tabelle in Grid-/Flex-Behältern nicht breiter als der Bildschirm werden lassen
   (sonst wächst der Behälter mit, .view/.app-content schneiden rechts ab und es gibt nichts zu wischen).
   Zeile antippen öffnet den Datensatz; Aktionsspalte bleibt auf schmalen Bildschirmen rechts sichtbar. */
.tt-records,.tt-viewport,.tec-table-scroll{min-width:0;max-width:100%}
.tt-table>tbody>tr.tt-row-open{cursor:pointer}
@media (max-width:767px){.tt-viewport .tt-actions{position:sticky;right:0;z-index:3;background:#fff;box-shadow:-3px 0 6px #0f172a14}.tt-viewport .tt-sticky-heading.tt-actions{z-index:7!important;background:#f1f5f9!important}.tt-viewport tbody tr:hover>td.tt-actions{background:#f8fafc}}
@media print{.tt-viewport .tt-actions{position:static!important;box-shadow:none!important}}
/* Handy (28.10.2026): Lesetabellen als Karten statt breiter Tabelle – kein seitliches Wischen, keine schmalen Textspalten. */
@media screen and (max-width:767px){
 .tt-viewport.tt-karten-mobil{max-height:none;overflow:visible;border:0;border-radius:0}
 .tt-karten-mobil>table,.tt-karten-mobil>table>tbody,.tt-karten-mobil>table>tbody>tr,.tt-karten-mobil>table>tbody>tr>td,.tt-karten-mobil>table>tfoot,.tt-karten-mobil>table>tfoot>tr,.tt-karten-mobil>table>tfoot>tr>td{display:block;width:auto!important;min-width:0!important;max-width:none!important}
 .tt-karten-mobil>table>thead{display:none}
 .tt-karten-mobil>table>tbody>tr{margin:0 0 10px;padding:8px 12px;background:#fff;border:1px solid #dfe5ec;border-radius:8px;box-shadow:0 1px 2px #0f172a0d}
 .tt-karten-mobil>table>tbody>tr.tt-filtered,.tt-karten-mobil>table>tbody>tr.tt-group-hidden,.tt-karten-mobil .tt-col-hidden{display:none!important}
 .tt-karten-mobil>table>tbody>tr>td{display:flex;gap:10px;align-items:flex-start;padding:5px 0!important;border:0!important;border-bottom:1px solid #f1f5f9!important;white-space:normal!important;overflow-wrap:anywhere;text-align:left!important;position:static!important;box-shadow:none!important;background:transparent!important}
 .tt-karten-mobil>table>tbody>tr>td:last-child{border-bottom:0!important}
 .tt-karten-mobil>table>tbody>tr>td[data-label]::before{content:attr(data-label);flex:0 0 34%;max-width:34%;color:#64748b;font-size:12px;font-weight:600;overflow-wrap:anywhere}
 .tt-karten-mobil>table>tbody>tr>td[data-label=""]::before,.tt-karten-mobil>table>tbody>tr>td[data-label="Spalte"]::before,.tt-karten-mobil>table>tbody>tr>td[data-label="Aktionen"]::before{display:none}
 .tt-karten-mobil>table>tbody>tr>td:empty{display:none}
 .tt-karten-mobil>table>tbody>tr>td>*{min-width:0;max-width:100%}
 .tt-karten-mobil>table>tbody>tr>td{align-items:center}
 .tt-karten-mobil>table>tbody>tr>td>:is(input:not([type=checkbox]):not([type=radio]),select,textarea,.lookup,.lookup-wrap){flex:1 1 auto;width:auto!important;min-width:0!important;box-sizing:border-box}
 .tt-karten-mobil>table>tbody>tr>td:has(>input:not([type=hidden]),>select,>textarea){padding:4px 0!important}
 .tt-karten-mobil>table>tbody>tr.tt-group,.tt-karten-mobil>table>tbody>tr.tt-sum{padding:6px 10px;background:#eaf1f8}
 .tt-karten-mobil>table>tbody>tr.tt-group>td,.tt-karten-mobil>table>tbody>tr.tt-sum>td{border:0!important}
 .tt-karten-mobil>table>tbody>tr:hover>td{background:transparent!important}
 .tt-karten-mobil>table>tfoot>tr>td{white-space:normal;border:0!important;padding:3px 9px!important}
 .tt-karten-mobil>table>tfoot>tr>td:empty{display:none}
 .tt-freeze-control.tt-freeze-karten{display:none!important}
}
