Files
Materialschein/client/src/styles.css
T
Fidelis HuberandClaude Sonnet 5 c1bb51b480
Build and Deploy / version (push) Successful in 2s
Build and Deploy / build (push) Successful in 8s
Build and Deploy / deploy (push) Successful in 1s
Add light/dark theme with system-preference detection
Neues client/src/lib/theme.ts verwaltet die Wahl (system/light/dark) in
localStorage. Umschalter-Button im Header (zyklisch: System -> Hell -> Dunkel),
Icon zeigt den aktuellen Modus. CSS-Variablen (--bg/--card/--text/--muted/
--bor/--cyan) bekommen einen Hell-Override über [data-theme="light"] bzw.
@media(prefers-color-scheme:light) ohne explizites [data-theme="dark"] - so
gewinnt eine manuelle Wahl in beide Richtungen gegen die Systemeinstellung.
Header/Tabs/Login bleiben bewusst immer dunkel-navy (Markenidentität), nur
der Content-Bereich wechselt. Inline-Script in index.html verhindert ein
kurzes Aufblitzen des falschen Farbschemas vor dem ersten Paint.

Temporärer test-build-only.yml Workflow zur Verifikation ohne Registry-Push.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 17:33:15 +02:00

312 lines
21 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Dunkel ist die Grundeinstellung (bare :root). Header/Tabs/Login bleiben in
beiden Modi dunkel-navy (Markenidentität) nur der Content-Bereich (Karten,
Tabellen, Formulare) wechselt. Siehe [data-theme="light"] weiter unten für
die Werte und wie System-Erkennung + expliziter Umschalter zusammenspielen. */
:root{
--bg:#0a1622;
--bg2:#0f2033;
--card:#122a42;
--cyan:#00c8d8;
--text:#eef7fa;
--muted:#87abbc;
--bor:#22475f;
--r:14px;
--sh:0 4px 24px rgba(0,0,0,.35);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;line-height:1.4}
button,input,select,textarea{font-family:inherit}
/* ── Theme: Hell ──
Zwei Auslöser, die dieselben Werte setzen:
1) [data-theme="light"] explizit vom Umschalter gewählt, unabhängig vom System.
2) @media(prefers-color-scheme:light) ohne explizites [data-theme="dark"] folgt
der Systemeinstellung, solange niemand manuell "Dunkel" erzwungen hat. */
:root[data-theme="light"]{
--bg:#f3f6f8;--bg2:#ffffff;--card:#ffffff;--cyan:#0086a3;--text:#0f2130;--muted:#5c7686;--bor:#dbe4ea;
--sh:0 3px 16px rgba(15,35,50,.08);
}
:root[data-theme="light"] .btn-ghost{background:rgba(15,35,50,.05)}
:root[data-theme="light"] .status-aktiv{background:rgba(0,170,90,.12);color:#0a8a4c}
:root[data-theme="light"] .status-abgeschlossen{background:rgba(92,118,134,.12)}
:root[data-theme="light"] .badge-nym{background:rgba(0,110,200,.14);color:#0064b8}
:root[data-theme="light"] .badge-nyy{background:rgba(210,110,0,.14);color:#a35b00}
:root[data-theme="light"] .badge-h07{background:rgba(120,0,180,.14);color:#7a1fae}
:root[data-theme="light"] .badge-ysly{background:rgba(210,40,40,.14);color:#b32a2a}
:root[data-theme="light"] .badge-schlauch{background:rgba(20,150,90,.14);color:#0f7d4f}
@media(prefers-color-scheme:light){
:root:not([data-theme="dark"]){
--bg:#f3f6f8;--bg2:#ffffff;--card:#ffffff;--cyan:#0086a3;--text:#0f2130;--muted:#5c7686;--bor:#dbe4ea;
--sh:0 3px 16px rgba(15,35,50,.08);
}
:root:not([data-theme="dark"]) .btn-ghost{background:rgba(15,35,50,.05)}
:root:not([data-theme="dark"]) .status-aktiv{background:rgba(0,170,90,.12);color:#0a8a4c}
:root:not([data-theme="dark"]) .status-abgeschlossen{background:rgba(92,118,134,.12)}
:root:not([data-theme="dark"]) .badge-nym{background:rgba(0,110,200,.14);color:#0064b8}
:root:not([data-theme="dark"]) .badge-nyy{background:rgba(210,110,0,.14);color:#a35b00}
:root:not([data-theme="dark"]) .badge-h07{background:rgba(120,0,180,.14);color:#7a1fae}
:root:not([data-theme="dark"]) .badge-ysly{background:rgba(210,40,40,.14);color:#b32a2a}
:root:not([data-theme="dark"]) .badge-schlauch{background:rgba(20,150,90,.14);color:#0f7d4f}
}
/* Login */
.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#070f18;position:relative;overflow:hidden;padding:20px}
.login-screen::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 30% 30%,rgba(0,200,216,.08) 0%,transparent 70%)}
.lcard{background:var(--card);border:1px solid var(--bor);border-radius:var(--r);box-shadow:var(--sh);padding:44px 36px;width:380px;max-width:100%;text-align:center;position:relative;z-index:1}
.llogo{font-size:34px;font-weight:900;letter-spacing:1px;color:#fff;text-transform:uppercase;display:flex;align-items:center;justify-content:center;gap:2px}
.llogo span{color:var(--cyan)}
.lsub{font-size:10px;letter-spacing:5px;text-transform:uppercase;color:var(--cyan);opacity:.8;margin-top:6px;margin-bottom:26px}
.ltitle{font-size:16px;font-weight:700;color:#fff;margin-bottom:8px}
.ldesc{color:var(--muted);font-size:13px;margin-bottom:26px;line-height:1.6}
.btn-ms{display:flex;align-items:center;justify-content:center;gap:10px;background:#0078d4;color:#fff;border:none;border-radius:9px;padding:14px;width:100%;font-size:14px;font-weight:700;cursor:pointer}
.btn-ms:hover{background:#1084d8}
.btn-ms:disabled{opacity:.5;cursor:not-allowed}
.lerr{margin-top:14px;color:#ff6b6b;font-size:12.5px;line-height:1.5}
/* Header */
header{background:linear-gradient(135deg,#081420 0%,#0c1c30 100%);border-bottom:1px solid var(--bor);padding:0 20px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:100;box-shadow:0 2px 20px rgba(0,0,0,.4)}
.header-logo{display:flex;align-items:center;gap:14px;padding:14px 0;flex:1;min-width:0}
.logo-name{font-size:22px;font-weight:900;letter-spacing:2px;color:#fff;text-transform:uppercase}
.logo-name span{color:var(--cyan)}
.logo-sub{font-size:10px;letter-spacing:6px;color:var(--cyan);text-transform:uppercase;opacity:.85}
.hdr-user{display:flex;align-items:center;gap:9px;flex-shrink:0}
.hdr-av{width:32px;height:32px;border-radius:8px;background:rgba(0,200,216,.12);border:1px solid rgba(0,200,216,.3);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:var(--cyan);flex-shrink:0}
.hdr-name{font-size:12px;font-weight:700;color:#fff;line-height:1.3}
.hdr-role{font-size:9.5px;color:var(--muted)}
.btn-logout{background:rgba(255,255,255,.06);border:1px solid var(--bor);color:var(--muted);border-radius:8px;padding:8px 12px;font-size:11px;font-weight:700;cursor:pointer;flex-shrink:0}
.btn-logout:hover{color:#ff6b6b;border-color:rgba(255,85,85,.4)}
.btn-theme{background:rgba(255,255,255,.06);border:1px solid var(--bor);border-radius:8px;width:36px;height:36px;font-size:15px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;line-height:1}
.btn-theme:hover{background:rgba(255,255,255,.12)}
/* Tabs */
.tabs{background:#081420;display:flex;padding:0 20px;gap:2px;border-bottom:1px solid var(--bor);overflow-x:auto}
.tab{padding:13px 20px;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;text-decoration:none;display:inline-block}
.tab.active{color:var(--cyan);border-bottom-color:var(--cyan)}
.tab:hover{color:var(--text)}
main{max-width:920px;margin:0 auto;padding:22px 18px 100px}
.card{background:var(--card);border:1px solid var(--bor);border-radius:var(--r);box-shadow:var(--sh);padding:22px;margin-bottom:18px}
.card-title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--cyan);margin-bottom:16px;display:flex;align-items:center;gap:8px}
.card-title::before{content:'';display:block;width:3px;height:12px;background:var(--cyan);border-radius:2px;box-shadow:0 0 8px var(--cyan)}
.card-hint{font-size:11.5px;color:var(--muted);margin:-8px 0 16px;line-height:1.6}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid-4{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end}
.grid-2>*,.grid-4>*{min-width:0}
@media(max-width:620px){.grid-2,.grid-4{grid-template-columns:1fr}}
label.field{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}
label.field input,label.field select,label.field textarea{height:44px;border:1.5px solid var(--bor);border-radius:9px;padding:0 12px;font-size:14px;background:var(--bg2);color:var(--text)}
label.field textarea{height:60px;padding:9px 12px;resize:vertical}
label.field input:focus,label.field select:focus,label.field textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,200,216,.15)}
label.field select option{background:#0c1a2b}
.kab-inline{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr auto;gap:12px;align-items:end}
.kab-inline>*{min-width:0}
@media(max-width:720px){.kab-inline{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.kab-inline{grid-template-columns:1fr}}
.kab-result-inline{margin-top:14px;padding:16px 18px;background:rgba(0,200,216,.08);border:1px solid rgba(0,200,216,.2);border-radius:10px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.kab-res-big{font-size:32px;font-weight:900;color:var(--cyan);line-height:1;letter-spacing:-1px}
.kab-res-info{font-size:11px;color:var(--muted);line-height:1.6}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:10px;border:1px solid var(--bor)}
.mat-table{width:100%;min-width:720px;border-collapse:collapse;font-size:12.5px}
.mat-table th{background:rgba(0,200,216,.12);color:var(--cyan);padding:10px 10px;text-align:left;font-size:10px;letter-spacing:.07em;text-transform:uppercase;font-weight:700;border-bottom:1px solid var(--bor);white-space:nowrap}
.mat-table td{padding:8px 10px;border-bottom:1px solid rgba(34,71,95,.5);color:var(--text)}
.mat-table tr:last-child td{border-bottom:none}
.mat-table tr:hover td{background:rgba(0,200,216,.05)}
.qty-input{width:64px;height:34px;border:1px solid var(--bor);border-radius:7px;padding:0 6px;font-size:13px;text-align:center;background:var(--bg2);color:var(--text)}
.notiz-input{width:100%;min-width:120px;height:32px;border:1px solid var(--bor);border-radius:7px;padding:0 8px;font-size:12px;background:var(--bg2);color:var(--text)}
.del-btn{background:none;border:none;color:#ff5555;font-size:19px;cursor:pointer;padding:6px 8px;opacity:.75}
.del-btn:hover{opacity:1}
.pos-nr{font-size:10px;color:var(--muted);text-align:center}
.art-cell{font-family:monospace;font-size:10px;color:var(--muted)}
.empty-msg{text-align:center;color:var(--muted);padding:40px 20px;font-size:13px;line-height:1.8}
.chk-col{display:none;width:36px;text-align:center}
.table-wrap.retour-mode .chk-col{display:table-cell}
.row-check{width:19px;height:19px;cursor:pointer;accent-color:var(--cyan)}
tr.row-selected td{background:rgba(255,176,96,.09)}
.retour-panel{margin-top:14px;padding:16px 18px;background:rgba(255,176,96,.08);border:1px solid rgba(255,176,96,.3);border-radius:10px;display:flex;flex-wrap:wrap;align-items:end;gap:14px}
.retour-panel-info{flex:1 1 220px;font-size:12.5px;color:var(--text);line-height:1.6}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:44px;padding:0 18px;border-radius:9px;border:none;font-size:12.5px;font-weight:700;cursor:pointer;letter-spacing:.04em;text-decoration:none}
.btn:active{transform:scale(.97)}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn-cyan{background:var(--cyan);color:#07111e}
.btn-cyan:hover{background:#00e0f0}
.btn-outline{background:transparent;color:var(--cyan);border:1.5px solid var(--cyan)}
.btn-outline:hover{background:rgba(0,200,216,.1)}
.btn-outline.active{background:var(--cyan);color:#07111e}
.btn-ghost{background:rgba(255,255,255,.06);color:var(--text);border:1px solid var(--bor)}
.btn-ghost:hover{background:rgba(255,255,255,.1)}
.btn-danger{background:transparent;color:#ff5555;border:1px solid rgba(255,85,85,.35)}
.kc-result-box{margin-top:16px;background:rgba(0,200,216,.08);border:1px solid rgba(0,200,216,.2);border-radius:12px;padding:20px}
.kc-main{font-size:44px;font-weight:900;color:var(--cyan);letter-spacing:-2px;line-height:1}
.kc-detail{margin-top:10px;padding-top:10px;border-top:1px solid rgba(0,200,216,.15);font-size:12px;color:var(--muted);line-height:1.7}
.tare-row{display:flex;align-items:center;gap:10px;margin-top:14px}
.toggle{position:relative;width:42px;height:24px;flex-shrink:0}
.toggle input{opacity:0;width:0;height:0}
.slider{position:absolute;inset:0;background:var(--bor);border-radius:24px;cursor:pointer;transition:background .2s}
.slider::before{content:'';position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s}
.toggle input:checked + .slider{background:var(--cyan)}
.toggle input:checked + .slider::before{transform:translateX(18px)}
.ref-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.reftab{width:100%;min-width:480px;border-collapse:collapse;font-size:12px}
table.reftab th{background:rgba(0,200,216,.1);color:var(--cyan);padding:9px 12px;text-align:left;font-size:10px;letter-spacing:.07em;text-transform:uppercase;border-bottom:1px solid var(--bor)}
table.reftab td{padding:8px 12px;border-bottom:1px solid rgba(34,71,95,.5);color:var(--text)}
table.reftab tr:hover td{background:rgba(0,200,216,.06);cursor:pointer}
.badge{display:inline-block;padding:1px 7px;border-radius:8px;font-size:10px;font-weight:700}
.badge-nym{background:rgba(0,150,255,.2);color:#60c8ff}
.badge-nyy{background:rgba(255,150,0,.2);color:#ffb060}
.badge-h07{background:rgba(140,0,200,.2);color:#d07aff}
.badge-ysly{background:rgba(255,70,70,.2);color:#ff8080}
.badge-schlauch{background:rgba(60,200,130,.2);color:#60e0a0}
/* Dashboard */
.dash-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.dash-search{flex:1;min-width:180px;height:44px;border:1.5px solid var(--bor);border-radius:9px;padding:0 14px;font-size:14px;background:var(--bg2);color:var(--text)}
.dash-search:focus{outline:none;border-color:var(--cyan)}
.dash-filters{display:flex;gap:6px}
.dfilter{padding:7px 14px;border-radius:20px;border:1px solid var(--bor);background:transparent;font-size:11px;font-weight:700;color:var(--muted);cursor:pointer;white-space:nowrap}
.dfilter.active{background:var(--cyan);border-color:var(--cyan);color:#07111e}
.proj-list{display:flex;flex-direction:column;gap:10px}
.proj-card{background:var(--card);border:1px solid var(--bor);border-radius:12px;padding:16px 18px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;text-decoration:none;color:inherit}
.proj-card:hover{border-color:var(--cyan)}
.proj-name{font-size:15px;font-weight:800;color:#fff;margin-bottom:4px;word-break:break-word}
.proj-meta{font-size:11.5px;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap}
.proj-status{font-size:10px;font-weight:800;padding:3px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}
.status-aktiv{background:rgba(0,230,118,.15);color:#50ffaa}
.status-abgeschlossen{background:rgba(135,171,188,.15);color:var(--muted)}
.new-proj-card{background:transparent;border:1.5px dashed var(--bor);border-radius:12px;padding:16px 18px;text-align:center;cursor:pointer;color:var(--muted);font-weight:700;font-size:13px}
.new-proj-card:hover{border-color:var(--cyan);color:var(--cyan)}
.detail-back{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.btn-back{background:rgba(255,255,255,.06);border:1px solid var(--bor);color:var(--text);border-radius:9px;padding:9px 14px;font-size:12px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.btn-back:hover{border-color:var(--cyan);color:var(--cyan)}
.detail-title{font-size:17px;font-weight:800;color:#fff;flex:1;min-width:150px}
.spin{width:22px;height:22px;border:2px solid var(--bor);border-top-color:var(--cyan);border-radius:50%;animation:sp .8s linear infinite;margin:0 auto}
@keyframes sp{to{transform:rotate(360deg)}}
.print-bar{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(90deg,#081420,#0c1c30);border-top:1px solid var(--bor);padding:14px 20px;display:flex;gap:10px;justify-content:center;box-shadow:0 -2px 20px rgba(0,0,0,.4);z-index:99}
/* ── Druck-Layout: BergVOLT-Briefdesign, angelehnt an die offizielle Rechnung ── */
.print-doc{display:none}
.pbanner{position:relative;background:#0a0a0a;height:90px;overflow:hidden;display:flex;align-items:center;justify-content:flex-end;padding:0 30px}
.pbanner::before{content:'';position:absolute;left:0;top:0;bottom:0;width:62%;background:var(--cyan);clip-path:polygon(0 0,46% 0,14% 100%,0 100%)}
.pbanner::after{content:'';position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--cyan)}
.plogo-wrap{position:relative;z-index:1;text-align:right}
.plogo{color:#fff;font-size:28px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}
.plogo span{color:var(--cyan)}
.plogo-sub{color:var(--cyan);font-size:8px;letter-spacing:5px;font-weight:700;margin-top:2px}
.ptop{display:flex;justify-content:space-between;gap:24px;padding:24px 4px 20px}
.paddr{font-size:12px;line-height:1.6;color:#000}
.paddr .lbl{font-size:9px;color:#888;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}
.paddr .name{font-weight:700;font-size:13px}
.paddr .pnote{color:#555;margin-top:4px}
table.pinfo{border:1px solid #ccc;border-collapse:collapse;min-width:250px;height:fit-content}
table.pinfo td{padding:5px 11px;border-bottom:1px solid #e2e2e2;font-size:11px;color:#000}
table.pinfo tr:first-child td{background:#eee;font-weight:800;font-size:13px;border-bottom:1px solid #ccc}
table.pinfo tr:last-child td{border-bottom:none}
table.pinfo td:first-child{color:#666}
table.pinfo td:last-child{text-align:right;font-weight:600}
.psubject{font-weight:700;margin:0 4px 14px;font-size:13px;color:#000}
.psum-line{display:flex;justify-content:flex-end;margin-top:6px}
.psum-line table{border-collapse:collapse;min-width:220px}
.psum-line td{padding:8px 12px;font-size:12px;border-top:1.5px solid #1a1a1a;background:#eee;font-weight:800;color:#000}
.psum-line td:last-child{text-align:right}
.pfoot-note{margin:34px 4px 0;font-size:10.5px;color:#666;line-height:1.6}
.pfooter{display:none}
@media print{
header,.tabs,.print-bar,.detail-back,.kab-card,.manual-card,.baustelle-card,.card-hint,.del-btn,.qty-input,.notiz-input,
.chk-col,.retour-panel,.btn-retour-toggle{display:none!important}
body{background:#fff;color:#000}
main{max-width:none;padding:0;margin:0}
.card{box-shadow:none;border:none;background:#fff;padding:0 4px;page-break-inside:avoid}
.card-title{display:none}
.print-doc{display:block}
.pfooter{display:flex;background:#0a0a0a;color:#fff;padding:14px 20px;justify-content:space-between;gap:16px;font-size:9.5px;line-height:1.7;margin-top:30px;position:relative}
.pfooter::before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--cyan)}
.pfooter b{display:block;color:var(--cyan);font-size:9px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:3px}
.table-wrap{border:none;overflow:visible;margin:0 4px}
.mat-table{min-width:0;width:100%}
.mat-table th{background:#fff;color:#000;border-top:1.5px solid #1a1a1a;border-bottom:1.5px solid #1a1a1a;font-size:10px;padding:7px 8px}
.mat-table td{color:#000;border-bottom:1px solid #e2e2e2;padding:7px 8px;font-size:11.5px}
.art-cell,.pos-nr{color:#555}
.print-only{display:inline}
}
.print-only{display:none}
@media(max-width:768px){
body{font-size:15px}
main{padding:16px 12px 110px}
.card{padding:16px;border-radius:12px;margin-bottom:14px}
label.field input,label.field select,label.field textarea{font-size:16px;height:46px}
.mat-table th,.mat-table td{padding:9px 8px;font-size:12px}
.qty-input{width:60px;height:38px;font-size:14px}
.btn{height:46px;font-size:13px}
.logo-name{font-size:18px;letter-spacing:1px}
.logo-sub{font-size:8.5px;letter-spacing:3.5px}
header{padding:0 14px;gap:10px}
.tabs{padding:0 14px}
.tab{padding:12px 16px;font-size:11.5px}
.print-bar{padding:10px 12px;gap:8px}
.print-bar .btn{flex:1}
.hdr-name,.hdr-role{display:none}
}
/* Materialliste auf schmalen Screens: Karten statt Tabelle mit Horizontal-Scroll */
@media(max-width:680px){
.table-wrap{overflow-x:visible;border:none}
.mat-table{min-width:0;width:100%;border-collapse:separate;border-spacing:0}
.mat-table thead{display:none}
.mat-table tbody{display:flex;flex-direction:column;gap:10px}
.mat-table tr{
display:grid;
grid-template-columns:auto 1fr auto;
grid-template-areas:
"chk pos del"
"bez bez bez"
"menge menge menge"
"einh einh einh"
"art art art"
"notiz notiz notiz";
column-gap:8px;
background:var(--bg2);border:1px solid var(--bor);border-radius:12px;padding:12px 14px;
}
.mat-table tr.row-selected{background:rgba(255,176,96,.09);border-color:rgba(255,176,96,.4)}
.mat-table td{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-bottom:1px dashed rgba(34,71,95,.6);font-size:12.5px}
.mat-table td::before{content:attr(data-label);font-size:9.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}
.mat-table td.td-chk{grid-area:chk;border-bottom:none;padding:0;align-items:flex-start}
.mat-table td.td-chk::before{content:none}
.mat-table td.td-pos{grid-area:pos;border-bottom:none;padding:0;font-size:10.5px;color:var(--muted);justify-content:flex-start}
.mat-table td.td-pos::before{content:'Pos. '}
.mat-table td.td-del{grid-area:del;border-bottom:none;padding:0;justify-content:flex-end}
.mat-table td.td-del::before{content:none}
.mat-table td.td-bez{
grid-area:bez;border-bottom:1px solid var(--bor);padding:8px 0 10px;margin-bottom:2px;
font-size:15px;font-weight:800;color:#fff;display:block
}
.mat-table td.td-bez::before{content:none}
.mat-table td.td-menge{grid-area:menge}
.mat-table td.td-einh{grid-area:einh}
.mat-table td.td-art{grid-area:art}
.mat-table td.td-notiz{grid-area:notiz;flex-direction:column;align-items:stretch;gap:6px;border-bottom:none}
.mat-table td.td-notiz::before{content:'Notiz'}
}