/* Schrift Inter (SIL Open Font License, siehe fonts/LIZENZ_Inter_OFL.txt) – mitgeliefert, damit es überall gleich aussieht */
@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/Inter-Regular.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/Inter-Medium.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/Inter-SemiBold.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(fonts/Inter-Bold.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(fonts/Inter-ExtraBold.woff2) format("woff2")}
:root{--ink:#0e1116;--ink2:#1f2a37;--muted:#5b6675;--line:#e1e5eb;--soft:#f4f6f8;--acc:#f2a900;--acc2:#d99400;--accsoft:#fff6dc;
--ok:#1e7b34;--warn:#b45309;--bad:#c0262d;--bg:#fff;--r:10px;--shadow:0 1px 2px rgba(14,17,22,.06),0 4px 14px rgba(14,17,22,.05)}
/* RailBau360 – Farben aus dem Logo: Graphit + Signalgelb */
*{box-sizing:border-box}body{margin:0;font:14px/1.5 Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink2);background:var(--soft)}
a{color:var(--ink2);text-decoration-color:var(--acc);text-underline-offset:2px}a:hover{color:#000}
header{background:var(--ink);color:#fff;display:flex;align-items:center;gap:4px 2px;padding:8px 16px;min-height:60px;flex-wrap:wrap;
  border-top:3px solid var(--acc);position:sticky;top:0;z-index:20;box-shadow:0 1px 0 rgba(255,255,255,.06)}
header .brand{font-weight:800;display:flex;align-items:center;gap:9px;color:#fff;font-size:18px;letter-spacing:-.3px;height:40px;margin-right:10px}
header .brand img{height:34px;width:34px}header .brand b{color:var(--acc);font-weight:800}
header > a{color:#c9d1dc;text-decoration:none;font-size:13px;font-weight:500;padding:7px 9px;white-space:nowrap;border-radius:999px;line-height:1}
header > a:hover{color:#fff;background:rgba(255,255,255,.06)}
header > a.on{color:#fff;background:rgba(255,255,255,.10);box-shadow:inset 0 -2px 0 var(--acc)}
header .sp{flex:1}header .who{display:flex;align-items:center;gap:10px;white-space:nowrap;margin-left:6px}header .who a{color:#c9d1dc;text-decoration:none;font-size:13px}
header .who button.sec{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.25)}header .who button.sec:hover{border-color:var(--acc);color:var(--acc)}
main{max-width:1180px;margin:22px auto;padding:0 18px}
.card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin-bottom:14px;box-shadow:var(--shadow)}
h1{font-size:24px;line-height:1.2;margin:0 0 8px;font-weight:800;letter-spacing:-.4px;color:var(--ink)}
h2{font-size:15px;margin:0 0 10px;color:var(--ink);font-weight:700;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.card>h2:first-child,.card>.folderhead h2{position:relative;padding-left:12px}
.card>h2:first-child::before,.card>.folderhead h2::before{content:"";position:absolute;left:0;top:2px;width:4px;height:16px;border-radius:2px;background:var(--acc)}
header .menubtn{display:none}
h2 a{text-decoration:none}
.eyebrow{font-size:11.5px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--acc);margin:0 0 8px;display:flex;align-items:center;gap:10px}
.eyebrow::after{content:"";width:28px;height:2px;background:var(--acc);opacity:.8}.eyebrow.dark{color:var(--acc2)}
.display{font-size:32px;line-height:1.12;letter-spacing:-.8px;font-weight:800;margin:0 0 10px}.display span{color:#9aa6b6;font-weight:700}
.lead{font-size:15px;color:#c3ccd8;max-width:720px;margin:0}
.hero{background:radial-gradient(1200px 260px at 85% -40%,rgba(242,169,0,.20),transparent 60%),var(--ink);color:#fff;border-radius:14px;padding:26px 28px;margin-bottom:16px}
.hero .display{color:#fff}
table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--line);padding:7px 9px;text-align:left;vertical-align:top}
th{background:var(--soft);font-weight:600;font-size:12px;letter-spacing:.2px;color:var(--muted)}
tr:hover>td{background:#fafbfc}
.muted{color:var(--muted);font-size:12.5px}
.tag{display:inline-block;white-space:nowrap;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:600;border:1px solid var(--line);background:var(--soft);color:var(--ink2)}
.tag.ok{background:#e3f3e7;color:var(--ok);border-color:#b9dfc3}.tag.warn{background:#fdf0de;color:var(--warn);border-color:#f2d3a5}
.tag.bad{background:#fde4e7;color:var(--bad);border-color:#f3b8c0}
.btn,button{display:inline-block;background:var(--acc);color:#1a1300;border:0;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;
  transition:background .15s,box-shadow .15s}
.btn:hover,button:hover{background:var(--acc2);box-shadow:0 4px 14px rgba(242,169,0,.35);color:#000}
.btn.sec,button.sec{background:#fff;color:var(--ink2);border:1px solid var(--line);font-weight:500}.btn.sec:hover,button.sec:hover{border-color:var(--ink2);box-shadow:none;background:#fff}
.btn.acc{background:var(--acc)}button.wide{width:100%;padding:10px 14px;font-size:14px}
form.inline{display:inline}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
label{display:block;font-weight:600;font-size:12.5px;margin:10px 0 4px}
input[type=text],input[type=date],input[type=time],input[type=email],input[type=number],input[type=password],input[type=month],input[type=url],input[type=search],select,textarea{width:100%;padding:8px 10px;border:1px solid #d3d9e1;border-radius:8px;font:inherit;background:#fff;color:var(--ink2)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--acc);outline-offset:0;border-color:var(--acc)}
.helptext{color:var(--muted);font-size:12px}
.errorlist{color:var(--bad);margin:2px 0;padding-left:18px}
.messages{list-style:none;padding:0;margin:0 0 12px}.messages li{padding:9px 14px;border-radius:8px;margin-bottom:6px;background:#e9eef6;border-left:3px solid var(--ink2)}
.messages li.error{background:#fde4e7;color:var(--bad);border-left-color:var(--bad)}.messages li.success{background:#e3f3e7;color:var(--ok);border-left-color:var(--ok)}
.messages li.warning{background:#fdf0de;color:var(--warn);border-left-color:var(--warn)}
/* Anmeldung: dunkle Bühne wie die Startseite */
body.auth{background:radial-gradient(900px 420px at 80% 0%,rgba(242,169,0,.16),transparent 60%),var(--ink);min-height:100vh}
body.auth main{max-width:1100px;margin:0 auto;min-height:100vh;display:flex;align-items:center}
.authwrap{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center;width:100%;padding:40px 0}
.authintro{color:#fff}.authlogo{height:64px;width:auto;margin-bottom:28px}.authintro .display{font-size:40px;color:#fff}
.card.login{max-width:400px;margin:0;width:100%;padding:24px 26px;border:0;box-shadow:0 20px 50px rgba(0,0,0,.35)}
@media (max-width:860px){.authwrap{grid-template-columns:1fr;gap:24px}.authintro .display{font-size:28px}.authlogo{height:48px;margin-bottom:16px}}
.formset td input,.formset td select,.formset td textarea{min-width:70px}
@media (max-width:860px){header .menubtn{display:inline-block;margin-left:auto;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.25);padding:6px 12px}
  header > a,header .sp,header .who{display:none}
  header.open > a{display:block;width:100%;padding:10px 8px;border-radius:8px;font-size:14px}
  header.open .who{display:flex;width:100%;padding:10px 8px 4px;border-top:1px solid rgba(255,255,255,.1);margin:6px 0 0}}
@media (max-width:700px){header{height:auto;padding:8px 12px;position:static}table{font-size:12.5px}.display{font-size:24px}.hero{padding:20px}}
.actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.btn.sm{padding:3px 8px;font-size:12px}
.folderhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.folderhead h2{margin:0}.folderhead.sub{margin:10px 0 6px}
.modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:8px}
.mode{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:6px;padding:10px 12px;cursor:pointer;font-weight:400}
.mode:has(input:checked){border-color:var(--acc);background:var(--accsoft)}
.copyrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}.copyrow input{flex:1;min-width:260px;font-family:ui-monospace,monospace;font-size:12.5px}
.linkpage .brandline{display:flex;align-items:center;gap:12px}.linkpage .brandline img{height:42px}
details summary{cursor:pointer}
ul#id_recipients,div#id_recipients{list-style:none;padding:0;margin:4px 0;display:grid;gap:4px}
.toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0 10px}.toolbar input,.toolbar select{width:auto}
.planwrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px}
table.plan{border-collapse:separate;border-spacing:0;width:100%;table-layout:fixed}
table.plan th,table.plan td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:3px;text-align:center;overflow:hidden;vertical-align:top;font-size:11.5px}
table.plan th.who,table.plan td.who{text-align:left;width:150px;position:sticky;left:0;background:#fff;z-index:1}
table.plan .we{background:#f1f2f5}table.plan th.today{background:var(--ink);color:var(--acc)}
.chip{display:block;border-radius:4px;padding:1px 4px;margin:1px 0;font-size:10.5px;font-weight:600;color:#1d2330;text-decoration:none;border:1.5px solid rgba(0,0,0,.18);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:top}
.chip.tentative{border-style:dashed}.chip.off{background:#e5e7eb;color:#5b6475;font-weight:500}
a.add{display:block;color:#b9bec9;text-decoration:none;font-size:16px;line-height:22px}a.add:hover{color:var(--ink);background:var(--accsoft)}
.legend .chip{margin-right:2px}
.errorbox{background:#fdf3f4;border-left:3px solid var(--bad);padding:8px 12px;margin-bottom:10px}.warnbox{background:#fff7ed;border-left:3px solid var(--warn);padding:8px 12px;margin-bottom:10px}
.errorbox ul,.warnbox ul{margin:4px 0 4px 18px;padding:0}
@media print{header,.toolbar,.actions,a.add,details,.btn{display:none!important}body{background:#fff}.card{border:0}}
main.wide{max-width:none}
.legend .chip{display:inline-block}
/* Ablage wie OneDrive */
.drive{display:flex;flex-direction:column;gap:6px}
details.folder{background:#fff;border:1px solid var(--line);border-radius:var(--r)}
details.folder>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:10px 14px;cursor:pointer;user-select:none}
details.folder>summary::-webkit-details-marker{display:none}
details.folder>summary::before{content:"▸";color:var(--muted);width:10px}details.folder[open]>summary::before{content:"▾"}
details.folder>summary:hover{background:var(--soft)}
.fname{font-weight:600}.fcount{color:var(--muted);font-size:12.5px}
.factions{margin-left:auto;display:flex;gap:4px;align-items:center}
.ico{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;border-radius:4px;text-decoration:none;background:none;border:0;color:inherit;font-size:15px;cursor:pointer;padding:0 4px}
.ico:hover{background:var(--soft)}
button.plus{width:30px;height:30px;border-radius:50%;background:var(--acc);color:#1a1300;font-size:20px;line-height:1;padding:0;font-weight:400}
button.plus:hover{background:var(--acc2)}
details.folder.sub{margin:4px 14px 8px 30px;border-style:dashed}
details.folder.sub>summary{padding:6px 10px}
table.files{margin:0 0 6px}table.files td{vertical-align:middle;padding:6px 10px}table.files .fi{width:30px;font-size:18px;text-align:center}
.rowact{white-space:nowrap;text-align:right;width:150px}.rowact form{display:inline}
details.folder>table.files,details.folder>.empty{margin-left:14px;margin-right:14px}.empty{padding:4px 0 12px}
.uploadpanel{margin:0 14px 12px;padding:12px;background:var(--soft);border-radius:6px}
.dropzone{border:2px dashed var(--line);border-radius:6px;padding:14px;margin-top:8px;display:flex;flex-direction:column;gap:6px;background:#fff}
details.folder.dragover{outline:3px dashed var(--acc);outline-offset:-3px;background:var(--accsoft)}
button.danger,.btn.danger{color:var(--bad);border:1px solid var(--bad);background:#fff}button.danger:hover{background:#fde4e7;box-shadow:none}
table.daylist td,table.daylist th{padding:5px 8px;font-size:13px}table.daylist tr.daystart td{border-top:2px solid var(--ink2)}
table.daylist tr.we td{background:#f1f2f5}
.pubnote{background:var(--accsoft);border-left:3px solid var(--acc);padding:9px 14px;margin-bottom:12px;border-radius:0 8px 8px 0}
button.plus.small{width:24px;height:24px;font-size:16px}
.uploadpanel .newfolder{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.inlineform .actions input,.newfolder .actions input{flex:1;min-width:200px;width:auto}
details.folder details.folder.sub{margin-left:22px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:20px}
.request{border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin-bottom:8px}.request p{margin:4px 0}
table.plan.vac th,table.plan.vac td{min-width:26px;padding:2px}table.plan.vac{table-layout:auto}
.vday{display:inline-block;width:22px;height:20px;line-height:20px;border-radius:3px;font-size:11px;font-weight:700;text-align:center}
.vday.ok{background:#bbf7d0;color:#14532d}.vday.req{background:#fef3c7;color:#92400e;border:1.5px dashed #d97706;line-height:17px}.vday.other{background:#e5e7eb;color:#5b6475}
.logoprev{height:64px;width:auto;border:1px solid var(--line);border-radius:8px;padding:6px;background:#fff;margin-top:6px}
/* Lohn & Unterlagen */
.bigdrop{align-items:center;text-align:center;padding:22px 14px;cursor:pointer;margin:12px 0 4px;transition:border-color .15s,background .15s}
.bigdrop:hover,.bigdrop.dragover{border-color:var(--acc);background:var(--accsoft)}.bigdrop.ready{border-style:solid;border-color:var(--ok);background:#eef8f1}
.bigdrop input[type=file]{position:absolute;width:1px;height:1px;opacity:0}
.bigdrop .dz-icon{width:42px;height:42px;border-radius:50%;background:var(--acc);color:#1a1300;display:inline-flex;align-items:center;justify-content:center;font-size:20px}
.bigdrop{position:relative;font-weight:400}
table.payrows td{vertical-align:middle}tr.payrow.dragover>td{background:var(--accsoft)!important;outline:none}tr.payrow.busy{opacity:.55}
.filepick{cursor:pointer;margin:0}
header .badge{display:inline-block;min-width:18px;padding:1px 6px;border-radius:999px;background:var(--acc);color:#1a1300;font-size:11px;font-weight:700;margin-left:3px;line-height:16px;text-align:center}
/* Passwortfelder mit Auge */
.pwwrap{position:relative;display:block}.pwwrap input{padding-right:42px}
.pweye{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:transparent;border:0;padding:4px 8px;font-size:15px;color:var(--muted);box-shadow:none;opacity:.55}
.pweye:hover{background:transparent;box-shadow:none;opacity:1}.pweye.on{opacity:1;color:var(--ink)}
.pwgen{margin-top:6px}.pwcell{white-space:nowrap}.pwval{font-family:ui-monospace,monospace;font-size:13px;background:var(--soft);padding:2px 6px;border-radius:4px}
@media (min-width:861px) and (max-width:1500px){header > a{padding:7px 6px;font-size:12.5px}header .brand{margin-right:4px}header .who{gap:8px}header .who .muted{max-width:110px;overflow:hidden;text-overflow:ellipsis}}
/* Bilddokumentation */
.photogrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:10px 0 14px}
.photo{border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}.photo img{width:100%;height:180px;object-fit:cover;border-radius:6px;background:var(--soft)}
.photo label{margin-top:6px}.photo .actions{margin-top:6px}
.inlinecheck{display:flex;gap:6px;align-items:center;font-weight:400;margin-top:6px}.inlinecheck input{width:auto}
header > a.brand,header.open > a.brand{display:flex!important;padding:0;width:auto;background:none!important;box-shadow:none!important;color:#fff;text-decoration:none;font-size:18px;border-radius:0}header > a.brand:hover{opacity:.85}
/* E-Rechnungen */
.invlines td{vertical-align:top}.invlines td:first-child input{font-weight:600}.invlines textarea{margin-top:4px;font-size:12.5px;min-height:30px}
.invlines .qty{width:90px}.invlines td:nth-child(3) select{min-width:112px}.invlines td:nth-child(5) select{min-width:120px}.invlines .inlinecheck{white-space:nowrap;font-size:12px;color:var(--muted)}.invlines .price{width:120px}.invlines tr.removed{opacity:.4}
.invsum{margin:10px 0 14px auto;max-width:380px}.invsum>div{display:flex;justify-content:space-between;gap:12px;padding:3px 0}
.invsum .total{border-top:2px solid var(--acc);margin-top:4px;padding-top:6px;font-size:15px}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;font-size:13.5px}.kv dt{color:var(--muted)}.kv dd{margin:0}
.invtable td{vertical-align:middle}
/* Bereichsfreigaben */
.areabox{border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:16px 0;background:var(--soft)}
.areabox h2{margin:0}.areagrp{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:1rem;margin:14px 0 0}.areagrp .actions{margin-left:auto}.arealist{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:8px;margin:10px 0}
.areaitem{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-weight:400;cursor:pointer;margin:0}
.areaitem input{width:auto;margin-top:3px}.areaitem:has(input:checked){border-color:var(--acc);background:var(--accsoft)}
.areaitem.admin{margin-top:6px}.areaitem.admin:has(input:checked){border-color:var(--bad);background:#fdf3f4}
.areatags{margin-top:3px}.areatags .tag{font-size:11px;margin:1px 0}
@media (min-width:861px) and (max-width:1440px){header > a{padding:6px 5px;font-size:12px;letter-spacing:-.1px}header .brand{font-size:16px;gap:6px}header .brand img{height:30px;width:30px}header .who{gap:6px;margin-left:2px}header .who a,header .who .muted{font-size:12px}}
/* Mein Profil */
header .who .profilelink{display:inline-flex;align-items:center;gap:7px}
.avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;flex:none}
.avatar.ph{background:var(--acc);color:#1a1300;font-size:11px;font-weight:700}
.avatar.big{width:96px;height:96px;font-size:30px}
.profilehead{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.profilehead h1{margin:0}
/* Stundennachweis */
.tstable td{padding:3px 6px;vertical-align:middle}.tstable input{padding:5px 7px;font-size:13px}
.tstable input.tm{width:78px;text-align:center}.tstable tr.we td,.tstable tr.hol td{background:#f3f4f6}.tstable tr.hol td:first-child{box-shadow:inset 3px 0 0 var(--acc)}
.tstable td:nth-child(3){min-width:260px;width:50%}.tstable .tstotal td{border-top:2px solid var(--acc)}
details.card>summary{cursor:pointer}
fieldset{min-width:0}
@media (max-width:520px){.grid,.grid2{grid-template-columns:1fr!important}.tstable td:nth-child(3){min-width:180px}}
.tstable td:nth-child(3) input{width:100%}.tstable{width:100%}
.tstable .cpcol{white-space:nowrap;text-align:center;width:72px}.tstable .cpcol .ico{font-size:15px;min-width:30px}
.tstable tr.flash td{background:var(--accsoft)!important;transition:background .2s}
/* Uhrzeit-Auswahl mit der Maus */
.tpick{position:absolute;z-index:50;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(15,23,42,.18);padding:10px;width:272px;font-size:13px}
.tpick .tp-h{font-weight:700;color:var(--muted);font-size:11px;letter-spacing:.5px;text-transform:uppercase;margin:2px 2px 6px}
.tpick .tp-grid{display:grid;gap:4px}.tpick .tp-hours{grid-template-columns:repeat(6,1fr)}.tpick .tp-mins{grid-template-columns:repeat(6,1fr);margin-top:4px}
.tpick button{background:#fff;color:var(--ink2);border:1px solid var(--line);padding:5px 0;font-size:13px;font-weight:500;border-radius:6px;box-shadow:none}
.tpick button:hover{border-color:var(--acc);background:var(--accsoft)}.tpick button.on{background:var(--acc);border-color:var(--acc);color:#1a1300;font-weight:700}
.tpick .tp-foot{display:flex;justify-content:space-between;margin-top:8px}.tpick .tp-foot button{padding:4px 10px}
.tstable .cpcol .ico{border:1px solid var(--line);margin:0 2px;background:#fff}
.progress{height:6px;background:var(--soft);border-radius:999px;overflow:hidden;margin-top:4px;max-width:240px}.progress span{display:block;height:100%;background:var(--acc)}
@media (min-width:861px) and (max-width:1900px){header > a{padding:6px 4px;font-size:11.5px}header .who{gap:5px}header .who .muted{display:none}}
@media (min-width:861px) and (max-width:1280px){header .brand span{display:none}}
@media (min-width:861px) and (max-width:1900px){header .who .pl-text{display:none}}
.zk-months td,.zk-months th{white-space:nowrap}.zk-in{width:50px;min-width:44px;text-align:right;padding:3px 4px}.zk-months td,.zk-months th{padding-left:4px;padding-right:4px}
.zk-sum table{width:100%}.zk-sum td{padding:5px 4px;border-bottom:1px solid #eef0f4}td.num,th.num{text-align:right}
td.welcome{white-space:nowrap}td.welcome .btn,td.welcome button{margin:1px 0}
.nxs{display:none}@media (min-width:861px) and (max-width:1900px){header .nx{display:none}header .nxs{display:inline}}
@media (min-width:861px) and (max-width:1100px){header > a{padding:5px 3px;font-size:10.5px}header .brand{margin-right:4px}}
/* Auswahllisten zum Eintippen */
.combo{position:relative;width:100%}.combo.inl{display:inline-block;width:auto;vertical-align:middle}
.combo-src{position:absolute!important;left:0;bottom:0;width:1px!important;height:1px;opacity:0;pointer-events:none;padding:0!important;border:0!important}
.combo-in{padding-right:30px!important;cursor:text;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235b6675' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat right 11px center}
.combo.inl .combo-in{width:auto}.combo-in.isnew{border-color:var(--ok);background-color:#f1faf3}
.combo-list{position:fixed;z-index:60;max-width:min(560px,92vw);max-height:300px;overflow:auto;margin:0;padding:4px;list-style:none;
  background:#fff;border:1px solid #d3d9e1;border-radius:8px;box-shadow:0 8px 24px rgba(14,17,22,.14)}
.combo-list li{padding:7px 10px;border-radius:6px;cursor:pointer;white-space:normal;line-height:1.3}
.combo-list li.act{background:var(--accsoft)}.combo-list li.sel{font-weight:600}.combo-list li.neu{color:var(--ok);font-weight:600;border-top:1px dashed var(--line);margin-top:2px}
.combo-list li.none{color:var(--muted);cursor:default}
.combo.inl{max-width:100%}.combo-in{max-width:100%;box-sizing:border-box;text-overflow:ellipsis}
@media (max-width:860px){main table:not(.plan){display:block;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}}
.stat{border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.stat b{font-size:20px}
.kvt th{width:160px;color:var(--muted);font-weight:500}
/* Projektanalyse */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
h2.stepnum{display:flex;align-items:center;gap:8px;margin-top:22px}h2.stepnum > span:first-child{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--ink);color:var(--acc);font-size:13px}
.vtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.vtile{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;cursor:pointer;margin:0;background:#fff;position:relative}
.vtile input{position:absolute;opacity:0;pointer-events:none}.vtile b{font-size:13.5px}.vtile .muted{font-size:12px}
.vtile:hover{border-color:var(--acc)}.vtile:has(input:checked){border-color:var(--acc);background:var(--accsoft);box-shadow:inset 0 0 0 1px var(--acc)}
.vtile:has(input:focus-visible){outline:2px solid var(--acc);outline-offset:2px}
.dlbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:12px 0 6px}.dlbar small{font-weight:500;opacity:.8;font-size:11px}
.dlmini{white-space:nowrap}.dlmini a{display:inline-block;font-size:11.5px;font-weight:600;border:1px solid var(--line);border-radius:6px;padding:1px 6px;margin:0 3px 3px 0;text-decoration:none;background:#fff}
.dlmini a:hover{border-color:var(--acc);background:var(--accsoft)}
details.auftrag{background:var(--soft);border-radius:8px;padding:8px 12px;margin:6px 0 10px}details.auftrag summary{cursor:pointer}details.auftrag p{margin:6px 0 0;white-space:normal}
.toc{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.toc a{font-size:12.5px;border:1px solid var(--line);border-radius:999px;padding:3px 10px;text-decoration:none;background:#fff}.toc a:hover{border-color:var(--acc)}
tr.current td{background:var(--accsoft)}p.ampel{font-size:15px}p.ampel .tag{font-size:13px;font-weight:700;text-transform:uppercase}
.card h3{font-size:14px;margin:14px 0 4px}
/* Urlaub: Feiertage und Urlaubskonto */
table.plan.vac th.holi{background:#ede9fe;color:#5b21b6}table.plan.vac td.holi{background:repeating-linear-gradient(135deg,#f5f3ff,#f5f3ff 4px,#ede9fe 4px,#ede9fe 8px)}
.ftmark{font-size:9px;font-weight:800;color:#6d28d9}.vday.ft{background:#7c3aed;color:#fff;font-size:9.5px;width:22px}.vday.wkend{color:#9ca3af;width:auto}
table.vacacc td.num,table.vacacc th.num{text-align:right;white-space:nowrap}table.vacacc b.neg{color:var(--bad)}table.vacacc b.low{color:var(--warn)}
.vbar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:#f1f2f5;min-width:120px}.vbar .t{background:#16a34a}.vbar .p{background:#86efac}.vbar .r{background:#e5e7eb}
table.plan td.who .rowhide{float:right;opacity:0;transition:opacity .15s}table.plan td.who:hover .rowhide,table.plan td.who .rowhide:focus-within{opacity:1}
table.plan td.who .rowhide .ico{font-size:13px;padding:0 3px;color:var(--muted)}.hiddenrow{display:inline-flex;align-items:center;gap:4px;margin:2px 10px 2px 0}
@media (hover:none){table.plan td.who .rowhide{opacity:.7}}
.rolechecks > div{display:flex;flex-wrap:wrap;gap:4px 16px}.rolechecks > div > div{margin:0}.rolechecks label{display:inline-flex;align-items:center;gap:6px;font-weight:500;margin:0}
.rolechecks > label{display:block}
/* Anmeldeseite: Bahnhofsbilder im Hintergrund (Überblendung), Text bleibt lesbar */
.authbg{position:fixed;inset:0;z-index:0;overflow:hidden;background:var(--ink)}
.authbg .slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.6s ease;transform:scale(1.04)}
.authbg .slide.on{opacity:1;animation:authzoom 16s ease-out forwards}
.authbg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,17,22,.86) 0%,rgba(14,17,22,.5) 45%,rgba(14,17,22,.12) 100%),linear-gradient(0deg,rgba(14,17,22,.35),transparent 35%)}
@keyframes authzoom{from{transform:scale(1.04)}to{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.authbg .slide{transition:none}.authbg .slide.on{animation:none;transform:none}}
body.auth main{position:relative;z-index:1}
.authcredit{position:fixed;right:14px;bottom:10px;z-index:1;margin:0;font-size:11px;color:rgba(255,255,255,.65);text-shadow:0 1px 2px rgba(0,0,0,.6);max-width:60vw;text-align:right}
@media (max-width:860px){.authbg::after{background:rgba(14,17,22,.86)}.authbg .slide{background-position:70% 0}}
.loginimgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.loginimg{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:var(--r);padding:8px}
.loginimg img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:6px}.loginimg.off{opacity:.5}.loginimg .muted{font-size:12px}
.authbg{pointer-events:none}.authwrap{position:relative;z-index:2}
.exportbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 10px;padding:8px 10px;background:var(--soft);border-radius:8px}
.exportbar input[type=date]{width:auto}.exportbar select{width:auto}
.projnum{margin:0 0 2px;font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}
.pkgadd{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px}.pkgadd input{flex:1 1 180px;width:auto}.pkgadd select{width:auto}
/* 5.0 Projektseite: Kopf mit Statusleiste und Kennzahlen, Abschnittsnavigation, Planpakete nach Bauteil/Raum */
.phead-top{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.phead-title{flex:1 1 420px;min-width:0}.phead h1{margin:0 0 6px;line-height:1.2}.phead-tags{margin:0 0 4px}.phead-meta{margin:0}
.phead-act{display:flex;gap:6px;flex-wrap:wrap}
.steps{list-style:none;display:flex;margin:16px 0 4px;padding:0;gap:3px;overflow-x:auto}
.steps li{flex:1 1 0;min-width:86px;position:relative;padding-top:10px;font-size:11.5px;color:var(--muted);text-align:center;line-height:1.25}
.steps li::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;border-radius:3px;background:var(--line)}
.steps li.done::before{background:#9cc9a7}.steps li.done{color:var(--ink2)}
.steps li.now::before{background:var(--acc);height:7px;top:-1px}.steps li.now{color:var(--ink);font-weight:700}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:14px}
.kpi{background:var(--soft);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.kpi .kl{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.kpi b{font-size:20px;color:var(--ink);line-height:1.2}.kpi b.kname{font-size:14px}.kpi small{color:var(--muted);font-size:12px}
.kpi.kbad{border-color:#f3b8c0;background:#fff5f6}.badtxt{color:var(--bad)!important;font-weight:600}
.bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin:4px 0 2px;flex:1 1 120px;min-width:80px}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--acc),#7cb87e);border-radius:3px}
.subnav{position:sticky;top:64px;z-index:5;display:flex;gap:4px;overflow-x:auto;background:rgba(244,246,248,.94);backdrop-filter:blur(4px);
  padding:6px 2px;margin:-4px 0 10px}
.subnav a{white-space:nowrap;text-decoration:none;font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink2)}
.subnav a:hover{border-color:var(--acc)}
[id]{scroll-margin-top:120px}
.formbtns{display:flex;flex-wrap:wrap;gap:6px}h3.sub{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:16px 0 4px}
.recent td{padding-top:5px;padding-bottom:5px}
.pgroup{border:1px solid var(--line);border-radius:var(--r);margin:10px 0;overflow:hidden}
.pghead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 12px;background:var(--soft);border-bottom:1px solid var(--line)}
.pghead b{font-size:15px}.pghead .pct{font-weight:700;min-width:44px;text-align:right}
.pkgtable td{vertical-align:top}.pkgtable select.pkst{width:auto;padding:4px 8px;font-size:12.5px;border-radius:999px;font-weight:600}
.st-freigegeben{background:#eef3fb;border-color:#bcd0ee}.st-ausfuehrung{background:#fdf0de;border-color:#f2d3a5}
.st-fertig{background:#e9f5ec;border-color:#b9dfc3}.st-abgenommen{background:#d7efdd;border-color:#9cc9a7;color:var(--ok)}
.cnts span{display:inline-block;font-size:11.5px;background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:1px 6px;margin:0 3px 3px 0}
.cnts span.m{background:#fde4e7;border-color:#f3b8c0;color:var(--bad)}
.pkgadd input.wide{flex:2 1 300px}.pkgadd input.narrow{flex:0 1 150px}
.dangerline{margin:6px 0 24px;text-align:right}
@media (max-width:700px){.subnav{top:56px}.steps li{min-width:72px;font-size:10.5px}}
.kpi .bar{flex:none;width:100%}
.cnts span.muted{border:0;background:none;padding:0}
/* 5.1 Projekt-Seitenleiste (dunkel) auf Projektseite, Formularen und Dokumenten */
main.pmode{margin:0;padding:0;max-width:none}
.pwrap{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:calc(100vh - var(--hh,63px))}
.pmain{padding:22px 26px 30px;max-width:1220px;width:100%;min-width:0}
.pmain > .messages{margin-top:0}
.psb{background:var(--ink);color:#c9d1dc;position:sticky;top:var(--hh,63px);height:calc(100vh - var(--hh,63px));overflow-y:auto;
  padding:14px 12px 24px;border-right:1px solid #1d232c;scrollbar-width:thin;scrollbar-color:#2a323d transparent}
.psb svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.psb-back{display:flex;align-items:center;gap:6px;color:#8b95a3;text-decoration:none;font-size:12.5px;padding:4px 8px;border-radius:8px}
.psb-back:hover{color:#fff;background:rgba(255,255,255,.05)}.psb-back svg{width:15px;height:15px}
.psb-head{margin:8px 4px 6px;padding:12px;border-radius:12px;background:linear-gradient(160deg,#1b222c,#141920);border:1px solid #232b36}
.psb-num{display:block;font-size:11px;font-weight:700;letter-spacing:.07em;color:var(--acc)}
.psb-name{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:#fff;font-size:14.5px;line-height:1.3;margin:3px 0 8px}
.psb-st{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:rgba(242,169,0,.14);color:#ffcf5c;border:1px solid rgba(242,169,0,.3)}
.psb-prog{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:12px;color:#aab3bf}.psb-prog .bar{margin:0;background:#2a323d;flex:1}
.psb-grp{margin:16px 10px 5px;font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#6b7684}
.psb-a{display:flex;align-items:center;gap:10px;color:#c9d1dc;text-decoration:none;font-size:13.5px;font-weight:500;padding:7px 10px;border-radius:9px;
  line-height:1.25;flex:1;min-width:0}
.psb-a span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.psb-a:hover{background:rgba(255,255,255,.06);color:#fff}
.psb-a.on{background:rgba(242,169,0,.13);color:#fff;box-shadow:inset 3px 0 0 var(--acc)}.psb-a.on svg{color:var(--acc)}
.psb-a em{font-style:normal;font-size:11px;font-weight:700;min-width:20px;text-align:center;padding:1px 6px;border-radius:999px;background:#232b36;color:#aab3bf}
.psb-a em.psb-bad{background:var(--bad);color:#fff}
.psb-row{display:flex;align-items:center;gap:2px;border-radius:9px}
.psb-new{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;color:#6b7684;flex:none;opacity:.55}
.psb-row:hover .psb-new,.psb-new:focus{opacity:1}.psb-new:hover{background:var(--acc);color:var(--ink)}
.psb-new svg{width:15px;height:15px;stroke-width:2.2}
@media (max-width:960px){
  .pwrap{grid-template-columns:minmax(0,1fr)}
  .psb{position:static;height:auto;padding:10px 12px;border-right:0}
  .psb-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:4px 0}.psb-name{margin:0;-webkit-line-clamp:1;flex:1 1 100%}
  .psb-prog{margin:0;flex:1 1 140px}
  .psb nav{display:flex;gap:4px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
  .psb-grp{display:none}.psb-a{flex:none;background:#1b222c;white-space:nowrap}.psb-a span{overflow:visible}
  .psb-row{flex:none}.psb-new{display:none}
  .pmain{padding:16px 14px 26px}
}
/* 5.2 Kopfzeile: feste Hauptpunkte + „Weitere Bereiche“ (nur freigegebene Fenster) */
@media (min-width:861px){header > a:not(.brand){padding:7px 11px;font-size:13.5px;letter-spacing:0}header .brand span{display:inline!important}
  header .brand{font-size:18px;margin-right:14px}}
@media (min-width:1180px){header .who .muted{display:inline}header .who .pl-text{display:inline}header .who{gap:10px}}
header details.more{position:relative}
header details.more > summary{list-style:none;cursor:pointer;color:#c9d1dc;font-size:13.5px;font-weight:500;padding:7px 11px;border-radius:999px;
  display:flex;align-items:center;gap:6px;white-space:nowrap;user-select:none}
header details.more > summary::-webkit-details-marker{display:none}
header details.more > summary:hover,header details.more[open] > summary{color:#fff;background:rgba(255,255,255,.08)}
header details.more > summary.on{color:#fff;background:rgba(255,255,255,.10);box-shadow:inset 0 -2px 0 var(--acc)}
header .caret{width:7px;height:7px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-left:2px;transition:transform .15s}
header details.more[open] .caret{transform:rotate(-135deg) translateY(-1px)}
.morepanel{position:absolute;top:calc(100% + 10px);left:0;z-index:40;background:#151a21;border:1px solid #2a323d;border-radius:12px;
  box-shadow:0 14px 40px rgba(0,0,0,.35);padding:12px;display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:6px 14px;min-width:420px}
.morepanel .mgrp p{margin:4px 8px 4px;font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#6b7684}
.morepanel a{display:flex;align-items:center;gap:6px;color:#d5dbe3;text-decoration:none;font-size:13.5px;padding:7px 8px;border-radius:8px}
.morepanel a:hover{background:rgba(255,255,255,.07);color:#fff}.morepanel a.on{background:rgba(242,169,0,.14);color:#fff;box-shadow:inset 3px 0 0 var(--acc)}
@media (max-width:860px){header details.more{display:none;width:100%}header.open details.more{display:block}
  header details.more > summary{padding:10px 8px;font-size:14px}
  .morepanel{position:static;min-width:0;grid-template-columns:1fr;box-shadow:none;margin:4px 0 6px;background:#12161c}}
/* 5.2 Übersicht mit dunkler Leiste */
.psb-me .psb-name{margin-bottom:10px}
.psb-cta{display:flex;align-items:center;justify-content:center;gap:6px;background:var(--acc);color:var(--ink);font-weight:700;font-size:13px;
  text-decoration:none;padding:8px 10px;border-radius:9px}.psb-cta:hover{background:#ffc21a}.psb-cta svg{width:15px;height:15px;stroke-width:2.4}
.psb-proj span{display:flex;flex-direction:column;white-space:normal;line-height:1.25}
.psb-proj span small{font-size:10.5px;font-weight:700;letter-spacing:.05em;color:#8b95a3}
.psb-proj span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.psb-more{color:#8b95a3;font-size:12.5px;padding-left:38px}.psb-empty{color:#6b7684;font-size:12.5px;margin:2px 10px 6px}
@media (max-width:960px){.psb-me{display:none}.psb-proj span small{display:none}.psb-more{padding-left:10px}}
.psb-proj span small{display:block}
/* 5.4 Mitarbeiter-Quadrat (Farbe aus der Einsatzplanung) statt Name */
.udot{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-1px;margin-left:5px;cursor:help}
/* 5.4 Projektanalyse: Sicherheitshinweis */
.safebox{border:1px solid #b9dfc3;background:linear-gradient(180deg,#f1faf3,#fff);border-radius:var(--r);padding:12px 16px;margin:6px 0 12px}
.safehead{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--ok)}
.safeicon{display:inline-flex;width:30px;height:30px;border-radius:50%;background:#e3f3e7;align-items:center;justify-content:center}
.safeicon svg{width:18px;height:18px;fill:none;stroke:var(--ok);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.safebox ul{margin:8px 0 0;padding-left:20px}.safebox li{margin:3px 0;color:var(--ink2)}
/* 5.6 Projekt aus Unterlagen */
.reviewcard{border:1px solid #f2d3a5;background:linear-gradient(180deg,#fff9ec,#fff)}
.psb-cta2{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:6px;color:#ffcf5c;font-weight:600;font-size:12.5px;text-decoration:none;
  padding:6px 10px;border-radius:9px;border:1px dashed rgba(242,169,0,.45)}.psb-cta2:hover{background:rgba(242,169,0,.1);color:#fff}
/* 5.8 Unterschreiben */
.sgtabs{display:flex;gap:6px;margin-bottom:8px}.sgtabs .on{border-color:var(--acc);background:var(--accsoft)}
.sgpad{width:100%;height:auto;aspect-ratio:3/1;border:2px dashed var(--line);border-radius:var(--r);background:#fff;touch-action:none;cursor:crosshair;display:block}
.sgprev{border:1px solid var(--line);border-radius:var(--r);background:repeating-conic-gradient(#f6f7f9 0 25%,#fff 0 50%) 0 0/16px 16px;padding:8px;text-align:center}
.sgprev img{max-width:100%;height:auto;max-height:150px}
.sgbar{position:sticky;top:var(--hh,63px);z-index:6;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;padding:10px 16px}
.sgkinds{display:flex;gap:6px;flex-wrap:wrap}.sgkind{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer;background:#fff;font-weight:600;font-size:13.5px}
.sgkind input{width:auto;margin:0}.sgkind:has(input:checked){border-color:var(--acc);background:var(--accsoft)}
.sghint{margin:0;flex:1 1 300px;font-size:12.5px}.sgcount{font-size:13px}
.sgpages{display:block;margin:12px 0;overflow:auto;max-height:calc(100vh - var(--hh,63px) - 90px);border-radius:var(--r);background:#e9ecf0;padding:14px;overscroll-behavior:contain}
.sgpage{position:relative;width:calc(min(100%,900px) * var(--sgz,1));margin:0 auto 16px;background:#fff;box-shadow:var(--shadow);border:1px solid var(--line);cursor:copy;user-select:none;-webkit-user-select:none;touch-action:pan-y}
.sgpage > img{display:block;width:100%;height:100%;pointer-events:none}
.sgpno{position:absolute;right:8px;bottom:6px;font-size:11px;color:var(--muted);background:rgba(255,255,255,.85);padding:1px 6px;border-radius:6px}
.sgbox{position:absolute;border:1.5px dashed #2563eb;background:rgba(37,99,235,.06) center/contain no-repeat;cursor:move;touch-action:none;box-sizing:border-box}
.sgbox.digital{border-color:#d97706;background-color:rgba(217,119,6,.06)}
.sgbox .sgx{position:absolute;top:-11px;right:-11px;width:22px;height:22px;border-radius:50%;border:0;background:var(--bad);color:#fff;font-size:12px;line-height:22px;padding:0;cursor:pointer}
.sgbox .sgr{position:absolute;right:-7px;bottom:-7px;width:14px;height:14px;border-radius:3px;background:#2563eb;cursor:nwse-resize;touch-action:none}
.sgbox.digital .sgr{background:#d97706}
.sgfinish{border-top:3px solid var(--acc)}
.sgzoom{display:flex;gap:4px;align-items:center}.sgzoom .sgzval{min-width:64px}
.sgpages.zoomed .sgpage{margin-left:0}
/* 6.0 Stundennachweis wie Excel: Tage markieren, kopieren/einfügen, Ausfüllkästchen, Einreichen */
.tsstatus{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:9px 14px;border-radius:var(--r);margin:8px 0 10px;border:1px solid var(--line);background:#fff;font-size:13.5px}
.tsstatus.st-eingereicht{border-color:#bcd0ee;background:#eef3fb}.tsstatus.st-geprueft{border-color:#b9dfc3;background:#e9f5ec}
.tsstatus.st-zurueck{border-color:#f2d3a5;background:#fdf0de}.tsstatus .tsreview{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.tshelp{font-size:12.5px}
.tsbar{position:sticky;top:var(--hh,63px);z-index:4;display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:var(--ink);color:#fff;
  padding:7px 12px;border-radius:9px;margin-bottom:8px}.tsbar .sec{background:#fff}.tsbar .tsclip{font-weight:400;opacity:.7}
.tstable td.rh{cursor:pointer;user-select:none;-webkit-user-select:none}.tstable td.rh:hover{background:var(--accsoft)}
.tstable tr.sel td{background:#fff3cd!important}.tstable tr.sel td.rh{box-shadow:inset 3px 0 0 var(--acc);font-weight:700}
.tstable tr.cut td{outline:1px dashed var(--acc);outline-offset:-1px}
.tstable td{position:relative}.tstable td.filltgt{background:#e7f1fb!important}
.fillh{position:absolute;width:9px;height:9px;background:var(--acc);border:1.5px solid #fff;right:2px;bottom:2px;cursor:ns-resize;z-index:3;border-radius:2px;touch-action:none}
/* v6.1 Outlook-Kalender und E-Mail-Assistent */
.mscal-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.mscal-day{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}
.mscal-date{margin:0 0 6px;font-weight:700;font-size:13px;color:var(--ink2)}
.mscal-ev{display:flex;flex-direction:column;border-left:3px solid var(--acc);padding:3px 0 3px 8px;margin:0 0 6px;font-size:13px}
.mscal-ev.free{border-left-color:var(--line)}.mscal-time{font-variant-numeric:tabular-nums;font-weight:600;font-size:12px}
.mscal-subj a{color:inherit}.mscal-loc{font-size:12px}.mscal-at{font-size:12px;margin:8px 0 0}
.msteps{margin:10px 0 14px;padding-left:22px;line-height:1.55}.msteps li{margin:0 0 9px}.msteps pre{background:#0f1729;color:#e8ecf4;padding:10px 12px;border-radius:8px;font-size:12.5px;overflow-x:auto}
.mskv{width:100%}.mskv th{width:230px;vertical-align:top;text-align:left}
.msrow{display:flex;gap:8px;align-items:center;margin:4px 0 10px}.msrow input{flex:1;min-width:0}
.msgrid{grid-template-columns:minmax(0,2fr) minmax(260px,1fr);align-items:start}
@media (max-width:900px){.msgrid{grid-template-columns:1fr}}
.msinbox{list-style:none;margin:0;padding:0}.msinbox li{border-bottom:1px solid var(--line)}
.msinbox a{display:flex;flex-direction:column;padding:8px 4px;color:inherit;text-decoration:none;font-size:13px}.msinbox a:hover{background:var(--accsoft)}
.msinbox li.unread b::before{content:"● ";color:var(--acc)}.msprev{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* v6.2 Mängel */
.dfkpi{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 12px}.dfkpi a{border:1px solid var(--line);border-radius:10px;padding:6px 12px;text-decoration:none;color:var(--ink2);background:#fff}
.dfkpi a b{font-size:18px;margin-right:4px;color:var(--ink)}.dfkpi a.on{border-color:var(--acc);box-shadow:inset 0 -3px 0 var(--acc)}.dfkpi a.bad b{color:var(--bad)}
.dffilter{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 10px}.dffilter select,.dffilter input{width:auto;min-width:150px;margin:0}
.dftable tr.over td{background:#fdf1f1}.dftable td{vertical-align:top}
.dfgrid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}@media (max-width:900px){.dfgrid{grid-template-columns:1fr}}
.dfbtns{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.dfevents{list-style:none;padding:0;margin:10px 0;border-left:2px solid var(--line)}.dfevents li{padding:4px 0 6px 12px;font-size:13px;position:relative}
.dfevents li::before{content:"";position:absolute;left:-6px;top:9px;width:10px;height:10px;border-radius:50%;background:var(--acc)}
.dfphotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.dfphotos figure{margin:0}
.dfphotos img{width:100%;height:120px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.dfphotos figcaption{font-size:12px;margin-top:4px}
.plbar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:8px 14px}
.pllegend{font-size:12.5px;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}.pllegend .pin{position:static;transform:none;width:14px;height:14px;display:inline-block;font-size:0}
.plview{overflow:auto;max-height:78vh;border:1px solid var(--line);border-radius:12px;background:#e9ecf2;margin-bottom:16px;touch-action:pan-x pan-y pinch-zoom}
.plpage{position:relative;width:100%;background:#fff;cursor:crosshair}.plpage img{width:100%;height:100%;display:block;user-select:none}
.plpage[data-mode=""]{cursor:default}
.pin{position:absolute;transform:translate(-50%,-50%);min-width:26px;height:26px;padding:0 5px;border-radius:13px;background:#c62828;color:#fff;font:700 12px/26px system-ui,sans-serif;text-align:center;
  text-decoration:none;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.45);z-index:2}
.pin.st-IN_ARBEIT{background:#e08a00}.pin.st-BESEITIGT{background:#1565c0}.pin.st-ABGENOMMEN{background:#2e7d32}.pin.old{border-style:dashed;opacity:.75}
.pin.moving{outline:3px solid var(--acc);animation:pinpulse 1s infinite}@keyframes pinpulse{50%{transform:translate(-50%,-50%) scale(1.25)}}
.plclick{position:absolute;width:22px;height:22px;border-radius:50%;border:3px solid var(--acc);transform:translate(-50%,-50%);z-index:3}
.sr{position:absolute;left:-9999px}
/* v6.2 Checklisten */
fieldset.plain{border:0;padding:0;margin:0;min-width:0}
.cltable-wrap{overflow-x:auto}.cltable{min-width:860px}.cltable td{padding:3px 4px}.cltable input[type=text]{margin:0;padding:6px 8px;font-size:13px}
.cltable td.c{text-align:center}.cltable th{font-size:12px}
.clitem{display:grid;grid-template-columns:minmax(0,1.6fr) auto minmax(0,1.2fr);gap:10px;align-items:center;padding:10px 8px;border-bottom:1px solid var(--line);border-left:4px solid var(--line)}
.clitem.res-IO{border-left-color:#2e7d32}.clitem.res-NIO{border-left-color:#c62828;background:#fdf3f3}.clitem.res-ENTF{border-left-color:#9aa3b2}
.cltext small{display:block;font-size:12px;margin-top:2px}
.clres{display:flex;gap:4px}.clr{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:13px;cursor:pointer;white-space:nowrap;background:#fff}
.clr input{margin:0}.clr-IO:has(input:checked){background:#e3f3e7;border-color:#2e7d32}.clr-NIO:has(input:checked){background:#fde4e4;border-color:#c62828}.clr-ENTF:has(input:checked){background:#eef0f4}
.clmore{display:flex;gap:6px;align-items:center}.clmore input{margin:0}
.clbtns{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:900px){.clitem{grid-template-columns:1fr}.clres{flex-wrap:wrap}.clr{padding:9px 14px;font-size:14px}}
.pllegend .pin{min-width:0;padding:0;width:14px;height:14px;border-radius:50%;border-width:2px}
.clmore button,.clmore .btn{white-space:nowrap}
/* v6.4 Koordination */
.tktable tr.over td{background:#fdf1f1}.tktable tr.done td{color:var(--muted);text-decoration:line-through}.tktable tr.done td.tkchk{text-decoration:none}
.tkchk{width:44px}.tkbox{width:30px;height:30px;padding:0;border-radius:8px;background:#fff;border:2px solid var(--line);color:transparent;font-weight:700}
.tkbox:hover{border-color:#2e7d32;color:#2e7d32}.tkbox.on{background:#2e7d32;border-color:#2e7d32;color:#fff}
.dftable td.r,.dftable th.r{text-align:right;white-space:nowrap}.dftable tr.sum td{border-top:2px solid var(--ink)}
.kibox{margin-top:12px;border:1px dashed var(--line);border-radius:10px;padding:8px 12px}.kibox summary{cursor:pointer;font-weight:600}
.tlcard{overflow-x:auto}.tl{min-width:900px}
.tlhead,.tlrow{display:grid;grid-template-columns:180px 1fr;align-items:center}
.tlscale,.tltrack{position:relative;height:30px;border-left:1px solid var(--line)}
.tlscale{height:38px}.tlscale span{position:absolute;top:2px;font-size:11px;line-height:1.2;color:var(--muted);padding-left:3px}.tlscale span.we{color:var(--bad)}
.tltrack i{position:absolute;top:0;bottom:0;border-left:1px solid #eef0f4}.tltrack i.we{background:rgba(198,40,40,.04)}
.tllabel{font-size:12.5px;padding-right:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tlproj{margin:12px 0 2px;font-weight:700;font-size:14px;border-top:1px solid var(--line);padding-top:8px}
.tlbar{position:absolute;top:6px;height:18px;border-radius:5px;background:#5b8def;font-size:11px;color:#fff;overflow:hidden;white-space:nowrap;padding:0 4px;line-height:18px}
.tlbar.night{background:#283d7a}.tlbar.poss{background:#e08a00}
.tltoday{position:absolute;top:0;bottom:0;border-left:2px solid var(--bad);z-index:2}
.tllegend .tlbar{position:static;display:inline-block;width:22px;height:10px;vertical-align:middle;margin:0 4px 0 12px}
.tlwarn{margin:6px 0 0;padding-left:18px;font-size:13px}
/* v6.5 Sicherheit, Suche, Mitteilungen, Einführung */
.tfcard{max-width:760px}.tfqr{margin:10px 0}.tfqr img{display:block;width:264px;height:264px;max-width:100%;image-rendering:pixelated;border:1px solid var(--line);border-radius:8px;background:#fff}
.tfcode{font-size:24px;letter-spacing:6px;max-width:220px;text-align:center}
.tfcodes{background:#0f1729;color:#f5b700;padding:14px 18px;border-radius:10px;font-size:18px;line-height:1.7;max-width:260px}
.hsearch{display:inline-flex;align-items:center;gap:4px}
.hsearch input{width:0;padding:6px 0;border:0;opacity:0;margin:0;border-radius:9px;background:#fff;color:var(--ink);font-size:13.5px;transition:width .15s,opacity .15s}
.hsearch.open input{width:220px;padding:6px 10px;opacity:1;border:1px solid #2b3550}
.hsearch input::placeholder{color:#8f99ad}
.hsbtn{background:transparent;border:0;padding:6px;margin:0;color:#c9cfdb;cursor:pointer;display:inline-flex;border-radius:8px}
.hsbtn:hover,.hsbtn:focus-visible{color:var(--acc);background:rgba(255,255,255,.06)}
.hsbtn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
.bell{position:relative;display:inline-flex;align-items:center;margin:0 10px 0 6px;color:#c9cfdb}.bell svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}
.bell b{position:absolute;top:-6px;right:-9px;background:var(--bad);color:#fff;font-size:11px;border-radius:9px;padding:0 5px;line-height:17px;min-width:17px;text-align:center}
.bell.on{color:#f5b700}
@media (max-width:900px){.hsearch{display:none}}
.srlist,.ntlist{list-style:none;margin:0;padding:0}.srlist li{display:flex;flex-direction:column;padding:8px 0;border-bottom:1px solid var(--line)}
.ntlist li{border-bottom:1px solid var(--line)}.ntlist a{display:flex;gap:12px;padding:10px 6px;text-decoration:none;color:inherit}.ntlist a:hover{background:var(--accsoft)}
.ntlist li.new{background:#fff8e1}.ntlist .nti{font-size:20px}.ntlist small{display:block}
.obcard{border:2px solid var(--acc)}.obsteps{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;padding:0;list-style:none;counter-reset:ob}
.obsteps li{counter-increment:ob;border:1px solid var(--line);border-radius:10px;padding:10px 12px 10px 44px;position:relative;font-size:13.5px}
.obsteps li::before{content:counter(ob);position:absolute;left:12px;top:10px;width:22px;height:22px;border-radius:50%;background:var(--acc);color:#111;font-weight:700;text-align:center;line-height:22px;font-size:12px}
.obsteps li span{display:block;color:var(--ink2);margin-top:3px}
.dffilter > div{width:auto;min-width:190px;flex:0 1 auto;margin:0}
/* v6.6 Microsoft 365 */
.msor{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;margin:14px 0 10px}.msor::before,.msor::after{content:"";flex:1;border-top:1px solid var(--line)}
.mslogin{display:flex;align-items:center;justify-content:center;gap:10px}.mslogin svg{width:18px;height:18px}
.tile{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fafbfc;line-height:1.9}
details.howto{margin:6px 0;border-top:1px solid var(--line);padding-top:6px}details.howto summary{cursor:pointer}
/* 7.1: dunkle Leiste auf allen Seiten */
main.shell{margin:0;padding:0;max-width:none}
main.shell.wide:not(.pmode) .pmain{max-width:none}
.psb-fold{display:flex;align-items:center;justify-content:center;margin:0 0 4px auto;width:28px;height:26px;padding:0;border-radius:8px;
  background:transparent;border:1px solid #2a323d;color:#8b95a3;font-size:15px;line-height:1;cursor:pointer}
.psb-fold:hover{color:#fff;border-color:#3a4553}
@media (min-width:961px){
  html.psbmin .pwrap:has(.psb.app){grid-template-columns:62px minmax(0,1fr)}
  html.psbmin .psb.app{padding:10px 8px}
  html.psbmin .psb.app .psb-fold{margin:0 auto 8px}html.psbmin .psb.app .psb-fold span{display:inline-block;transform:rotate(180deg)}
  html.psbmin .psb.app .psb-head,html.psbmin .psb.app .psb-grp,html.psbmin .psb.app .psb-proj,html.psbmin .psb.app .psb-more,
  html.psbmin .psb.app .psb-empty,html.psbmin .psb.app .psb-a span{display:none}
  html.psbmin .psb.app .psb-a{justify-content:center;padding:9px 0;position:relative}
  html.psbmin .psb.app .psb-a em{position:absolute;top:1px;right:1px;min-width:0;padding:0 4px;font-size:9.5px}
}
@media (max-width:960px){.psb-fold{display:none}}
.grid > *,.grid2 > *{min-width:0}
.sendways{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;padding:26px 14px;border:2px dashed var(--line);
  border-radius:12px;cursor:pointer;background:#fafbfc}
.dropzone:hover,.dropzone.over{border-color:var(--acc);background:#fff8e6}
.dropzone input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
/* 7.4 Plan-Eintragungen (Braunstrich) */
.mkbar{position:sticky;top:var(--hh,63px);z-index:5;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:10px 14px;margin:0}
.mkgrp{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.mktool{background:#fff;color:var(--ink);border:1px solid var(--line);padding:6px 10px;font-size:13.5px;border-radius:8px}
.mktool.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.mkcol{width:24px;height:24px;border-radius:50%;padding:0;border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}
.mkcol.on{box-shadow:0 0 0 2px var(--ink)}
.mkcol[data-col=braun]{background:#8b4513}.mkcol[data-col=rot]{background:#d91a1a}.mkcol[data-col=blau]{background:#1a4dd9}
.mkcol[data-col=gruen]{background:#0d8c33}.mkcol[data-col=schwarz]{background:#000}.mkcol[data-col=gelb]{background:#f2bf00}
.mkbar select{width:auto;padding:5px 8px}.mktextgrp input{width:260px;padding:6px 8px}
.mkhint{margin:6px 2px 0;font-size:12.5px}
.mkpages{display:block;margin:10px 0;overflow:auto;max-height:calc(100vh - var(--hh,63px) - 150px);border-radius:var(--r);background:#e9ecf0;padding:14px;overscroll-behavior:contain}
.mkpage{position:relative;width:calc(min(100%,900px) * var(--mkz,1));margin:0 auto 16px;background:#fff;box-shadow:var(--shadow);border:1px solid var(--line);user-select:none;-webkit-user-select:none}
.mkpages.zoomed .mkpage{margin-left:0}
.mkpage > img{display:block;width:100%;height:100%;pointer-events:none}
.mksvg{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}
.mkpages.pan .mksvg,.mkpages.space .mksvg{cursor:grab;touch-action:pan-x pan-y}
.mkpages.erase .mksvg{cursor:not-allowed}
.mksvg text{font-family:Helvetica,Arial,sans-serif;font-weight:700}
@media (max-width:700px){.mktextgrp input{width:100%}}
.mktextgrp input.need{border-color:var(--bad);box-shadow:0 0 0 3px rgba(220,38,38,.15)}

/* 7.8: Kopfzeile in einer Zeile – Name nur noch im Tooltip des Profilbilds, „Mein Profil“ erst auf breiten Bildschirmen */
@media (min-width:861px){header{flex-wrap:nowrap}header .who{flex-shrink:0}}
@media (min-width:861px) and (max-width:1700px){header .who .pl-text{display:none}}

/* 8.2: Seitenleiste ein-/ausblenden – Knopf ganz links in der Kopfzeile (bleibt immer sichtbar) */
.psb-fold{display:none}
.hfold{display:none;background:transparent;border:0;padding:6px;margin:0 8px 0 -6px;color:#c9cfdb;cursor:pointer;border-radius:8px}
.hfold:hover,.hfold:focus-visible{color:var(--acc);background:rgba(255,255,255,.06)}
.hfold svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
html.psbmin .hfold .hf-arrow{transform:rotate(180deg);transform-origin:14.25px 12px}
@media (min-width:961px){body:has(.psb.app) .hfold{display:inline-flex}}

/* 8.2: „Weitere Bereiche“ ohne Lücken (Spalten füllen sich von oben) und scrollbar, wenn der Bildschirm niedrig ist */
@media (min-width:861px){
  .morepanel{display:block;columns:2 190px;column-gap:14px;max-height:calc(100vh - var(--hh,63px) - 24px);overflow-y:auto;
    overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#2a323d transparent}
  .morepanel .mgrp{break-inside:avoid;margin-bottom:8px}
  .morepanel a{padding:6px 8px}
}
@media (max-width:860px){.morepanel{columns:1}}
