:root{--ink:#192c32;--paper:#f4f5f2;--line:#dce2df;--muted:#657573;--accent:#1f4e5f;--green:#267549;--red:#aa3b35;--yellow:#936614;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.5 Inter,Segoe UI,system-ui,sans-serif}header{background:#fff;border-bottom:1px solid var(--line);padding:20px 3vw;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;gap:13px;align-items:center;letter-spacing:.12em;font-size:19px}.brandmark{display:grid;place-items:center;background:var(--accent);color:#fff;width:44px;height:44px;border-radius:8px;font-weight:900}.brand small{display:block;font-size:10px;letter-spacing:.015em;color:var(--muted);margin-top:3px}.brand b{font-weight:400}#identity{font-size:12px;display:flex;gap:15px;align-items:center}main{padding:30px 3vw 60px;max-width:1800px;margin:auto}h1{font-size:32px;letter-spacing:-.045em;line-height:1.16;margin:7px 0 10px}h2{font-size:19px;letter-spacing:-.025em;margin:0}h3{font-size:15px}p{margin:6px 0 16px}.eyebrow{font-size:10px;letter-spacing:.17em;font-weight:750;color:var(--accent)}.pagehead,.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}.pagehead p,.sectionhead p,.muted{color:var(--muted);font-size:12px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}button,input,select{font:inherit}button{border:1px solid var(--accent);background:var(--accent);color:white;border-radius:6px;padding:10px 15px;font-weight:600;cursor:pointer;white-space:nowrap}button:hover{filter:brightness(.92)}button:disabled{opacity:.5;cursor:not-allowed}.secondary{background:#fff;color:var(--ink);border-color:var(--line)}.link{background:none;color:var(--accent);border:0;padding:8px 0;font-size:12px}input,select{padding:9px 10px;border:1px solid #cdd7d2;background:white;color:var(--ink);border-radius:5px;max-width:100%}input:focus,select:focus,button:focus-visible{outline:2px solid #6998a8;outline-offset:2px}label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted);font-weight:600}form{display:grid;gap:16px}nav{display:flex;gap:25px;border-bottom:1px solid var(--line);margin-bottom:25px;overflow:auto}nav button{background:none;border:0;border-radius:0;color:var(--muted);padding:13px 0}nav button.active{color:var(--accent);border-bottom:3px solid var(--accent)}.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin:26px 0 34px}.kpi{background:white;border:1px solid var(--line);border-radius:8px;padding:18px}.kpi small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.kpi strong{display:block;font-size:24px;letter-spacing:-.04em;margin:10px 0 4px;font-variant-numeric:tabular-nums}.kpi em{font-style:normal;font-size:11px;color:var(--muted)}.bad{color:var(--red)}.good{color:var(--green)}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:8px;background:white}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:right;background:#edf1ee;color:#596963;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:13px;white-space:nowrap}th button{padding:0;background:none;border:0;color:inherit;font-size:inherit;text-transform:inherit;letter-spacing:inherit}td{text-align:right;padding:15px 13px;border-top:1px solid #e9ede9;font-variant-numeric:tabular-nums;white-space:nowrap}td:first-child,th:first-child{text-align:left}td small{display:block;font-size:10px;color:var(--muted);font-weight:400}td:first-child{min-width:220px;max-width:330px;white-space:normal}td .link{font-size:12px;font-weight:650;text-align:left;padding:0}tbody tr:hover{background:#f9faf8}.signal{display:inline-flex;padding:4px 8px;border-radius:4px;font-size:10px;font-weight:750;background:#e3eee5;color:var(--green)}.signal.Rot{background:#f9e8e3;color:var(--red)}.signal.Gelb{background:#faf0d5;color:var(--yellow)}.signal.Schwarz{background:#293238;color:white}.notice{padding:16px 20px;border:1px solid #decfa5;border-left:3px solid #b38a36;background:#faf5e8;border-radius:6px;margin:18px 0;white-space:pre-wrap;font-size:13px}.empty{background:white;border:1px dashed #bfcfc5;border-radius:8px;text-align:center;padding:65px 25px;color:var(--muted)}.empty span{font-size:32px;color:var(--accent)}.empty h2{color:var(--ink);margin:12px}.bottomactions{display:flex;gap:15px;align-items:center;margin:20px 0}.login{max-width:420px;margin:60px auto}.login h1{font-size:46px;margin:12px 0 18px}.login p{color:var(--muted)}.login form{margin-top:30px}.login form button{display:flex;justify-content:space-between;padding:13px}.login .link{margin-top:13px}.card{background:white;border:1px solid var(--line);border-radius:8px;padding:22px;margin:20px 0}.settingsgrid{grid-template-columns:repeat(3,minmax(160px,240px));margin:25px 0}.settingsgrid button{align-self:end}.roles td{white-space:normal;text-align:left}.roles th{text-align:left}.member{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:12px;align-items:center;padding:18px;border-bottom:1px solid var(--line);background:white}.member small{display:block;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:12px;padding:24px;max-width:1000px;width:92vw;max-height:88vh;box-shadow:0 25px 90px #152a3240;color:var(--ink)}dialog::backdrop{background:#12232988}.dialoghead{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:20px}.dialoghead button{padding:3px 12px;font-size:22px}.formgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.full{grid-column:1/-1}.filebutton{display:inline-block;background:var(--accent);color:white;padding:10px 15px;border-radius:5px;cursor:pointer}.filebutton input{display:none}.checkline{display:flex;flex-direction:row;align-items:center;gap:8px}.checkline input{width:auto}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90vw;padding:15px 22px;background:var(--ink);color:white;border-radius:8px;z-index:1000}footer{display:flex;gap:25px;margin:0 3vw;padding:22px 0;border-top:1px solid var(--line);font-size:10px;letter-spacing:.05em;color:var(--muted)}footer span{letter-spacing:0}.hint{font-size:11px;color:var(--muted)}.inlinecheck{width:auto}pre{white-space:pre-wrap;word-break:break-word;font-size:11px}[hidden]{display:none!important}@media(max-width:1100px){.kpis{grid-template-columns:repeat(3,1fr)}.pagehead,.sectionhead{align-items:flex-start;flex-direction:column}.formgrid{grid-template-columns:1fr 1fr}}@media(max-width:650px){main{padding:24px 16px}header{padding:15px 16px}.brand small{display:none}.brand{font-size:15px}.kpis{grid-template-columns:1fr 1fr;gap:8px}.kpi{padding:13px}.kpi strong{font-size:20px}h1{font-size:28px}.settingsgrid,.formgrid{grid-template-columns:1fr}.member{grid-template-columns:1fr 1fr}#identity{flex-direction:column;gap:0;align-items:end}.bottomactions{flex-wrap:wrap}nav{gap:20px}.login{margin:25px auto}.login h1{font-size:40px}footer{flex-direction:column;gap:5px}}@media print{@page{size:A4 landscape;margin:8mm}header,nav,.actions,.bottomactions,footer,#toast,dialog,.login{display:none!important}main{padding:0}.tablewrap{overflow:visible;border:0}table{font-size:8px}td,th{padding:5px}th{font-size:7px}thead{display:table-header-group}tr{break-inside:avoid}.signal{-webkit-print-color-adjust:exact;print-color-adjust:exact}.kpis{margin:10px 0;gap:5px}.kpi{padding:8px}.kpi strong{font-size:16px}.tab[hidden]{display:none!important}}

/* Original Wahl Gruppe logo, preserved without modifications. */
.brand-logo{display:block;width:190px;height:auto;max-height:86px;object-fit:contain;flex-shrink:0}.brand-label{border-left:1px solid var(--line);padding-left:18px}.brand{gap:18px}.brand-label b{font-size:17px;letter-spacing:.16em;font-weight:600}@media(max-width:650px){.brand-logo{width:120px;max-height:58px}.brand{gap:10px}.brand-label{padding-left:10px}.brand-label b{font-size:12px}}@media(max-width:420px){.brand-logo{width:98px}.brand-label b{font-size:10px}}

/* Scrollable working tables: headers stay visible in both scroll directions. */
.tablewrap{max-height:72vh;max-height:72dvh;isolation:isolate;scrollbar-gutter:stable;scroll-padding-top:60px}
.tablewrap table{border-collapse:separate;border-spacing:0}
.tablewrap thead th{position:sticky;top:0;z-index:3;background:#e8efec;box-shadow:0 1px 0 #c9d5cf}
.tablewrap td{vertical-align:middle}
td .link{white-space:normal;overflow-wrap:anywhere;max-width:100%;line-height:1.45}
#projects{table-layout:fixed;width:2860px;font-size:14px}
#projects th{font-size:12px;white-space:normal;line-height:1.35;padding:12px}
#projects th button{white-space:normal;text-align:inherit}
#projects td{padding:12px;font-size:14px}
#projects th:first-child,#projects td:first-child{width:320px;min-width:320px;max-width:320px;position:sticky;left:0;text-align:left;background:#fff;box-shadow:1px 0 0 #dce2df;z-index:2;overflow-wrap:anywhere}
#projects thead th:first-child{z-index:4;background:#e8efec}
#projects th:nth-child(2),#projects td:nth-child(2){width:150px;text-align:left;white-space:normal;overflow-wrap:anywhere}
#projects th:nth-child(3),#projects td:nth-child(3){width:85px;text-align:center}
#projects th:last-child,#projects td:last-child{width:220px;white-space:normal}
#projects td .link{font-size:14px}
#projects td small{font-size:12px;margin-top:4px}
#projects tbody tr:nth-child(even),#projects tbody tr:nth-child(even) td:first-child{background:#f7f9f8}
#projects tbody tr:hover,#projects tbody tr:hover td:first-child{background:#edf4f2}
#projects .signal{font-size:12px}
#search{width:280px}
.sectionhead .actions{justify-content:flex-end}
header{padding-top:12px;padding-bottom:12px}
main{padding-top:24px}
.pagehead{margin-bottom:14px}
.kpis{margin:20px 0 24px}
.kpi{padding:15px}
@media(max-width:650px){#projects th:first-child,#projects td:first-child{width:200px;min-width:200px;max-width:200px}#projects{width:2740px}.sectionhead .actions{justify-content:flex-start}#search{width:100%}.tablewrap{max-height:70vh;max-height:70dvh}}
@media print{.tablewrap{max-height:none;overflow:visible;scrollbar-gutter:auto}.tablewrap thead th,#projects th:first-child,#projects td:first-child{position:static;box-shadow:none}#projects{width:100%;table-layout:auto;font-size:8px}#projects th,#projects td,#projects td .link,#projects td small{font-size:8px;padding:5px}#projects th:first-child,#projects td:first-child{width:auto;min-width:0;max-width:200px}#projects th:nth-child(2),#projects td:nth-child(2),#projects th:nth-child(3),#projects td:nth-child(3){width:auto}#projects .signal{font-size:8px}}

/* Complete report: every column fits the printable landscape width. */
@media print{
 @page{size:A4 landscape;margin:7mm}
 body{background:white}
 main{max-width:none;width:100%;margin:0;padding:0}
 .tablewrap{display:block;max-height:none!important;height:auto;overflow:visible!important;isolation:auto;border:0}
 #projects{width:100%!important;table-layout:fixed;border-collapse:collapse}
 #projects th,#projects td{display:table-cell;position:static!important;width:auto!important;min-width:0!important;max-width:none!important;padding:3px 2px;font-size:6px;line-height:1.3;white-space:normal!important;overflow-wrap:anywhere;box-shadow:none!important;letter-spacing:0}
 #projects th:first-child,#projects td:first-child{width:14%!important}
 #projects th:nth-child(2),#projects td:nth-child(2){width:6%!important}
 #projects th:last-child,#projects td:last-child{width:7%!important}
 #projects td .link,#projects th button,#projects td small,#projects .signal{font-size:inherit;line-height:inherit;white-space:normal;padding:0;overflow-wrap:anywhere}
 #projects td small{margin-top:2px}
 #projects thead{display:table-header-group}
 #projects tbody{display:table-row-group}
 #projects tr{break-inside:avoid;page-break-inside:avoid}
 .kpis{grid-template-columns:repeat(6,1fr);break-inside:avoid}
 .pagehead,.sectionhead{display:block;margin-bottom:8px}
 h1{font-size:20px}h2{font-size:14px}
}
