
:root{
  --navy:#1F3864; --orange:#E89A3C; --orange-soft:#FBEBD6;
  --bg:#F5F6F8; --paper:#FFFFFF; --ink:#1C2333; --ink2:#5A6478; --line:#D9DEE7;
  --ok:#2E7D4F; --ok-soft:#E3F3E9; --warn:#B7791F; --warn-soft:#FFF4DC; --mute-row:#F1F3F6; --zebra:#E3EDF9; --zebra-ok:#D6E9DC; --zebra-warn:#F8E6C8;
  --sr:#E89A3C; --it:#2F6DB5; --einlage:#7A5CC7;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#141922; --paper:#1C2330; --ink:#E8ECF3; --ink2:#A2ACBE; --line:#2E3747;
  --ok-soft:#1E3A2B; --warn-soft:#3A2F16; --mute-row:#202836; --orange-soft:#3A2D1C; --zebra:#1F2A3C; --zebra-ok:#22452F; --zebra-warn:#45381A;
}}
:root[data-theme="dark"]{
  --bg:#141922; --paper:#1C2330; --ink:#E8ECF3; --ink2:#A2ACBE; --line:#2E3747;
  --ok-soft:#1E3A2B; --warn-soft:#3A2F16; --mute-row:#202836; --orange-soft:#3A2D1C; --zebra:#1F2A3C; --zebra-ok:#22452F; --zebra-warn:#45381A;
}
*{box-sizing:border-box}
html{scrollbar-gutter:stable}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 Arial,Helvetica,sans-serif}
header{background:var(--navy);color:#fff;padding:14px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;position:sticky;top:0;z-index:40;box-shadow:0 2px 6px rgba(0,0,0,.25)}
:root{--kopfh:80px}
.logo{font-weight:bold;font-size:22px;letter-spacing:.5px}
.logo b{color:var(--orange)}
.logo small{display:flex;align-items:center;gap:8px;font-size:10.5px;font-weight:normal;letter-spacing:.32em;margin-top:-2px}
.logo small i{flex:1;height:2px;background:var(--orange);min-width:22px}
.hd-title{font-size:17px;font-weight:bold}
.hd-sub{font-size:12px;opacity:.8}
.hd-sp{flex:1}
.btn{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:6px;padding:7px 12px;font:inherit;cursor:pointer}
.btn:focus-visible,select:focus-visible,input:focus-visible,.tab:focus-visible{outline:2px solid var(--orange);outline-offset:1px}
.btn.primary{background:var(--orange);border-color:var(--orange);color:#fff;font-weight:bold}
.btn.primary:disabled{opacity:.45;cursor:not-allowed}
.btn.ghost{background:transparent;border-color:rgba(255,255,255,.4);color:#fff;padding:5px 9px;font-size:12.5px;white-space:nowrap}
main{padding:20px 24px;max-width:1500px;margin:0 auto}
.period{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:10px 14px;margin-bottom:12px}
.period label{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em}
.period select{font-weight:bold;color:var(--navy)}
.period .path{margin-left:auto;font-family:"Courier New",monospace;font-size:12px;color:var(--ink2)}
.steps{list-style:none;margin:0 0 14px;padding:0;display:flex;gap:0;flex-wrap:wrap}
.steps li{flex:1;min-width:170px;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);background:var(--paper);font-size:12px;color:var(--ink2);border-right:none}
.steps li:first-child{border-radius:6px 0 0 6px}.steps li:last-child{border-right:1px solid var(--line);border-radius:0 6px 6px 0}
.steps li b{width:22px;height:22px;border-radius:50%;background:var(--line);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;font-size:11px}
.steps li.done{color:var(--ok)}.steps li.done b{background:var(--ok);color:#fff}
.steps li.now{color:var(--navy);font-weight:bold;background:var(--orange-soft)}.steps li.now b{background:var(--orange);color:#fff}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.tab{border:1.5px solid var(--navy);background:var(--paper);color:var(--navy);border-radius:6px;padding:8px 14px;font:inherit;font-weight:bold;cursor:pointer;display:flex;gap:8px;align-items:center}
.tab.on{background:var(--navy);color:#fff}
.tab .cnt{background:var(--orange);color:#fff;border-radius:10px;font-size:11px;padding:1px 7px}
.tab .cnt.ok{background:var(--ok)}
.pane{display:none}.pane.on{display:block}
.subtabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.stab{border:1px solid var(--line);background:var(--paper);color:var(--ink2);border-radius:14px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer;display:flex;gap:6px;align-items:center}
.stab.on{border-color:var(--navy);color:var(--navy);font-weight:bold;background:var(--orange-soft)}
.stab .cnt{background:var(--line);color:var(--ink);border-radius:10px;font-size:11px;padding:0 6px}
.bar{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.stat{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:8px 14px;display:flex;flex-direction:column;min-width:130px}
.stat b{font-size:20px;font-variant-numeric:tabular-nums}
.stat span{font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.06em}
.stat.done b{color:var(--ok)} .stat.open b{color:var(--warn)}
.wrap{overflow-x:auto;background:var(--paper);border:1px solid var(--line);border-radius:6px}
table{border-collapse:collapse;width:100%;min-width:1180px}
th{background:var(--navy);color:#fff;text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:9px 10px;white-space:nowrap}
td{padding:8px 10px;border-top:1px solid var(--line);vertical-align:middle}
tr.mute td{background:var(--mute-row);color:var(--ink2)}
tr.ok td{background:var(--ok-soft)}
tr.grp td{background:var(--orange-soft);font-weight:bold;color:var(--navy);font-size:12px;letter-spacing:.04em}
td.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
td.amt.plus{color:var(--ok);font-weight:bold}
.pos{display:inline-block;min-width:34px;text-align:center;font-weight:bold;border:2px solid var(--orange);border-radius:50%;padding:3px 0;color:var(--navy)}
.pos.none{border-color:var(--line);color:var(--ink2);font-weight:normal}
.pos.fkk{border-radius:6px;background:var(--navy);color:#fff;border-color:var(--navy);font-size:11px;padding:4px 6px}
.partner b{display:block} .partner small{color:var(--ink2)}
select,input[type=text],input[type=date],input[type=number]{font:inherit;padding:5px 6px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--ink)}
select.gew{font-weight:bold;min-width:120px}
select.gew.sr{color:var(--sr)} select.gew.it{color:var(--it)} select.gew.srit{color:#1F8A8A}
select.gew.leer{color:var(--warn);border-color:var(--warn)}
.chips{display:flex;gap:4px}
.chip{border:1px solid var(--line);border-radius:12px;padding:2px 8px;font-size:11px;cursor:pointer;user-select:none;color:var(--ink2)}
.chip.on{background:var(--orange-soft);border-color:var(--orange);color:var(--ink);font-weight:bold}
.nr{font-family:"Courier New",monospace;font-weight:bold;color:var(--navy);white-space:nowrap}
tr.ok .nr{color:var(--ok)}
.file{display:flex;gap:6px;align-items:center;white-space:nowrap}
.file .fn{max-width:190px;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:var(--ink2)}
.file .fn.has{color:var(--ink);font-weight:bold}
.chk{width:22px;height:22px;accent-color:var(--ok);cursor:pointer}
.chk:disabled{cursor:not-allowed;opacity:.35}
.hint{font-size:11px;color:var(--warn);white-space:nowrap}
.toggle{cursor:pointer;color:var(--navy);text-decoration:underline;font-size:12px}
.note{background:var(--paper);border-left:4px solid var(--orange);padding:10px 14px;margin-bottom:14px;font-size:13px;color:var(--ink2)}
.note b{color:var(--navy)}
.addrow{display:grid;grid-template-columns:150px 1fr 120px 110px 120px 150px auto;gap:8px;align-items:end;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:12px 14px;margin-bottom:14px}
.addrow label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em}
.addrow label>*{font-size:14px;text-transform:none;letter-spacing:0}
.gtag{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:bold;color:#fff}
.gtag.SR{background:var(--sr)} .gtag.IT{background:var(--it)} .gtag.SRIT{background:linear-gradient(90deg,var(--sr) 50%,var(--it) 50%)} .gtag.leer{background:var(--warn)}
footer{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;color:var(--ink2);font-size:12px}
/* Druckansicht */
.pdf{margin-top:28px;background:var(--paper);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.pdf-tools{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px}
.sheet{background:#fff;color:#1C2333;margin:18px auto;width:min(100%,900px);min-height:1000px;padding:38px 42px;box-shadow:0 2px 12px rgba(0,0,0,.15);font-size:12px;overflow:auto;display:flex;flex-direction:column}
.sheet .top{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #E89A3C;padding-bottom:8px}
.sheet .logo{color:#1F3864;font-size:24px} .sheet .logo b{color:#E89A3C}
.sheet .right{text-align:right;font-size:11px;color:#5A6478}
.sheet h1{color:#1F3864;font-size:18px;margin:18px 0 2px}
.sheet h2{color:#1F3864;font-size:13px;margin:16px 0 4px;border-bottom:1px solid #E89A3C;padding-bottom:3px}
.sheet h2 span{color:#E89A3C;margin-right:8px}
.sheet .sub{color:#5A6478;font-style:italic;margin-bottom:8px}
.sheet table{min-width:0} .sheet th{background:#fff;color:#1F3864;border-bottom:1.5px solid #E89A3C;padding:5px 8px}
.sheet td{border-top:1px solid #E5E8EE;padding:5px 8px;color:#1C2333}
.sheet tr.mute td{background:#fff;color:#8A93A5}
.sheet .nr{color:#1F3864} .sheet .pos{border-color:#E89A3C;color:#1F3864;min-width:28px;padding:1px 0;font-size:11px}
.sheet .pos.none{border-color:#D9DEE7;color:#8A93A5} .sheet .pos.fkk{background:#fff;color:#1F3864;border:1.5px solid #1F3864}
.sheet .sum{display:flex;justify-content:flex-end;gap:30px;margin-top:8px;font-weight:bold;color:#1F3864}
.sheet .foot{margin-top:auto;border-top:1px solid #E89A3C;padding-top:8px;font-size:10px;color:#6B7486;display:flex;justify-content:space-between}
.sheet .tick{color:#2E7D4F;font-weight:bold}
.sheet .gtag{font-size:10px}
@media (max-width:700px){ main{padding:12px} header{padding:12px} .addrow{grid-template-columns:1fr 1fr} }

/* --- App-Ergänzungen --- */
a.logo{color:#fff;text-decoration:none}
a.btn{text-decoration:none;display:inline-block}
.flash{background:var(--ok-soft);border-left:4px solid var(--ok);padding:10px 14px;margin-bottom:14px;font-size:13px}
.version{text-align:center;color:var(--ink2);font-size:11px;padding:20px}
.karten{display:flex;gap:16px;flex-wrap:wrap}
.karte{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:16px 18px;min-width:280px;display:flex;flex-direction:column;gap:10px}
.karte h3{margin:0;color:var(--navy)} .grau{color:var(--ink2);font-size:12px;margin:0}
.karte label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink2)}
.period form{display:flex;gap:6px;align-items:center}
.period .menu{position:relative}
.nachw{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-bottom:14px}
.nw{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;font-size:12px}
.nw b{color:var(--navy)} .nw.ok{border-color:var(--ok);background:var(--ok-soft)}
.nw .fn{color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nw form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.nw input[type=file]{font-size:11px;max-width:200px}
.bad{color:#B3261E;font-weight:bold}
.kklist{font-size:12px;color:var(--ink2)}
td .del{color:#B3261E;cursor:pointer;font-size:12px;margin-left:4px}
.export{display:flex;gap:10px;flex-wrap:wrap;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:12px 14px;margin-top:14px}
.export form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
textarea.code{font-family:"Courier New",monospace;font-size:12px;width:100%;min-height:320px;border:1px solid var(--line);border-radius:5px;padding:8px;background:var(--paper);color:var(--ink)}
.set{display:grid;grid-template-columns:220px minmax(0,1fr);min-width:0;gap:10px 16px;align-items:start;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:16px;margin-bottom:14px}
.set label{color:var(--ink2);font-size:12px;text-transform:uppercase;letter-spacing:.05em;padding-top:6px}
.set input[type=text]{width:100%}
.set h3{grid-column:1/-1;margin:6px 0 0;color:var(--navy);border-bottom:1px solid var(--orange);padding-bottom:4px}
.tree{font-family:"Courier New",monospace;font-size:12px;background:var(--mute-row);padding:10px;border-radius:5px;white-space:pre;overflow-x:auto}
.filecell input[type=file]{display:none}

td.partner{min-width:240px} td.partner small{display:block;font-size:11px;line-height:1.3}

.nw label.klein{font-size:11px;color:var(--ink2);display:flex;gap:4px;align-items:center;text-transform:none;letter-spacing:0}
.btn.klein{font-size:11px;padding:4px 8px}

.btn.gefahr{border-color:#B3261E;color:#B3261E}.btn.gefahr:hover{background:#B3261E;color:#fff}

td.partner input.info{display:block;width:100%;margin-top:4px;font-size:11px;padding:3px 6px;border:1px dashed var(--line);border-radius:4px;background:transparent;color:var(--ink)}
td.partner input.info:focus{border-style:solid;background:var(--paper)}
.infotxt{font-size:11px;color:var(--ink2);margin-top:2px}
.pdfopt{font-size:12px;color:var(--ink2);display:flex;gap:6px;align-items:center}

/* Beleg fehlt */
.fehlt-badge{display:inline-block;background:#B3261E;color:#fff;font-size:10px;font-weight:bold;letter-spacing:.06em;border-radius:4px;padding:2px 7px;white-space:nowrap}
.fehlt{display:flex;flex-direction:column;gap:3px;min-width:220px}
.fehlt-kopf{display:flex;gap:6px;align-items:center}
.fehlt-grund{font-size:11px;color:#8A1C12;font-style:italic;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fehlt-btn{color:#B3261E;border-color:#F1C7C2}
.fehlt-btn:hover{background:#FDECEA}
tr.ok .fehlt-grund{color:#6B4A47}
.stat.warnst b{color:#B3261E}
.dlg{border:none;border-radius:8px;padding:0;width:min(560px,92vw);box-shadow:0 12px 40px rgba(0,0,0,.25);background:var(--paper);color:var(--ink);font:inherit}
.dlg::backdrop{background:rgba(31,56,100,.45)}
.dlg-kopf{display:flex;gap:10px;align-items:center;padding:14px 18px;border-bottom:3px solid var(--orange);color:var(--navy)}
.dlg-body{padding:14px 18px;display:flex;flex-direction:column;gap:8px}
.dlg-zeile{font-weight:bold}
.dlg-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);margin-top:6px}
.pflicht{background:#B3261E;color:#fff;border-radius:3px;padding:1px 5px;font-size:10px;margin-left:6px}
.dlg textarea{width:100%;font:inherit;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);resize:vertical}
.dlg-fuss{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--line)}

/* Login */
.login-body{background:var(--navy);min-height:100vh;display:flex;align-items:center;justify-content:center;margin:0}
.login-wrap{width:min(420px,92vw);padding:0}
.login{background:var(--paper);border-radius:10px;padding:34px 36px 26px;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 60px rgba(0,0,0,.35);border-top:5px solid var(--orange)}
.login-logo{font-weight:bold;font-size:30px;color:var(--navy);letter-spacing:.5px;align-self:flex-start}
.login-logo b{color:var(--orange)}
.login-logo small{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:normal;letter-spacing:.34em;color:var(--navy);margin-top:-3px}
.login-logo small i{width:60px;height:2px;background:var(--orange)}
.login h1{margin:8px 0 0;color:var(--navy);font-size:22px}
.login label{display:flex;flex-direction:column;gap:4px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2)}
.login input[type=text],.login input[type=password]{font:inherit;font-size:15px;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}
.login label.merken{flex-direction:row;align-items:center;text-transform:none;letter-spacing:0;font-size:13px}
.login .btn.primary{padding:11px;font-size:15px;margin-top:4px}
.login-fehler{background:#FDECEA;color:#8A1C12;border-left:4px solid #B3261E;padding:8px 12px;font-size:13px}
.login .version{padding:8px 0 0}
.tab-klein{border-collapse:collapse;min-width:0;width:100%} .tab-klein th{background:transparent;color:var(--navy);border-bottom:1.5px solid var(--orange);font-size:11px} .tab-klein td{padding:6px 8px;border-top:1px solid var(--line);font-size:13px}
/* Ordner-Editor */
.hilfe{background:var(--orange-soft);border-left:4px solid var(--orange);padding:8px 12px;font-size:13px;color:var(--ink)}
.set .zeile{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.set code{background:var(--mute-row);padding:1px 5px;border-radius:3px;font-size:12px}
.editor{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:14px;align-items:start}
.ed-links,.ed-rechts{border:1px solid var(--line);border-radius:6px;background:var(--paper);overflow:hidden}
.ed-kopf{display:grid;grid-template-columns:260px 1fr 1fr 150px;gap:8px;background:var(--navy);color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:8px 10px}
.ed-rechts .ed-kopf{grid-template-columns:1fr}
.ed-row{display:grid;grid-template-columns:260px 1fr 1fr 150px;gap:8px;align-items:center;padding:6px 10px;border-top:1px solid var(--line)}
.ed-row:nth-child(even){background:var(--mute-row)}
.ed-name{display:flex;align-items:center;gap:4px;min-width:0}
.ed-ind{font-family:"Courier New",monospace;color:var(--ink2);white-space:nowrap;font-size:13px}
.ed-name input{flex:1;min-width:0;font-weight:bold;color:var(--navy)}
.chips.wrap{flex-wrap:wrap;gap:3px}
.chips .sep{width:8px}
.ed-akt{display:flex;gap:3px;justify-content:flex-end}
.ed-fuss{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line);flex-wrap:wrap}
.warnbox{padding:8px 12px;font-size:12px;border-top:1px solid var(--line);color:var(--ink2)}
.warnbox.warn{background:#FFF4DC;color:#7A4E00}
.warnbox .ok{color:var(--ok);font-weight:bold}
.ed-rechts .tree{margin:0;border-radius:0;background:var(--paper);padding:12px;font-size:12px;line-height:1.5}
@media (max-width:1100px){.editor{grid-template-columns:1fr}.ed-kopf,.ed-row{grid-template-columns:220px 1fr 1fr 120px}}

/* Import-Vorschau */
.vs-datei{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:12px 14px;margin-bottom:14px}
.vs-titel{font-weight:bold;color:var(--navy);margin-bottom:8px}
.vs-kopf{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.vs-warn{background:#FFF4DC;border-left:4px solid #B7791F;color:#7A4E00;padding:10px 14px;margin-bottom:12px;font-size:13px;display:flex;flex-direction:column;gap:4px}
.vs-ok{background:var(--ok-soft);border-left:4px solid var(--ok);color:var(--ok);padding:10px 14px;margin-bottom:12px;font-weight:bold}
.vs-zeilen{display:flex;flex-wrap:wrap;gap:4px;max-width:640px}
.vs-z{font-size:11px;border:1px solid var(--line);border-radius:4px;padding:2px 6px;background:var(--paper);white-space:nowrap}
.vs-z.alt{opacity:.5;text-decoration:line-through}
.vs-z.spesen,.vs-z.kk_zahlung,.vs-z.fkk_einzug{background:var(--mute-row);color:var(--ink2)}
.vs-fuss{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}
/* Drop-Zone */
.drop{border:2px dashed var(--line);border-radius:8px;padding:14px 18px;text-align:center;color:var(--ink2);font-size:13px;margin-bottom:14px;background:var(--paper);transition:.15s}
.drop.over{border-color:var(--orange);background:var(--orange-soft);color:var(--navy)}
.drop b{color:var(--navy)}

/* Druckansicht je Reiter */
.druck{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 4px;padding:8px 12px;border:1px solid var(--line,#e5e8ee);border-radius:8px;background:#fafbfc}
.druck>span{font-weight:600;color:var(--navy,#1F3864);margin-right:auto}

.period .plab{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);font-weight:600;margin-right:4px}

/* Nachweis-Chips in der Zeitraum-Leiste */
.period .psep{width:1px;height:26px;background:var(--line);margin:0 2px}
.nwchips{display:flex;gap:6px;flex-wrap:wrap}
.nwchip{font:inherit;font-size:12px;font-weight:600;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--ink2);cursor:pointer;transition:.15s}
.nwchip.ok{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}
.nwchip.fehlt{border-color:var(--orange);background:var(--orange-soft);color:#9A5B12}
.nwchip:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.12)}
.nwstat{padding:8px 10px;border-radius:6px;font-size:13px}
.nwstat.ok{background:var(--ok-soft);color:var(--ok)} .nwstat.fehlt{background:var(--orange-soft);color:#9A5B12}
.nwform{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.nwform label.klein{font-size:11px;color:var(--ink2);display:flex;gap:4px;align-items:center;width:100%}
/* Drop-Overlay über der ganzen Seite */
.dropover{position:fixed;inset:0;background:rgba(31,56,100,.55);display:none;align-items:center;justify-content:center;z-index:900;pointer-events:none}
.dropover.on{display:flex}
.dropbox{background:var(--paper);border:3px dashed var(--orange);border-radius:14px;padding:36px 48px;text-align:center;color:var(--navy);display:flex;flex-direction:column;gap:8px;max-width:520px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.dropbox .dropico{font-size:40px;color:var(--orange)} .dropbox b{font-size:18px} .dropbox span{color:var(--ink2);font-size:13px}

/* Kopf: Zeitraum als Klappfelder */
.crumb{display:flex;align-items:center;gap:4px;font-size:14.5px;font-weight:bold;color:#fff;flex-wrap:wrap}
.crumb .crumb-app{opacity:.75;font-weight:normal;margin-right:6px}
.crumb select{appearance:none;-webkit-appearance:none;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);color:#fff;font:inherit;font-weight:bold;border-radius:6px;padding:4px 24px 4px 9px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23E89A3C'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}
.crumb select option{color:#1C2333;background:#fff;font-weight:normal}
.crumb .sep{opacity:.45;margin:0 3px}
.crumb form{display:inline-flex;margin-left:8px}
.imp{border:1px dashed rgba(255,255,255,.5);color:#fff;background:transparent;border-radius:6px;padding:6px 11px;font-size:13px;font:inherit;cursor:pointer}
.imp:hover{border-style:solid;background:rgba(255,255,255,.08)}
/* Schritt 2 mit Ampelpunkten und Popover */
.steps li.nw-step{cursor:pointer;position:relative;user-select:none}
.steps li.nw-step:hover{background:var(--mute-row)} .steps li.nw-step.now:hover{background:var(--orange-soft)}
.dots{display:inline-flex;gap:4px;margin-left:auto}
.dots i{width:9px;height:9px;border-radius:50%;background:var(--ok);display:block}
.dots i.f{background:var(--warn);box-shadow:0 0 0 2px var(--warn-soft)}
.pop{display:none;position:absolute;top:calc(100% + 8px);left:0;width:min(440px,92vw);background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 32px rgba(0,0,0,.2);padding:6px 0;z-index:50;font-weight:normal;color:var(--ink);cursor:default;text-align:left}
.pop::before{content:"";position:absolute;top:-6px;left:28px;width:10px;height:10px;background:var(--paper);border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.steps li.nw-step.open .pop{display:block}
.steps li.nw-step.open{outline:2px solid var(--orange);outline-offset:-2px}
.pop .row{display:flex;align-items:center;gap:10px;padding:8px 14px;font-size:12.5px}
.pop .row + .row{border-top:1px solid var(--line)}
.pop .row i{width:9px;height:9px;border-radius:50%;background:var(--ok);flex:none}
.pop .row i.f{background:var(--warn)}
.pop .row .nm{width:92px;font-weight:bold;color:var(--navy);flex:none}
.pop .row .fn{flex:1;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;min-width:0}
.pop .row form{flex:none}
.pop .foot{padding:8px 14px;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink2);display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.pop .foot label.klein{display:flex;gap:5px;align-items:center;text-transform:none;letter-spacing:0;font-size:11px}
.pop .foot2{justify-content:flex-start;gap:8px}

.steps li .sub{margin-left:auto;font-size:11px;color:var(--ink2);font-weight:normal;white-space:nowrap}
.steps li.done .sub{color:var(--ok)} .steps li.now .sub{color:var(--warn);font-weight:bold}
.steps li.go-step{cursor:pointer;user-select:none}
.steps li.go-step:hover{background:var(--mute-row)} .steps li.go-step.now:hover{background:var(--orange-soft)}
.steps li.nw-step .sub{margin-left:auto;margin-right:8px} .steps li.nw-step .dots{margin-left:0}

/* Nachweise-Knopf rechts in der Reiterzeile */
.nwbtn{margin-left:auto;position:relative;display:flex;align-items:center;gap:8px;padding:7px 12px;border:1.5px solid var(--line);border-radius:6px;background:var(--paper);cursor:pointer;user-select:none;font-size:13px}
.nwbtn .lab{font-weight:bold;color:var(--navy)}
.nwbtn .sub{font-size:11px;color:var(--ok)}
.nwbtn.nwfehlt{border-color:var(--warn)} .nwbtn.nwfehlt .sub{color:var(--warn);font-weight:bold}
.nwbtn:hover{background:var(--mute-row)} .nwbtn.open{outline:2px solid var(--orange);outline-offset:-2px}
.nwbtn .dots{margin:0} .nwbtn .pop{left:auto;right:0} .nwbtn .pop::before{left:auto;right:28px}
.nwbtn.open .pop{display:block}

/* Sichtbare Quartale */
.qgrid{display:flex;gap:8px;flex-wrap:wrap}
.qbox{display:flex;gap:8px;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:6px;background:var(--paper);cursor:pointer;min-width:200px}
.qbox span{display:flex;flex-direction:column} .qbox b{color:var(--navy)} .qbox small{color:var(--ink2);font-size:11px}
.qbox.aus{opacity:.55;background:var(--mute-row)} .qbox.aus b{text-decoration:line-through}
.crumb select option:disabled{color:#9aa3b5}

/* Rückfragen */
.rfcnt{background:var(--orange);color:#fff;border-radius:10px;font-size:11px;padding:1px 7px;font-weight:bold;margin-left:4px}
.rf-btn{color:var(--warn);border-color:#E8D5A8;margin-left:6px} .rf-btn:hover{background:var(--warn-soft)}
.rf-mark{display:inline-block;background:var(--warn);color:#fff;font-size:10px;font-weight:bold;letter-spacing:.06em;border-radius:4px;padding:2px 7px;white-space:nowrap}
.rf-badge{display:flex;gap:6px;align-items:center;margin-top:5px;flex-wrap:wrap}
.rf-text{font-size:11.5px;color:#7A5410;font-style:italic;max-width:300px}
.rf-ok{color:var(--ok);border-color:#BFDCC8} .rf-ok:hover{background:var(--ok-soft)}
tr.hatrf td{background:var(--warn-soft)} tr.hatrf.ok td{background:var(--warn-soft)}
tr.sprung td{animation:sprung 1.2s ease-in-out 3} @keyframes sprung{0%,100%{box-shadow:inset 0 0 0 0 var(--orange)}50%{box-shadow:inset 0 0 0 3px var(--orange)}}
.stat.rfst b{color:var(--warn)}
/* Dashboard */
.dash{margin-bottom:22px}
.dash-kopf{display:flex;align-items:center;gap:14px;margin-bottom:8px;flex-wrap:wrap}
.dash-kopf h2{font-size:16px;color:var(--navy);margin:0;display:flex;align-items:center;gap:8px}
.dash-tools{margin-left:auto;display:flex;gap:6px}
table.rf td small,.mkarte small{display:block;color:var(--ink2);font-size:11px}
tr.rfrow{cursor:pointer} tr.rfrow:hover td{background:var(--warn-soft)}
td.rftext{color:#7A5410;font-style:italic;max-width:360px}
.leer{background:var(--paper);border:1px dashed var(--line);border-radius:6px;padding:16px;color:var(--ink2);font-size:13px}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.mkarte{display:flex;flex-direction:column;gap:8px;background:var(--paper);border:1.5px solid var(--line);border-radius:8px;padding:12px 14px;text-decoration:none;color:var(--ink);transition:.15s}
a.mkarte:hover{border-color:var(--navy);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.08)}
.mkarte.fertig{border-color:var(--ok)}
.mk-kopf{display:flex;justify-content:space-between;align-items:baseline} .mk-kopf b{color:var(--navy);font-size:15px} .mk-kopf span{font-family:"Courier New",monospace;font-size:11px;color:var(--ink2)}
.mk-zahlen{display:grid;grid-template-columns:repeat(4,1fr);gap:4px} .mk-zahlen div{display:flex;flex-direction:column} .mk-zahlen b{font-size:17px;font-variant-numeric:tabular-nums} .mk-zahlen small{font-size:10px;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em}
.mk-zahlen .gut b{color:var(--ok)} .mk-zahlen .warn b{color:var(--warn)} .mk-zahlen .rot b{color:#B3261E}
.mk-fuss{font-size:11.5px;color:var(--ink2);border-top:1px solid var(--line);padding-top:6px}
.mkarte.neu{border-style:dashed} .mkarte.neu input,.mkarte.neu select{font:inherit;padding:5px 6px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}
.belegzelle{display:flex;flex-wrap:wrap;gap:6px;align-items:center} .belegzelle .rf-badge{width:100%;margin-top:0} .rf-btn{margin-left:0}

/* Kategorie */
.katz{display:inline-flex;align-items:center;gap:6px;white-space:nowrap} .katz i{width:10px;height:10px;border-radius:3px;flex:none;display:inline-block}
select.kat.leer{border-color:var(--orange);border-style:dashed;color:var(--warn);font-weight:bold}
.katlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-width:640px}
.katlist li{display:flex;gap:8px;align-items:center;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper);font-size:13px}
.katlist li input[type=color]{width:26px;height:22px;border:none;background:none;padding:0;cursor:pointer}
.katlist li .h{margin-left:auto;display:flex;gap:4px;align-items:center}
.katlist li form{display:inline-flex;gap:4px;align-items:center}
.katlist input[type=text]{font:inherit;padding:4px 6px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}
/* Übersicht v2 */
:root{--ein:#2E7D4F;--aus:#1F3864}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--aus:#7FA3E0}} :root[data-theme="dark"]{--aus:#7FA3E0}
.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:12px}
.kpi{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink);border-left:4px solid var(--line)}
a.kpi:hover{border-color:var(--navy);border-left-color:inherit}
.kpi b{font-size:22px;font-variant-numeric:tabular-nums;color:var(--navy)}
.kpi span{font-size:10.5px;color:var(--ink2);text-transform:uppercase;letter-spacing:.06em}
.kpi small{font-size:11px;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kpi.warn{border-left-color:var(--warn)} .kpi.warn b{color:var(--warn)}
.kpi.rot{border-left-color:#B3261E} .kpi.rot b{color:#B3261E}
.kpi.ok{border-left-color:var(--ok)} .kpi.ok b{color:var(--ok)}
.dgrid{display:grid;grid-template-columns:3fr 2fr;gap:12px;margin-bottom:12px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px 14px;min-width:0}
.card h3{margin:0;font-size:14px;color:var(--navy);display:flex;align-items:center;gap:8px}
.card .kopf{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-left:auto}
.seg button{border:none;background:var(--paper);color:var(--ink2);padding:5px 10px;font:inherit;font-size:12px;cursor:pointer}
.seg button.on{background:var(--navy);color:#fff;font-weight:bold}
select.mini{font:inherit;font-size:12px;padding:4px 6px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}
.chart{position:relative} .chart svg{width:100%;height:auto;display:block}
.chart .gl{stroke:var(--line);stroke-width:1} .chart .gl.ax{stroke:var(--ink2)} .chart .axt{fill:var(--ink2);font-size:10px} .chart .katt{fill:var(--ink);font-size:11.5px}
.chart .bar{cursor:pointer} .chart .bar:hover{opacity:.85}
.legend{display:flex;gap:14px;font-size:11.5px;color:var(--ink2);margin-top:6px;flex-wrap:wrap}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.tip{position:absolute;background:#1C2333;color:#fff;font-size:11.5px;padding:6px 9px;border-radius:6px;pointer-events:none;display:none;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.25);z-index:5}
.todo{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;max-height:420px;overflow:auto}
.todo li{display:flex;align-items:center;gap:10px;padding:8px 4px;border-top:1px solid var(--line);font-size:13px}
.todo li:first-child{border-top:none}
.todo input[type=checkbox]{width:16px;height:16px;accent-color:var(--ok);flex:none}
.todo .t{flex:1;min-width:0;cursor:pointer} .todo .t small{display:block;color:var(--ink2);font-size:11px} .todo .t .tt{margin-right:4px}
.todo .due{font-size:11px;padding:2px 7px;border-radius:10px;background:var(--mute-row);color:var(--ink2);white-space:nowrap}
.todo .due.heute{background:var(--warn-soft);color:var(--warn);font-weight:bold}
.todo .due.spaet{background:#FDECEA;color:#B3261E;font-weight:bold}
.av{width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;font-size:10px;font-weight:bold;display:inline-flex;align-items:center;justify-content:center;flex:none}
.av.o{background:var(--orange)}
.todo li.done .tt{text-decoration:line-through;color:var(--ink2)}
.todo .leer2,.cl .leer2{color:var(--ink2);font-size:12.5px;padding:10px 4px}
.tag{display:inline-block;font-size:10px;padding:1px 6px;border-radius:4px;background:var(--mute-row);color:var(--ink2);margin-right:3px}
.clz{font-size:10.5px;color:var(--ink2);margin-right:4px} .clz.ok{color:var(--ok)}
.infoz{font-size:11px;color:var(--ink2);margin-right:4px} .lnk{font-size:12px;color:var(--navy);text-decoration:none;margin-right:4px}
.neu{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;align-items:center}
.neu input[type=text]{flex:1;min-width:160px;font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}
.neu input[type=date]{font:inherit;font-size:12px;padding:5px 6px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}
.rfl{list-style:none;margin:0;padding:0}
.rfl li{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:7px 4px;border-top:1px solid var(--line);font-size:12.5px;cursor:pointer}
.rfl li:first-child{border-top:none} .rfl li:hover{background:var(--warn-soft)}
.rfl .nr{font-family:"Courier New",monospace;font-weight:bold;color:var(--navy);font-size:12px}
.rfl .txt{color:#7A5410;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.rfl .txt b{color:var(--ink);font-style:normal;margin-right:6px}
.rfl .von{font-size:11px;color:var(--ink2);white-space:nowrap}
.mk-saldo{font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink2)} .mk-saldo .plus{color:var(--ok);font-weight:bold}
.dlg-breit{width:min(680px,94vw)}
.dlg .feld{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);width:100%}
.dlg .zeile2{display:grid;grid-template-columns:1fr 1fr;gap:10px} .dlg .zeile2 label{display:flex;flex-direction:column;gap:3px}
.cl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.cl li{display:flex;gap:8px;align-items:center;font-size:13px;padding:3px 0} .cl li span.ok{text-decoration:line-through;color:var(--ink2)} .cl li .del{margin-left:auto}
@media (max-width:1000px){.dgrid{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}}
select.kat{max-width:160px}

/* Aufgaben: Zustand + Filter, Rückfragen-Auswahl */
.seg.gruen button.on{background:var(--ok)}
.chips{display:inline-flex;gap:4px;margin-left:auto}
.chip{border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:11.5px;color:var(--ink2);background:var(--paper);cursor:pointer}
.chip.on{border-color:var(--navy);color:var(--navy);font-weight:bold;background:var(--mute-row)}
.todo .due.fertig{background:var(--ok-soft);color:var(--ok)}
.rfl li{grid-template-columns:auto auto 1fr auto} .rfl li.sel{background:var(--warn-soft)}
.rfl .rfsel{width:15px;height:15px;accent-color:var(--orange)}
.rfl .hat{font-size:11px;color:var(--ok);white-space:nowrap}
.aktion{display:flex;gap:8px;align-items:center;padding:10px 12px;margin-top:8px;border:1.5px solid var(--orange);border-radius:8px;background:var(--orange-soft);font-size:13px;flex-wrap:wrap}
.aktion b{color:var(--navy)} .pfeil{color:var(--orange);font-weight:bold}
.box{border:1px dashed var(--line);border-radius:6px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}
.box .boxk{display:flex;gap:6px;align-items:center;font-size:13px;font-weight:bold;color:var(--navy)}
.cl li .lnk{margin-left:2px}

/* Zweizeilige Buchungszeile (Reiter 01–04) */
.pane table{min-width:1040px}
th.c-pos{width:56px} th.c-dat{width:64px} th.c-amt{width:118px;text-align:right} th.c-nr{width:196px} th.c-beleg{width:320px} th.c-chk{width:52px}
.thsub{font-weight:normal;opacity:.75;text-transform:none;letter-spacing:0;display:block;white-space:normal;line-height:1.2}
tr.z1 td{vertical-align:top;padding-bottom:2px}
tr.z2 td{border-top:none;padding-top:4px;padding-bottom:10px}
tr.z1 .partner b{font-size:14px} tr.z1 .partner small{font-size:11.5px;line-height:1.35}
tr.z1 td.amt{font-size:14px;white-space:nowrap}
.zuord{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.zuord .info{flex:1;min-width:240px;width:auto;margin:0}
.zuord select{font-size:12px;padding:3px 4px}
.zuord select.kat{max-width:170px}
.zuord .chips{margin:0} .zuord .rf-btn{margin-left:0}
.lab{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2)}
tr.z1.ok td,tr.z2.ok td{background:var(--ok-soft)}
tr.z1.hatrf td,tr.z2.hatrf td{background:var(--warn-soft)}
.chk+.hint{white-space:nowrap}
.zuord input.info{font-size:12px;padding:4px 8px;border:1px dashed var(--line);border-radius:6px;background:transparent;color:var(--ink);font-family:inherit}
.zuord input.info:focus{border-style:solid;background:var(--paper)}

/* Abgegebene Monate */
.abgeg{margin-top:14px;border:1px dashed var(--line);border-radius:8px;padding:8px 12px;background:var(--paper)}
.abgeg summary{cursor:pointer;font-size:13px;color:var(--ink2);font-weight:bold;list-style:none;display:flex;align-items:center;gap:6px}
.abgeg summary::before{content:"▸";color:var(--orange)} .abgeg[open] summary::before{content:"▾"}
.mkarte.abg{opacity:.75;border-style:dashed} .mkarte.abg:hover{opacity:1}
.btn.abgeg-on{border-color:var(--ok);color:var(--ok);background:var(--ok-soft)}
/* ---- Aufgaben: Kanban ⇄ Liste (v2.0) ---- */
.kb-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;margin-bottom:12px}
.kb-top .lab{font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em}
.kb-top .seg button .n{font-size:10px;background:rgba(0,0,0,.08);border-radius:8px;padding:0 6px;margin-left:2px}.kb-top .seg button.on .n{background:rgba(255,255,255,.25)}
.kb-top .btn.on{background:var(--orange-soft);border-color:var(--orange);color:var(--warn)}
.kb-eingang{display:flex;gap:8px;align-items:center;padding:10px 14px;margin-bottom:12px;background:var(--orange-soft);border-color:var(--orange)}
.kb-eingang input{flex:1;font-size:15px;padding:9px 12px;border:1px solid var(--line);border-radius:6px;font-family:inherit}
.kb-eingang .hint{font-size:12px;color:var(--warn);white-space:nowrap}
.board{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;align-items:start}
.board.arch{grid-template-columns:repeat(5,minmax(200px,1fr))}
.col{background:#EDF0F4;border-radius:10px;padding:8px;min-height:200px;display:flex;flex-direction:column}
:root[data-theme="dark"] .col,html:not([data-theme="light"]) .col{background:var(--mute-row)}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]) .col{background:#EDF0F4}}
.col h3{margin:2px 6px 8px;font-size:13px;display:flex;align-items:center;gap:8px;color:var(--navy)}
.col h3 .n{background:var(--paper);border:1px solid var(--line);border-radius:10px;font-size:11px;padding:0 8px;color:var(--ink2);font-weight:normal}
.col h3 .dot{width:10px;height:10px;border-radius:50%}
.col.c-neu h3 .dot{background:var(--ink2)}.col.c-arb h3 .dot{background:var(--it)}.col.c-wart h3 .dot{background:var(--orange)}.col.c-fertig h3 .dot{background:var(--ok)}.col.c-arch h3 .dot{background:#999}
.col h3 .wip{margin-left:auto;font-size:11px;color:var(--ink2);font-weight:normal}.col h3 .wip.over{color:#B3261E;font-weight:bold}
.liste{flex:1;min-height:120px;display:flex;flex-direction:column;gap:8px;border-radius:8px;padding:2px}
.liste.drag-over{outline:2px dashed var(--orange);background:var(--orange-soft)}
.k{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 12px;cursor:grab;position:relative;box-shadow:0 1px 2px rgba(0,0,0,.05);transition:box-shadow .15s}
.k:hover{box-shadow:0 4px 12px rgba(0,0,0,.12)}
.k.sortable-ghost{opacity:.35;border:2px dashed var(--orange);background:var(--orange-soft)}
.k.sortable-chosen{box-shadow:0 10px 24px rgba(0,0,0,.22);transform:rotate(1.5deg)}
.k.wichtig{border-left:4px solid #B3261E}.k.geparkt{border-style:dashed;opacity:.8}
.k .kt{display:flex;align-items:flex-start;gap:6px;padding-right:18px}.k .kt b{flex:1;font-size:14px;line-height:1.3}
.k .kt .ruf{color:#B3261E;font-weight:bold;font-size:16px;line-height:1;cursor:pointer;opacity:0;width:8px}.k:hover .kt .ruf{opacity:.4}.k.wichtig .kt .ruf{opacity:1}
.k .park{position:absolute;right:8px;top:8px;font-size:13px;opacity:.25;cursor:pointer}.k:hover .park{opacity:.8}
.k .info{font-size:12px;color:var(--ink2);margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.k .tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.tg{font-size:10px;background:var(--orange-soft);color:var(--warn);padding:1px 7px;border-radius:6px;text-decoration:none}.tg.rf{background:var(--warn-soft);color:var(--warn)}
.k .fuss{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:11px;color:var(--ink2)}.k .fuss .sp{flex:1}
.k .due,.kb-tab .due{font-size:11px;padding:1px 7px;border-radius:6px;background:var(--mute-row);color:var(--ink2);white-space:nowrap}
.due.rot{background:#FDECEA;color:#B3261E;font-weight:bold}.due.heute{background:var(--warn-soft);color:var(--warn);font-weight:bold}.due.ok{background:var(--ok-soft);color:var(--ok)}.due.kein{background:transparent;border:1px dashed var(--line)}
.k .av{width:22px;height:22px;border-radius:50%;background:var(--navy);color:#fff;font-size:10px;font-weight:bold;display:inline-flex;align-items:center;justify-content:center}
.k .clb{display:flex;align-items:center;gap:6px}.k .clb .bar{width:54px;height:5px;background:var(--line);border-radius:3px;overflow:hidden}.k .clb .bar i{display:block;height:100%;background:var(--ok)}
[hidden]{display:none!important}
.k.fertig .kt b{text-decoration:line-through;color:var(--ink2)}.k.fertig{opacity:.75}
.k .wart,.kb-tab .wart{font-size:11px;background:var(--orange-soft);color:var(--warn);border-radius:6px;padding:2px 8px;margin-top:6px;display:inline-block}
.k .tip{position:absolute;left:8px;right:8px;top:calc(100% - 4px);background:var(--ink);color:#fff;border-radius:8px;padding:8px 10px;font-size:12px;z-index:5;display:none;box-shadow:0 8px 20px rgba(0,0,0,.3)}
.k .tip b{display:block;font-size:11px;opacity:.7;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}.k .tip div{padding:2px 0}.k .tip div.ok{text-decoration:line-through;opacity:.6}
.k:hover .tip{display:block}
.board .leer{color:var(--ink2);font-size:12px;text-align:center;padding:24px 8px;border:1px dashed var(--line);border-radius:8px}
.kb-tab{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.kb-tab th{background:transparent;text-align:left;font-size:11px;color:var(--navy);border-bottom:2px solid var(--orange);padding:8px 10px;text-transform:uppercase;letter-spacing:.04em}
.kb-tab td{padding:8px 10px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:middle;cursor:pointer}.kb-tab tr:hover td{background:var(--mute-row)}
.kb-tab td.ruf{color:#B3261E;font-weight:bold}.kb-tab td.durch{text-decoration:line-through;color:var(--ink2)}
.kb-tab .st{font-size:11px;padding:2px 8px;border-radius:8px;font-weight:bold}.st.neu{background:var(--mute-row);color:var(--ink2)}.st.arb{background:#E3ECF8;color:var(--it)}.st.wart{background:var(--orange-soft);color:var(--warn)}.st.fertig{background:var(--ok-soft);color:var(--ok)}
.kb-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:9px 16px;border-radius:8px;font-size:13px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:99}.kb-toast.show{opacity:1}
/* Dialog */
.kb-ed{padding:0;width:640px;max-width:95vw;border:0;border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.3);overflow:hidden}
.kb-ed .h{background:var(--navy);color:#fff;padding:12px 18px;display:flex;align-items:center;gap:10px}
.kb-ed .h #edRuf{font-size:20px;font-weight:bold;cursor:pointer}
.kb-ed .h input{flex:1;font:inherit;font-size:16px;font-weight:bold;background:rgba(255,255,255,.12);border:0;border-radius:6px;color:#fff;padding:7px 10px}
.kb-ed .h .x{cursor:pointer;font-size:20px;opacity:.8}
.kb-ed .b{padding:14px 18px;display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}.kb-ed .b .full{grid-column:1/-1}
.kb-ed .fld label{display:block;font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}
.kb-ed .fld input,.kb-ed .fld select,.kb-ed .fld textarea{width:100%;font:inherit;border:1px solid var(--line);border-radius:6px;padding:7px 9px;background:var(--bg);color:var(--ink)}
.kb-ed .fld textarea{min-height:64px;resize:vertical}
.kb-ed .stseg{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.kb-ed .stseg span{flex:1;text-align:center;padding:7px 0;font-size:12px;color:var(--ink2);cursor:pointer;border-right:1px solid var(--line)}.kb-ed .stseg span:last-child{border-right:0}
.kb-ed .stseg span.on{color:#fff;font-weight:bold}.kb-ed .stseg span.on.neu{background:var(--ink2)}.kb-ed .stseg span.on.arb{background:var(--it)}.kb-ed .stseg span.on.wart{background:var(--orange)}.kb-ed .stseg span.on.fertig{background:var(--ok)}
.kb-ed .sw{display:flex;gap:14px;align-items:center}.kb-ed .sw label{display:flex;gap:6px;align-items:center;font-size:13px;cursor:pointer;text-transform:none;letter-spacing:0;color:var(--ink);margin:0}
.kb-ed .sw input,.kb-ed .edcl li input{width:auto;padding:0;margin:0}
.kb-ed .edcl{margin:0;padding:0;list-style:none}.kb-ed .edcl li{display:flex;gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid var(--line)}
.kb-ed .edcl li span{flex:1}.kb-ed .edcl li.ok span{text-decoration:line-through;color:var(--ink2)}.kb-ed .edcl li .rm{color:var(--ink2);cursor:pointer;flex:none}.kb-ed .edcl li .lnk{flex:none;text-decoration:none}
.kb-ed .cladd{display:flex;gap:6px;margin-top:6px}.kb-ed .cladd input{flex:1}
.kb-ed .f{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:8px;align-items:center}.kb-ed .f .meta{font-size:12px;color:var(--ink2);flex:1}
/* ---- DMS ---- */
.dms-drop{border:2px dashed var(--orange);background:var(--orange-soft);border-radius:8px;padding:10px 16px;margin-bottom:12px;color:var(--warn);font-size:13px}
.dms-side{display:grid;grid-template-columns:200px 1fr;gap:14px;align-items:start}
.dms-filt{display:flex;flex-direction:column;gap:6px}
.fl{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13px}
.fl h4{margin:0 0 6px;font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em}
.fl div{display:flex;justify-content:space-between;gap:6px;padding:3px 4px;border-radius:4px;cursor:pointer}.fl div:hover{background:var(--bg)}.fl div.on{background:var(--navy);color:#fff}
.fl div .t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fl div span:last-child{color:var(--ink2);font-size:11px;flex:none}.fl div.on span{color:#fff}
.dms-lay{display:grid;grid-template-columns:minmax(0,1fr) 10px var(--detw,380px);gap:8px;align-items:start}
.dms-griff{width:10px;align-self:stretch;cursor:col-resize;border-radius:5px;position:sticky;top:calc(var(--kopfh,76px) + 12px);height:calc(100vh - var(--kopfh,76px) - 60px);display:flex;align-items:center;justify-content:center;color:var(--line)}
.dms-griff::before{content:"";width:3px;height:44px;border-radius:2px;background:var(--line)} .dms-griff:hover::before,.dms-griff.zieht::before{background:var(--orange)}
body.zieht{cursor:col-resize;user-select:none}
.dms-grid{display:grid;grid-template-columns:repeat(auto-fill,var(--kachel,190px));gap:10px;justify-content:start}
.dok{background:var(--paper);border:1px solid var(--line);border-radius:8px;overflow:hidden;cursor:pointer;position:relative}
.dok:hover{box-shadow:0 4px 12px rgba(0,0,0,.12)}.dok.sel{outline:2px solid var(--orange)}
.dok .th{height:var(--kachelh,230px);background:#f1f3f6;border-bottom:1px solid var(--line);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.dok .th img{max-width:calc(100% - 16px);max-height:calc(100% - 16px);object-fit:contain;box-shadow:0 1px 4px rgba(0,0,0,.2);border:1px solid #cfd6df;background:#fff}
.noimg{color:var(--ink2);font-size:12px;border:1px dashed var(--line);padding:18px 24px;border-radius:6px}
.q{font-size:10px;padding:2px 7px;border-radius:6px;font-weight:bold}.dok .th .q{position:absolute;top:6px;left:6px;z-index:1}
.q.b{background:#E3ECF8;color:var(--it)}.q.n{background:var(--ok-soft);color:var(--ok)}.q.f{background:var(--orange-soft);color:var(--warn)}
.dok .th .ocr{position:absolute;top:6px;right:6px;font-size:10px;color:var(--ink2);background:#fff;border:1px solid var(--line);border-radius:6px;padding:1px 5px;z-index:1}
.dok .m{padding:8px 10px}.dok .m b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dok .m small{color:var(--ink2);font-size:11px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dms-list{display:flex;flex-direction:column;gap:4px}
.dms-list .row{display:flex;gap:10px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:13px}
.dms-list .row.sel{outline:2px solid var(--orange)}.dms-list .row:hover{background:var(--mute-row)}
.dms-list .row .th{width:36px;height:46px;flex:none;display:flex;align-items:center;justify-content:center;overflow:hidden}.dms-list .row .th img{max-width:100%;max-height:100%}.dms-list .row .th .noimg{padding:4px;font-size:9px}
.dms-list .row .t{flex:1;min-width:0}.dms-list .row .t b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dms-list .row .t small{color:var(--ink2);font-size:11px}
.dms-list .row .m{flex:none;font-size:11px;color:var(--ink2);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dms-det{position:sticky;top:12px;overflow:hidden}
.dms-det .th{height:220px;background:var(--mute-row);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden}.dms-det .th img{max-height:96%;max-width:80%;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.dms-det div.b{padding:12px 14px}.dms-det h3{margin:0 0 2px;font-size:15px;color:var(--navy)}
.dms-det .kv{display:grid;grid-template-columns:100px 1fr;gap:5px 8px;font-size:13px;margin:10px 0}.dms-det .kv .kk{color:var(--ink2);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding-top:5px}
.dms-det .kv .v input,.dms-det .kv .v select,.dms-det .zu select{width:100%;font:inherit;border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:var(--bg);color:var(--ink)}
.dms-det .src{background:#E3ECF8;border-left:4px solid var(--it);border-radius:6px;padding:8px 10px;font-size:13px;margin:8px 0}.dms-det .src a{color:var(--it);font-weight:bold}
.dms-det .zu{background:var(--orange-soft);border-left:4px solid var(--orange);border-radius:6px;padding:8px 10px;font-size:13px;margin:8px 0}.dms-det .zu .row{display:flex;gap:6px;margin-top:6px}
.dms-det .ocrbox{font-size:12px;background:var(--bg);border-radius:6px;padding:6px 8px;max-height:90px;overflow:auto}
.dms-det .act{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;align-items:center}
.dms-det .leer{padding:40px 10px;text-align:center;color:var(--ink2)}
.belegzelle .anh{font-size:11px;background:var(--orange-soft);color:var(--warn);border-radius:6px;padding:1px 6px;text-decoration:none;margin-left:4px;white-space:nowrap}
/* ---- Abgabe & Sperre ---- */
.lock{display:flex;gap:12px;align-items:center;background:var(--ok-soft);border:1px solid #bfe3cc;border-radius:6px;padding:10px 14px;margin-bottom:12px}
.lock.nach{background:#FDECEA;border-color:#f0c4be}
.lock .ico{font-size:22px}.lock b{display:block;font-size:13px}.lock small{color:var(--ink2);font-size:12px;display:block}
.prot-abg td{background:var(--ok-soft);font-weight:bold}.prot-oef td{background:#FDECEA}
.warnbox{background:var(--warn-soft);border-left:4px solid var(--orange);padding:8px 12px;border-radius:4px;font-size:13px}
.okbox{background:var(--ok-soft);border-left:4px solid var(--ok);padding:8px 12px;border-radius:4px;font-size:13px}
.mk-status{font-size:10px;padding:2px 8px;border-radius:8px;font-weight:bold}.mk-status.nach{background:#FDECEA;color:#B3261E}.mk-status.abg{background:var(--ok-soft);color:var(--ok)}
.mkarte.nach{border-color:#B3261E}
/* ---- Aufgaben: Kalender ---- */
.cal-top{margin-bottom:10px}
.cal-monat,.qm{background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.cal-monat .hdr,.qm .hdr{display:grid;grid-template-columns:44px repeat(7,1fr);background:var(--navy);color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.qm .hdr{grid-template-columns:repeat(7,1fr)}
.cal-monat .hdr div{padding:6px 8px;text-align:left}.cal-monat .hdr::before{content:"";}
.cal-monat .row{display:grid;grid-template-columns:44px repeat(7,1fr);border-top:1px solid var(--line)}
.cal-monat .kw{font-size:10px;color:var(--ink2);padding:6px 4px;text-align:center;background:var(--mute-row);border-right:1px solid var(--line);writing-mode:vertical-rl;transform:rotate(180deg)}
.cd{min-height:104px;border-right:1px solid var(--line);padding:4px 5px;display:flex;flex-direction:column;background:var(--paper)}
.cd:last-child{border-right:0}.cd.we{background:var(--bg)}.cd.aus{opacity:.35}.cd.past .dn span{color:var(--ink2)}
.cd.heute{background:var(--orange-soft);box-shadow:inset 0 0 0 2px var(--orange)}
.cd .dn{display:flex;align-items:center;font-size:12px;font-weight:bold;color:var(--navy);margin-bottom:3px}.cd .dn i{margin-left:auto;font-style:normal;font-size:10px;background:var(--navy);color:#fff;border-radius:8px;padding:0 6px}
.cd .cl2{display:flex;flex-direction:column;gap:3px;flex:1;min-height:24px}
.cc{display:flex;align-items:center;gap:5px;font-size:11.5px;line-height:1.25;padding:3px 6px;border-radius:6px;background:var(--mute-row);cursor:grab;overflow:hidden;border-left:3px solid var(--ink2)}
.cc .t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc .m{font-size:10px;color:var(--ink2);white-space:nowrap}
.cc.neu{border-left-color:var(--ink2)}.cc.arb{border-left-color:var(--it);background:#E3ECF8}.cc.wart{border-left-color:var(--orange);background:var(--orange-soft)}.cc.fertig,.cc.arch{border-left-color:var(--ok);background:var(--ok-soft);opacity:.75}
.cc.fertig .t,.cc.arch .t{text-decoration:line-through;color:var(--ink2)}
.cc.w{box-shadow:inset 0 0 0 1px #B3261E}.cc .r{color:#B3261E;margin-right:3px}.cc.p{border-style:dashed}
.cc:hover{box-shadow:0 2px 8px rgba(0,0,0,.15)}
.cd .mehr{font-size:10px;color:var(--navy);cursor:pointer;padding:2px 4px}
.cal-woche{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.cal-woche .cd{min-height:520px;border:1px solid var(--line);border-radius:10px;padding:8px}.cal-woche .cd .dn{font-size:13px}.cal-woche .cc{white-space:normal;padding:6px 8px;flex-direction:column;align-items:flex-start;gap:2px}.cal-woche .cc .t{white-space:normal}
.cal-ueber{background:#FDECEA;border:1px solid #f0c4be;border-radius:10px;padding:8px 12px;margin-bottom:10px}.cal-ueber b{font-size:12px;color:#B3261E;display:block;margin-bottom:4px}.cal-ueber .cl2{display:flex;flex-wrap:wrap;gap:6px}.cal-ueber .cc{flex:0 1 240px}
.cal-quartal{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.qm h4{margin:0;padding:8px 12px;font-size:14px;color:var(--navy);display:flex;justify-content:space-between;align-items:center}.qm h4 .grau{font-size:11px;font-weight:normal}
.qm .hdr div{padding:4px 0;text-align:center}.qm .row{display:grid;grid-template-columns:repeat(7,1fr)}
.qd{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:12px;position:relative;cursor:pointer;border-top:1px solid var(--line);border-right:1px solid var(--line);color:var(--ink)}
.qd:last-child{border-right:0}.qd.aus{background:var(--bg);cursor:default}.qd.heute{box-shadow:inset 0 0 0 2px var(--orange);font-weight:bold}
.qd i{position:absolute;right:3px;top:3px;font-style:normal;font-size:9px;border-radius:7px;padding:0 4px;background:var(--line);color:var(--ink)}
.qd.hat{background:#E3ECF8}.qd.hat i{background:var(--it);color:#fff}.qd.rot{background:#FDECEA}.qd.rot i{background:#B3261E;color:#fff}.qd.done{background:var(--ok-soft)}.qd.done i{background:var(--ok);color:#fff}
.qd:hover:not(.aus){outline:2px solid var(--orange);z-index:1}

/* Zeilenfarben (Zebra) je Buchung – umschaltbar, graue Zeilen bleiben grau */
.zebraBtn{margin-left:auto} .zebraBtn.on{background:var(--navy);color:#fff;border-color:var(--navy)}
body.zebra tr.zb td{background:var(--zebra)}
body.zebra tr.zb.ok td{background:var(--zebra-ok)}
body.zebra tr.zb.hatrf td{background:var(--zebra-warn)}

/* Einstellungen: feste Rubriken-Spalte links, Inhalt rechts */
.setsplit{display:grid;grid-template-columns:210px 1fr;gap:16px;align-items:start}
.setnav{position:sticky;top:12px;display:flex;flex-direction:column;gap:4px;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:8px}
.setnav button{text-align:left;font:inherit;font-size:13.5px;padding:9px 11px;border:1px solid transparent;border-radius:6px;background:none;color:var(--ink);cursor:pointer}
.setnav button:hover{background:var(--bg);border-color:var(--line)}
.setnav button.on{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:600}
.setmain .set{margin-bottom:0}
.setsave{margin-top:12px;display:flex;gap:12px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:10px 14px}
.set .schalter{display:flex;gap:8px;align-items:flex-start;font-size:13px;text-transform:none;letter-spacing:0;color:var(--ink);padding-top:0}
@media (max-width:900px){.setsplit{grid-template-columns:1fr}.setnav{position:static;flex-direction:row;flex-wrap:wrap}}
.sw{position:absolute;opacity:0;width:0;height:0}.schalter i{flex:0 0 auto;width:40px;height:22px;border-radius:11px;background:var(--line);position:relative;transition:background .15s;margin-top:-1px}
.schalter i::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:left .15s}
.schalter .sw:checked+i{background:var(--ok)}.schalter .sw:checked+i::after{left:20px}.schalter{cursor:pointer;display:inline-flex;align-items:center;gap:8px}.schalter i{display:block}
/* DMS: echte Vorschau (PDF, Bild, CSV-Tabelle, E-Mail) im rechten Fenster */
.dms-det .th.vv{height:var(--deth,440px);position:relative;background:#fff;display:block}
.dms-hgriff{height:12px;cursor:row-resize;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);background:var(--bg)}
.dms-hgriff::before{content:"";width:44px;height:3px;border-radius:2px;background:var(--line)} .dms-hgriff:hover::before,.dms-hgriff.zieht::before{background:var(--orange)}
body.ziehth{cursor:row-resize;user-select:none} body.ziehth iframe,body.zieht iframe{pointer-events:none}.dms-det .th.vv iframe{width:100%;height:100%;border:0;display:block;background:#fff}
.dms-det .vgross{position:absolute;right:8px;top:8px;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:2px 7px;font-size:14px;text-decoration:none;color:var(--navy)}
.schalter.mini{font-size:12px;color:var(--ink2);margin-left:auto;align-items:center;white-space:nowrap;flex:0 0 auto;position:relative;gap:6px}.schalter.mini i{width:34px;height:18px}.schalter.mini i::after{width:14px;height:14px}.schalter.mini .sw:checked+i::after{left:18px}
/* Tabellen-Kopfzeile bleibt beim Scrollen oben stehen (Karl 08.09.); auf breiten Bildschirmen darf .wrap nicht selbst scrollen, sonst klebt der Kopf nicht */
@media (min-width:1260px){.wrap{overflow:visible} /* zu breite Tabellen bekommen per JS (stickyPruefen) wieder overflow-x:auto */.wrap thead th{position:sticky;top:calc(var(--kopfh) + var(--tabsh,0px) + var(--barh,0px));z-index:6;box-shadow:0 1px 0 rgba(0,0,0,.25)}.wrap.rollt thead th{position:static}.wrap thead th:first-child{border-top-left-radius:6px}.wrap thead th:last-child{border-top-right-radius:6px}}

/* Aufgaben: Seitenleiste links (Things-3-Art), Karten darauf ablegen = umgruppieren */
.tsplit{display:grid;grid-template-columns:232px minmax(0,1fr);gap:12px;align-items:stretch}
.tleiste{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:8px 6px;position:sticky;top:12px;align-self:start}
.tleiste .grp{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink2);padding:10px 10px 4px}.tleiste .grp:first-child{padding-top:2px}.tleiste .grp small{text-transform:none;letter-spacing:0;font-size:10.5px}
.tleiste .grp.lhilfe{text-transform:none;letter-spacing:0;font-size:11px;line-height:1.4;border-top:1px solid var(--line);margin-top:8px;padding-top:8px}
.tleiste .li{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:7px;cursor:pointer;border:1.5px solid transparent;user-select:none;font-size:13.5px;min-height:34px}
.tleiste .li .ic{width:20px;text-align:center;font-size:15px}.tleiste .li .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tleiste .li .n{font-size:11px;color:var(--ink2);background:var(--bg);border-radius:9px;padding:1px 7px;min-width:22px;text-align:center}
.tleiste .li:hover{background:var(--bg)}.tleiste .li.on{background:var(--navy);color:#fff}.tleiste .li.on .n{background:rgba(255,255,255,.2);color:#fff}
.tleiste.zieht .li[data-drop]{border-color:var(--orange);background:var(--orange-soft);color:var(--ink)}.tleiste .li.klein{padding:5px 10px;font-size:13px;min-height:30px}
.tleiste .farbe{width:9px;height:9px;border-radius:50%;display:inline-block}.farbe.f0{background:var(--navy)}.farbe.f1{background:var(--ok)}.farbe.f2{background:var(--einlage)}.farbe.f3{background:var(--warn)}.farbe.f4{background:var(--it)}.farbe.f5{background:#B3261E}
.tleiste hr{border:0;border-top:1px solid var(--line);margin:8px 6px}
.tleiste .li .k{display:none} /* abgelegte Karte wird sofort wieder entfernt – nie sichtbar */
@media (max-width:1000px){.tsplit{grid-template-columns:1fr}.tleiste{position:static}}

/* Monatsseite: Monatsleiste links (Jänner–Dezember in Quartalen) */
.msplit{display:grid;grid-template-columns:196px minmax(0,1fr);gap:14px;align-items:start}
.ml{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:8px;position:sticky;top:12px}
.ml .pf{display:flex;gap:6px;margin-bottom:6px}.ml .pf button{flex:1;border:1px solid var(--line);background:var(--paper);color:var(--navy);border-radius:7px;padding:6px;font:inherit;font-size:13px;cursor:pointer}
.ml .pf button:hover{background:var(--bg)}.ml .pf button:disabled{opacity:.35;cursor:default}
.ml .q{margin-top:6px;border-top:1px solid var(--line);padding-top:6px}.ml .q:first-child{border-top:0;margin-top:0;padding-top:0}.ml .q.aus{opacity:.45}
.ml .qk{display:flex;align-items:center;justify-content:space-between;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink2);padding:4px 8px 3px;cursor:pointer;border-radius:6px}
.ml .qk:hover{background:var(--bg)}.ml .qk b{color:var(--navy);letter-spacing:.04em}.ml .qk .qs{font-size:10px;text-transform:none;letter-spacing:0}
.ml .m{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:7px;cursor:pointer;font-size:13.5px}
.ml .d{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:var(--line)}.ml .m .t{flex:1}.ml .m .n{font-size:11px;color:var(--ink2);white-space:nowrap}
.ml .m:hover{background:var(--bg)}.ml .m.on{background:var(--navy);color:#fff}.ml .m.on .n{color:rgba(255,255,255,.8)}
.ml .m.leer{color:var(--ink2)}.ml .m.leer .t::after{content:" +";color:var(--orange);font-weight:700}
.ml .d.offen{background:var(--warn)}.ml .d.komplett{background:var(--ok)}.ml .d.abg{background:var(--navy);box-shadow:0 0 0 2px var(--paper),0 0 0 3.5px var(--navy)}.ml .m.on .d.abg{box-shadow:0 0 0 2px var(--navy),0 0 0 3.5px #fff}.ml .d.nach{background:#B3261E}
.ml .leg{font-size:11px;color:var(--ink2);padding:8px 8px 2px;border-top:1px solid var(--line);margin-top:6px;line-height:1.7}.ml .leg .d{display:inline-block;vertical-align:middle;margin-right:4px}
.crumb-mon{font-weight:700;font-size:16px;margin-left:10px}
@media (max-width:1000px){.msplit{grid-template-columns:1fr}.ml{position:static}}
.ml .m.leer{border:0;padding:6px 8px;text-align:left;background:none;color:var(--ink2)}.ml .m.leer:hover{background:var(--bg)}
.ml .leg{font-size:10.5px;white-space:nowrap}
/* Seitenleisten bleiben beim Scrollen stehen – sind sie höher als das Fenster, scrollen sie innen */
.ml,.tleiste,.setnav{top:calc(var(--kopfh) + 12px);max-height:calc(100vh - var(--kopfh) - 24px);overflow-y:auto;overscroll-behavior:contain}
.dms-det{top:calc(var(--kopfh) + 12px)}

/* Monatsseite: Reiterzeile und Zahlenleiste bleiben unter der Titelleiste stehen (Karl 08.09.) */
:root{--tabsh:0px;--barh:0px}
@media (min-width:1260px){
  .mmain #tabs{position:sticky;top:var(--kopfh);z-index:31;background:var(--bg);margin:0;padding:12px 0 10px}
  .mmain .pane .bar{position:sticky;top:calc(var(--kopfh) + var(--tabsh));z-index:30;background:var(--bg);margin:0;padding:2px 0 10px}
  .mmain{margin-top:-12px}
}
/* Komplettansicht: Zellen dürfen umbrechen, damit die Tabelle in die Seite passt (sonst kein klebender Kopf) */
#tbAll td{white-space:normal;overflow-wrap:anywhere}#tbAll td.nr{white-space:normal}

/* Statusleiste unten (nur Desktop) */
body{padding-bottom:34px}
.statusleiste{position:fixed;left:0;right:0;bottom:0;height:28px;background:var(--paper);border-top:1px solid var(--line);display:flex;align-items:center;font-size:12px;color:var(--ink2);z-index:45;box-shadow:0 -1px 4px rgba(0,0,0,.06)}
.statusleiste>div{display:flex;align-items:center;gap:8px;padding:0 14px;height:100%;white-space:nowrap}
.statusleiste .li{flex:0 0 auto}.statusleiste .mi{flex:1;justify-content:center;border-left:1px solid var(--line);border-right:1px solid var(--line);color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis}
.statusleiste .re{flex:0 0 auto}.statusleiste b{color:var(--navy);font-weight:600}.statusleiste .rolle{opacity:.6}
.statusleiste .dot{width:8px;height:8px;border-radius:50%;background:var(--warn);display:inline-block;flex:0 0 auto}.statusleiste .dot.ok{background:var(--ok)}.statusleiste .dot.lock{background:var(--navy)}.statusleiste .dot.nach{background:#B3261E}
.statusleiste a{color:var(--navy);text-decoration:none;border:1px solid var(--line);border-radius:5px;padding:1px 8px;background:var(--paper)}.statusleiste a:hover{background:var(--bg)}
.statusleiste .save{color:var(--ok);font-weight:600;opacity:.5}.statusleiste .save.an{opacity:1;animation:stblink .35s 2}
@keyframes stblink{50%{opacity:.2}}
.kb-toast{bottom:40px}.toast{bottom:40px}

/* Druckansicht-Gruppe: überall gleich, in der Zahlenleiste, rechts vor dem Zeilenfarben-Knopf */
.bar .druckgrp{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
.bar .druckgrp .pdfopt{font-size:12px;color:var(--ink2);display:flex;align-items:center;gap:4px;margin-left:4px}
.bar .druckgrp + .zebraBtn{margin-left:0}

/* Ablage-Vorschau als Baum (Finder-Optik) */
.expdlg{width:min(860px,94vw)}
.expleiste{display:flex;gap:8px;align-items:center;padding:8px 18px;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--ink2)}
.expleiste .zaehl{margin-left:auto}
.expbaum{height:min(60vh,520px);overflow:auto;padding:10px 10px;font-size:13.5px}
.expbaum .n{list-style:none;margin:0;padding:0}
.expbaum .n .n{padding-left:22px}
.expbaum .z{display:flex;align-items:center;gap:6px;padding:3px 8px;border-radius:5px;white-space:nowrap;cursor:default}
.expbaum li.ordner>.z{cursor:pointer}
.expbaum .z:hover{background:var(--mute-row)}
.expbaum .pf{width:14px;text-align:center;color:var(--ink2);font-size:11px;user-select:none;flex:none}
.expbaum .ic{width:18px;text-align:center;flex:none}
.expbaum .nm{flex:1;overflow:hidden;text-overflow:ellipsis}
.expbaum .ordner>.z .nm{font-weight:600;color:var(--navy)}
.expbaum .leer>.z .nm{color:var(--ink2);font-weight:normal;font-style:italic}
.expbaum .gr{color:var(--ink2);font-size:11.5px;flex:none}
.expbaum .zu>.n{display:none}
.expbaum .tag,.expfuss .tag{font-size:10.5px;padding:1px 7px;border-radius:9px;background:var(--mute-row);color:var(--ink2);flex:none}
.tag.h-app{background:#E7F0FB;color:#2F6DB5}.tag.h-beleg{background:#E9F5EE;color:#1E7F4C}.tag.h-nw{background:#FFF3E3;color:#9A5D0C}.tag.h-fehlt{background:#FDECEA;color:#B3261E}.tag.h-dms{background:#EEE9F8;color:#7A5CC7}
.expfuss{font-size:12px;color:var(--ink2)} .expfuss .legende{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.expfuss .legende>span{display:inline-flex;gap:4px;align-items:center;white-space:nowrap}
.expfuss .btn.primary{white-space:nowrap;flex:none}
.set .radios{display:flex;flex-direction:column;gap:7px} .set .radios label{display:flex;gap:8px;align-items:baseline;cursor:pointer;text-transform:none;letter-spacing:0;font-size:13.5px;color:var(--ink);font-weight:normal} .set .radios label b{font-weight:600}

/* Kontextmenü Buchungszeile */
.ctx{position:fixed;z-index:60;background:var(--paper);border:1px solid #C9D0DB;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.22);padding:6px;min-width:290px;font-size:13.5px}
.ctx-kopf{font-size:11px;color:var(--ink2);padding:4px 12px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}
.ctx-it{padding:8px 12px;border-radius:5px;display:flex;gap:10px;align-items:center;cursor:pointer}
.ctx-it:hover{background:var(--navy);color:#fff} .ctx-it:hover .ctx-k{color:#C9D0DB}
.ctx-it.aus{opacity:.4;pointer-events:none}
.ctx hr{border:0;border-top:1px solid var(--line);margin:5px 4px}
.ctx .ctx-k{color:var(--ink2);font-size:11px;margin-left:auto;background:none;border:0;padding:0;font-weight:normal}
tr.ctxsel td{background:#FFF6E8 !important}
.erf-mark{font-size:12px;margin-left:3px}
/* Beleg digital erfassen */
.erfdlg{width:min(1180px,96vw);max-height:92vh}
.erfdlg[open]{display:flex;flex-direction:column}
.erfdlg .dlg-kopf,.erfdlg .dlg-fuss{flex:none}
.erfsplit{display:grid;grid-template-columns:1fr 1fr;flex:1;min-height:0}
.erfform{padding:12px 18px;overflow:auto;border-right:1px solid var(--line);min-width:0}
.erfvor{padding:12px 18px;background:#F8FAFC;display:flex;flex-direction:column;gap:8px}
.erfvor iframe{flex:1;min-height:420px;border:1px solid var(--line);border-radius:6px;background:#fff;width:100%}
.erocr{font-size:12.5px;color:var(--ink2);display:flex;flex-direction:column;gap:4px}
.erfform .abschn{font-weight:bold;color:var(--navy);font-size:13px;margin:10px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--line)}
.erfform .g{display:grid;grid-template-columns:130px 1fr;gap:7px 12px;align-items:center;margin-bottom:4px}
.erfform .g>*{min-width:0}
.erfform .g label{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2)}
.erfform .g input,.erfform .g select,.erfform .g textarea{font:inherit;font-size:13.5px;border:1px solid var(--line);border-radius:6px;padding:6px 9px;width:100%;box-sizing:border-box;background:var(--paper);color:var(--ink)}
.erfform .g .zeile{display:flex;gap:8px;align-items:center;font-size:12px;flex-wrap:wrap} .erfform .g .zeile input{width:auto;flex:1;min-width:120px} .erfform .g .zeile .grau{flex:none}
.erfform .r{text-align:right;font-family:"SF Mono",Menlo,monospace}
.erfform input.vorschlag{border-color:var(--orange);background:#FFF6E8}
.posi{width:100%;min-width:0;border-collapse:collapse;font-size:12.5px;table-layout:fixed}
.posi th:nth-child(2){width:52px}.posi th:nth-child(3),.posi th:nth-child(4){width:80px}.posi th:nth-child(5){width:62px}.posi th:nth-child(6){width:26px}
.posi td input{width:100% !important}
.posi th{background:var(--hell,#E9EDF3);color:var(--navy);text-transform:none;letter-spacing:0;font-size:11.5px;padding:5px 7px;text-align:left}
.posi td{padding:3px 5px;border-bottom:1px solid var(--line)}
.posi input{width:100%;box-sizing:border-box;border:1px solid transparent;border-radius:4px;padding:4px 5px;font:inherit;font-size:12.5px;background:transparent;color:var(--ink)}
.posi input:hover,.posi input:focus{border-color:var(--line);background:var(--paper)}
.posi .r{text-align:right;font-family:"SF Mono",Menlo,monospace}
.erfform .chips .chip{cursor:pointer}
@media (max-width:900px){.erfsplit{grid-template-columns:1fr}.erfvor{display:none}}

.zoomreg{display:inline-flex;align-items:center;gap:4px;margin-left:8px;color:var(--ink2)} .zoomreg .klein{font-size:10px} .zoomreg .gross{font-size:16px}
.zoomreg input{width:90px;accent-color:var(--navy);cursor:pointer}

/* Digitaler Bezahlt-Stempel */
.stempel{--rot:#C8322B;border:2px solid var(--rot);border-radius:6px;padding:8px 12px;color:var(--rot);background:rgba(200,50,43,.04);font-size:12.5px;display:inline-flex;flex-direction:column;gap:5px;min-width:340px;max-width:100%}
.stempel .st-titel{font-weight:bold;text-align:center;letter-spacing:.04em;font-size:12px}
.stempel .st-z{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.stempel .st-l{min-width:96px}
.stempel .st-in{border:0;border-bottom:1px solid var(--rot);background:transparent;color:var(--rot);font:inherit;font-style:italic;padding:1px 4px;width:140px}
.stempel label{display:inline-flex;gap:4px;align-items:center;cursor:pointer;white-space:nowrap}
.stempel input[type=radio],.stempel input[type=checkbox]{accent-color:var(--rot);width:14px;height:14px;margin:0}
.stempel .st-mitte{justify-content:center;gap:26px}
.stempel .st-weg{gap:12px}
.stempel .st-leg{font-size:10.5px;opacity:.8}

tr.qsum td{border-top:2px solid var(--orange);background:var(--mute-row)} .amt.minus{color:var(--warn)}

/* Stempel: unbekannte Daten (z. B. Karten-Einzug) – Pflichtfeld, orange markiert */
.stempel .st-in.fehlt{border-color:#E8891D;background:#FFF6EA}
.stempel .st-fehlt{color:#E8891D;font-weight:700;font-size:11px;margin-left:6px}

/* Private Kreditkarte – Auswahlseite */
.pkk-leiste{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.pkk-leiste #pkkSuch{border:1px solid var(--line);border-radius:6px;padding:7px 10px;min-width:240px;font:inherit}
.pkk-leiste .chips{margin-left:0}
.pkk-up label.btn{display:inline-block}
table.pkk td small{display:block;color:var(--ink2);font-size:11px}
table.pkk tr{cursor:pointer}
table.pkk tr.priv td,table.pkk tr.zahl td{color:#9aa3b2} table.pkk tr.priv td b.txt{color:#9aa3b2;font-weight:600}
table.pkk tr.sel td{background:var(--orange-soft)} table.pkk tr.sel td b.txt{color:var(--ink)}
table.pkk tr.schon td{background:#EEF7F1}
table.pkk .tag{font-size:11px;border-radius:4px;padding:2px 6px;font-weight:bold;white-space:nowrap}
table.pkk .tag.zd{background:#EAF1FB;color:#2F6DB5} table.pkk .tag.nr{background:#E6F2EA;color:#2E7D4F} table.pkk .tag.neu{background:var(--orange-soft);color:var(--orange)} table.pkk .tag.gut{background:#E6F2EA;color:#2E7D4F}
.pkk-fuss{display:flex;align-items:center;gap:14px;padding:12px 0 0;border-top:2px solid var(--navy);margin-top:8px}
.pkkdlg{border:0;border-radius:10px;padding:18px 22px;max-width:640px;box-shadow:0 8px 30px rgba(0,0,0,.25)}
.pkkdlg::backdrop{background:rgba(0,0,0,.35)}
.pkkdlg h3{margin:0 0 8px;color:var(--navy)} .pkkdlg p{margin:6px 0;color:var(--ink2);font-size:13px}
.pkkdlg .opt{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin:8px 0;display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.pkkdlg .opt b{display:block;color:var(--ink);font-size:13px} .pkkdlg .opt span{font-size:12.5px;color:var(--ink2)}
.pkkdlg .knopf{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}

/* Datei-Eingang */
.egdrop{border:2px dashed var(--orange);border-radius:12px;background:var(--orange-soft);padding:28px;text-align:center;color:var(--ink2);margin:0 0 14px;cursor:pointer}
.egdrop b{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}
.egdlg{border:0;border-radius:10px;padding:18px 22px;width:min(760px,94vw);box-shadow:0 8px 30px rgba(0,0,0,.25)}
.egdlg::backdrop{background:rgba(0,0,0,.35)}
.egdlg h3{margin:0 0 10px;color:var(--navy)} .egdlg .knopf{display:flex;justify-content:flex-end;margin-top:12px}
.egz{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}
.egz .egk{font-size:22px;flex:none} .egz .egt{flex:1;min-width:0} .egz .egt small{display:block;color:var(--ink2);font-size:12px;margin:2px 0 4px}
.egz .egtext{font-size:13px} .egz.ok .egtext{color:var(--ok)} .egz.uebersprungen .egtext,.egz.fehler .egtext{color:#B3261E}
.egz .tag{font-size:11px;border-radius:4px;padding:2px 7px;font-weight:bold;white-space:nowrap}
.egz .tag.ok{background:#E6F2EA;color:#2E7D4F} .egz .tag.warn{background:#FFF3E0;color:#B7791F} .egz .tag.rot{background:#FDECEA;color:#B3261E}
.egfrage{margin-top:6px;font-size:13px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.egfrage select{padding:5px 8px;border:1px solid var(--line);border-radius:6px;font:inherit}
.pkk-nav{display:inline-flex;gap:8px;align-items:center;font-size:14px}

/* Aufgabenliste zweizeilig mit Zebra (v2.18.0) */
.al{background:var(--paper);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.al .kopf,.al .z{display:grid;grid-template-columns:28px minmax(0,1fr) 150px 130px 130px 100px;gap:10px;padding:9px 14px;align-items:center}
.al .kopf{background:var(--paper);border-bottom:2px solid var(--orange);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);font-weight:bold}
.al .z{border-bottom:1px solid var(--line);cursor:pointer}
.al .z:nth-child(even){background:var(--zebra)}
.al .z:hover{background:var(--orange-soft)}
.al .z.fertig .t b{text-decoration:line-through;color:var(--ink2)}
.al .ruf{color:#B3261E;font-weight:bold;font-size:18px;text-align:center}
.al .t{min-width:0}.al .t b{display:block;font-size:14px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.al .t small{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:4px;font-size:12px;color:var(--ink2)}
.al .t small .info{font-style:italic;max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.al .tg{font-size:11px;background:#E3ECF8;color:var(--navy);border-radius:6px;padding:1px 7px;white-space:nowrap;text-decoration:none}.al .tg.rf{background:var(--orange-soft);color:var(--warn)}
.al .wart{font-size:11px;background:var(--orange-soft);color:var(--warn);border-radius:6px;padding:1px 7px;margin:0;display:inline}
.al .due{font-size:12px;white-space:nowrap;background:none;padding:0}.al .due.rot{color:#B3261E;font-weight:bold}.al .due.heute{color:var(--warn);font-weight:bold}.al .due.kein{color:var(--ink2)}.al .due.ok{color:var(--ok)}
.al .fuer{display:flex;align-items:center;gap:6px;font-size:12px;min-width:0}.al .av{width:22px;height:22px;border-radius:50%;background:var(--navy);color:#fff;font-size:10px;font-weight:bold;display:inline-flex;align-items:center;justify-content:center;flex:none}
.al .clb{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink2)}.al .bar{width:60px;height:6px;background:var(--mute-row);border-radius:3px;overflow:hidden;display:inline-block}.al .bar i{display:block;height:100%;background:var(--ok)}
.al .ang{font-size:11px;color:var(--ink2);text-align:right}
.al .st{font-size:11px;padding:2px 8px;border-radius:8px;font-weight:bold;display:inline-block}
@media (max-width:1100px){.al .kopf,.al .z{grid-template-columns:24px minmax(0,1fr) 120px 100px}.al .fuer,.al .ang,.al .kopf div:nth-child(5),.al .kopf div:nth-child(6){display:none}}

/* Kanban-Karten aufgehübscht (v2.18.0): farbiger Rand je Spalte, klarer Fuß */
.k{border-left:4px solid var(--line);padding:11px 12px 9px;box-shadow:0 1px 3px rgba(0,0,0,.07)}
.k:hover{box-shadow:0 6px 16px rgba(0,0,0,.14);transform:translateY(-1px)}
.liste[data-st=neu] .k{border-left-color:#8A96A8}.liste[data-st=arb] .k{border-left-color:#2b5aa5}.liste[data-st=wart] .k{border-left-color:var(--orange)}.liste[data-st=fertig] .k,.liste[data-st=arch] .k{border-left-color:var(--ok)}
.k.wichtig{border-left-color:#B3261E!important}
.k .kt b{font-size:14px;color:var(--ink)}
.k .info{font-style:italic;margin-top:5px}
.k .tags{margin-top:8px}.k .tg{font-size:11px;background:#E3ECF8;color:var(--navy);border-radius:6px;padding:1px 7px}.k .tg.rf{background:var(--orange-soft);color:var(--warn)}
.k .fuss{border-top:1px solid var(--line);padding-top:7px;margin-top:9px}
.k .due{background:var(--mute-row)}.k .due.rot{background:#F9E0DE;color:#B3261E;font-weight:bold}.k .due.heute{background:var(--orange-soft);color:var(--warn);font-weight:bold}.k .due.ok{background:var(--ok-soft);color:var(--ok)}
.liste .leer{border:1px dashed var(--line);border-radius:8px;padding:22px 10px;text-align:center;color:var(--ink2);font-size:12px;background:var(--paper)}

/* Verlauf & Kommentare je Aufgabe, Glocke „Neu für mich" (v2.18.0) */
.kb-ed .verlauf .vl{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--bg);display:flex;flex-direction:column;gap:8px}
.vl .m{display:flex;gap:8px;align-items:flex-start}.vl .m .av{width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;font-size:10px;font-weight:bold;display:inline-flex;align-items:center;justify-content:center;flex:none}
.vl .m.me .av{background:var(--orange)}.vl .m.sys .av{background:var(--mute-row);color:var(--ink2)}
.vl .m .bl{background:var(--zebra);border-radius:10px;padding:6px 10px;max-width:85%;font-size:13px;white-space:pre-wrap;word-break:break-word}.vl .m.me .bl{background:var(--orange-soft)}.vl .m.sys .bl{background:transparent;padding:2px 0;color:var(--ink2);font-size:12px}
.vl .m .bl small{display:block;color:var(--ink2);font-size:10px;margin-bottom:2px;white-space:nowrap}.m .bl small .rm{cursor:pointer;opacity:.5;margin-left:6px}.m .bl small .rm:hover{opacity:1;color:#B3261E}
.tg.neu,.al .tg.neu,.k .tg.neu{background:#B3261E;color:#fff}
.glocke .rfcnt{margin-left:4px}
.glockedlg{padding:0;width:520px;max-width:95vw;border:0;border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.3);overflow:hidden}
.glockedlg .h{background:var(--navy);color:#fff;padding:12px 16px;display:flex;align-items:center;gap:10px}.glockedlg .h .grau{flex:1;color:rgba(255,255,255,.7);font-size:12px}.glockedlg .h .x{cursor:pointer;font-size:18px}
.glockedlg #glockeL{max-height:60vh;overflow:auto}
.gz{display:flex;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);align-items:flex-start}.gz:nth-child(even){background:var(--zebra)}.gz:hover{background:var(--orange-soft)}
.gz .av{width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;font-size:10px;font-weight:bold;display:inline-flex;align-items:center;justify-content:center;flex:none}
.gz b{display:block;font-size:13px}.gz small{color:var(--ink2);font-size:11px}.gz .kt{font-size:12px;margin-top:3px;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:5px 8px}
.glockedlg .f{padding:10px 16px;display:flex;justify-content:flex-end;border-top:1px solid var(--line)}

.set label.ck{display:flex;align-items:center;gap:6px;text-transform:none;letter-spacing:0;font-size:13px;color:var(--ink);margin:0}

/* Dokumente an Aufgaben (v2.19.0) */
.dokl .dok{display:flex;gap:10px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;font-size:13px;background:var(--paper)}
.dokl .dok .ic{width:34px;height:44px;object-fit:cover;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;flex:none}
.dokl .dok>div{flex:1;min-width:0}.dokl .dok b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dokl .dok small{display:block;color:var(--ink2);font-size:11px}
.dokl .dok .rm{cursor:pointer;color:var(--ink2)}.dokl .dok .rm:hover{color:#B3261E}.dokl .dok:hover{background:var(--zebra)}
.dokdlg{padding:0;width:640px;max-width:95vw;border:0;border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.3);overflow:hidden}
.dokdlg .h{background:var(--navy);color:#fff;padding:12px 16px;display:flex;justify-content:space-between;align-items:center}.dokdlg .h .x{cursor:pointer;font-size:18px}
.dokdlg .s{display:flex;gap:8px;padding:12px 14px}.dokdlg .s input{flex:1;font:inherit;padding:7px 9px;border:1px solid var(--line);border-radius:6px}.dokdlg .s select{font:inherit;padding:7px;border:1px solid var(--line);border-radius:6px}
.tg.durch{text-decoration:line-through;opacity:.7}

/* Rückblick (v2.19.0) */
.rb{max-width:1400px;margin:0 auto}
.rbbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin-bottom:14px}
.rbbar .seg{margin-left:0}.rbbar .seg button{background:var(--paper);border:0;padding:6px 12px;font:inherit;cursor:pointer;color:var(--ink)}.rbbar .seg button.on{background:var(--navy);color:#fff}
.rbkpi{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:14px}.rbkpi div{background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:8px;padding:10px 12px}
.rbkpi b{font-size:22px;display:block;color:var(--navy)}.rbkpi small{font-size:10.5px;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em}
.rbkpi .g{border-left-color:var(--ok)}.rbkpi .o{border-left-color:var(--orange)}.rbkpi .r{border-left-color:#B3261E}
.rbgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rbh{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);font-weight:bold;margin:12px 0 6px}.rbh.ok{color:var(--ok)}.rbh.rot{color:#B3261E}.rbh.warn{color:var(--warn)}.rbh span{font-weight:normal;color:var(--ink2)}
.rb .al .z{grid-template-columns:22px minmax(0,1fr) 150px 120px}.rb .al .leer{padding:10px 14px;color:var(--ink2);font-size:12px}
.rbtage .tage{display:flex;gap:6px;align-items:flex-end;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px;height:100px;overflow-x:auto}
.rbtage .tage div{flex:1;min-width:14px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.rbtage .tage i{display:block;width:100%;max-width:34px;background:var(--ok);border-radius:3px 3px 0 0;min-height:2px}.rbtage .tage span{font-size:10px;color:var(--ink2);margin-top:3px}
@media (max-width:1000px){.rbgrid{grid-template-columns:1fr}.rbkpi{grid-template-columns:repeat(3,1fr)}}

/* Auswertung (v2.19.0) */
.aw{max-width:1400px;margin:0 auto}
.awbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin-bottom:14px}
.awbar input,.awbar select{font:inherit;padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}.awbar input{width:200px;min-width:120px;flex:1 1 140px}.awbar select{max-width:100%}
.awkpi{grid-template-columns:repeat(4,1fr)}
.awgrid{display:grid;grid-template-columns:1.4fr 1fr;gap:14px}
.awbox{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px 14px}
.awh{display:flex;align-items:center;gap:10px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);font-weight:bold;margin-bottom:8px}.awh .seg{margin-left:auto}
.awbal .b{display:grid;grid-template-columns:130px 1fr 130px;gap:8px;align-items:center;font-size:12px;padding:4px 0;cursor:pointer}.awbal .b:hover{background:var(--orange-soft)}
.awbal .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.awbal .bar{height:12px;background:var(--mute-row);border-radius:3px;overflow:hidden}.awbal .bar i{display:block;height:100%}.awbal .v{text-align:right;font-variant-numeric:tabular-nums}
.aw .al .kopf,.aw .al .z{grid-template-columns:90px minmax(0,1fr) 210px 170px 120px}
.aw .al .kopf .sk{cursor:pointer;user-select:none;white-space:nowrap}.aw .al .kopf .sk i{font-style:normal;font-size:9px;color:#B0B7C3;margin-left:4px;letter-spacing:0}.aw .al .kopf .sk.on{color:var(--orange)}.aw .al .kopf .sk.on i{color:var(--orange)}.aw .al .kopf .sk:hover{color:var(--orange)}.aw .al .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.aw .al .r.plus{color:var(--ok)}.aw .al .leer{padding:14px;color:var(--ink2)}
.aw .legend{font-size:12px;color:var(--ink2);display:flex;gap:14px;margin-top:6px}.aw .legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}
@media (max-width:1000px){.awgrid{grid-template-columns:1fr}.awkpi{grid-template-columns:repeat(2,1fr)}}
.set>div{min-width:0}.set .tab-klein td{white-space:nowrap}.set .tab-klein td input[type=email]{width:200px}

/* Korrekturen Aufgaben-Fenster (v2.19.0): globale .neu/.sw-Regeln greifen nicht mehr hinein */
.kb-ed .stseg span.on.neu{display:block;margin-top:0;gap:0;flex-wrap:nowrap}
.kb-ed .sw{position:static;opacity:1;width:auto;height:auto}

/* Wochenansicht: Tagesspalten bis zum Ende der Seitenleiste (v2.19.0) */
.tsplit{align-items:stretch}#kalender:not([hidden]){display:flex;flex-direction:column;min-height:100%}
.cal-woche{flex:1}.cal-woche .cd{display:flex;flex-direction:column}
.tmain{display:flex;flex-direction:column;min-width:0}#kalender:not([hidden]){flex:1}
.kb-ed .sw label{white-space:nowrap;flex:none}.kb-ed .sw .grau{flex:1;min-width:0}

/* Übersicht neu (v2.20.0): Diagramm volle Breite, darunter Aufgaben + Monatsliste */
.dgrid2{display:grid;grid-template-columns:1.15fr 1fr;gap:12px;margin-bottom:12px;align-items:start}
.ml .mz{display:grid;grid-template-columns:minmax(0,1fr) 62px 62px 74px 74px;gap:8px;align-items:center;padding:8px 10px;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}
.ml .mz:first-child{border-top:0}.ml .mz:nth-child(even){background:var(--zebra)}.ml .mz:hover{background:var(--orange-soft)}
.ml .mt b{display:block;color:var(--navy);font-size:14px}.ml .mt small{display:block;color:var(--ink2);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ml .mt .plus{color:var(--ok);font-weight:bold}
.ml .mn{text-align:center}.ml .mn b{display:block;font-size:16px;font-variant-numeric:tabular-nums}.ml .mn small{font-size:10px;color:var(--ink2);text-transform:uppercase;letter-spacing:.04em}
.ml .mn.gut b{color:var(--ok)}.ml .mn.warn b{color:var(--warn)}.ml .mn.rot b{color:#B3261E}.ml .mz.nach .mt b{color:var(--warn)}
@media (max-width:1100px){.dgrid2{grid-template-columns:1fr}}

/* Aufgabenliste v2.20.0: größer, Kästchen, Griff, Abschnitte */
.al-gross .kopf,.al-gross .z{grid-template-columns:18px 22px minmax(0,1fr) 150px 130px 130px 100px}
.al-gross .z{padding:11px 14px}.al-gross .t b{font-size:15px;white-space:normal}.al-gross .t small{font-size:12.5px}
.al .grip{color:#c2c9d3;cursor:grab;font-size:16px;text-align:center;user-select:none}.al .z .cb{width:18px;height:18px;cursor:pointer;margin:0}
.al .blk .rows{min-height:6px}.al .z.ghost{border:2px dashed var(--orange);background:var(--orange-soft);opacity:.7}
.al .sec{display:grid;grid-template-columns:18px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:12px 14px 6px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--navy);font-weight:bold;border-bottom:2px solid var(--orange);background:var(--paper)}
.al .sec .n{color:var(--ink2);font-weight:normal}.al .sec .x{color:var(--ink2);font-weight:normal;font-size:12px;opacity:.5;letter-spacing:0;text-transform:none}.al .sec:hover .x{opacity:1}.al .sec .x span{cursor:pointer;margin-left:6px}
.al .leer2{padding:10px 14px;color:var(--ink2);font-size:12px;font-style:italic}
.al .z:nth-child(even){background:var(--paper)}.al .rows .z:nth-child(even){background:var(--zebra)}
/* Tag-Feld (Things-Art): Chips + Eingabe + Vorschläge (v2.22.0) */
.tagf{position:relative;display:flex;flex-wrap:wrap;gap:5px;align-items:center;min-height:36px;padding:4px 6px;border:1px solid var(--line);border-radius:6px;background:var(--bg);cursor:text}
.tagf:focus-within{border-color:var(--navy);box-shadow:0 0 0 2px #E3ECF8}.tagf.dis{opacity:.6;cursor:default}
.tagf .tgcs{display:contents}
.tagf .tgc{display:inline-flex;align-items:center;gap:4px;font-size:12px;background:#E3ECF8;color:var(--navy);border-radius:6px;padding:2px 7px;white-space:nowrap;cursor:pointer;user-select:none}
.tagf .tgc i{font-style:normal;font-size:10px;color:var(--ink2)}.tagf .tgc:hover{background:var(--orange-soft);color:var(--warn)}.tagf .tgc:hover i{color:var(--warn)}
.tagf.dis .tgc{cursor:default}.tagf.dis .tgc i{display:none}
.tagf .tgin{flex:1 1 90px;min-width:90px;border:0!important;outline:0;background:transparent!important;padding:3px 4px!important;font:inherit;color:var(--ink);width:auto!important;box-shadow:none!important}
.tagf .tgv{position:absolute;left:0;top:100%;z-index:20;min-width:180px;max-width:100%;margin-top:3px;background:var(--paper);border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.14);font-size:13px;overflow:hidden}
.tagf .tgv div{padding:6px 10px;cursor:pointer}.tagf .tgv div:hover,.tagf .tgv div.on{background:var(--orange-soft);color:var(--ink)}
.tagf .tgv:before{content:"vorhandene Tags";display:block;font-size:10px;color:var(--ink2);padding:5px 10px 2px;text-transform:uppercase;letter-spacing:.04em}
.al .tg.gs{background:var(--ok-soft);color:var(--ok)}
/* Belegverweis (v2.23.0) */
.vws{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.vw{display:inline-flex;align-items:center;gap:4px;font-size:11px;background:var(--orange-soft);color:#8a5a12;border:1px solid #f0d3ad;border-radius:6px;padding:1px 7px;white-space:nowrap;text-decoration:none;font-weight:normal}.vw b{font-family:Menlo,Consolas,monospace;font-weight:normal;color:var(--navy)}.vw:hover{border-color:var(--orange)}
.vw-btn{color:var(--navy);margin-left:6px}.vw-btn.on{background:var(--orange-soft);border-color:var(--orange)}
.vwdlg{width:min(680px,96vw)}
.vwdlg .seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-bottom:4px}.vwdlg .seg button{font:inherit;font-size:12px;padding:6px 11px;border:0;border-right:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}.vwdlg .seg button:last-child{border-right:0}.vwdlg .seg button.on{background:var(--navy);color:#fff;font-weight:bold}
.vwsuch{display:flex;gap:8px}.vwsuch input{flex:1;font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}.vwsuch select{font:inherit;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}
.vwtref{border:1px solid var(--line);border-radius:6px;margin-top:6px;max-height:210px;overflow:auto}.vwtref>div{display:grid;grid-template-columns:20px 78px 1fr 190px 90px;gap:8px;padding:7px 10px;font-size:12.5px;align-items:center;border-bottom:1px solid var(--line);cursor:pointer}.vwtref>div:hover{background:var(--orange-soft)}.vwtref>div:last-child{border-bottom:0}.vwtref>div.selbst{color:var(--ink2);cursor:default}.vwtref>div.selbst:hover{background:transparent}.vwtref .nr{font-size:11.5px}
.vwliste .z{display:grid;grid-template-columns:110px 1fr 90px 22px;gap:8px;align-items:center;padding:6px 10px;border:1px solid var(--line);border-radius:6px;font-size:12.5px;margin-bottom:5px}.vwliste .z .x{color:var(--ink2);cursor:pointer;text-align:center}.vwliste .z .x:hover{color:var(--rot)}.vwliste .tg{font-size:11px;background:#E3ECF8;color:var(--navy);border-radius:6px;padding:1px 7px;white-space:nowrap}
.vwtref .num,.vwliste .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
/* Auswertung: gespeicherte Filter (v2.23.1) */
.awpre{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-8px 0 14px;padding:0 4px;font-size:12px}
.awpre .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);font-weight:bold}
.awpre .chips{display:inline-flex;gap:6px;flex-wrap:wrap;margin:0}.awpre .chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 9px;border:1px solid var(--line);border-radius:12px;background:var(--paper);cursor:pointer;color:var(--ink)}
.awpre .chip.on{background:var(--orange-soft);border-color:var(--orange);font-weight:bold}.awpre .chip i{font-style:normal;font-size:10px;color:var(--ink2)}.awpre .chip i:hover{color:var(--rot)}
/* Nur-Lesen-Zugang (v2.24.0): Band + Eingabe-Elemente ausblenden, Server sperrt zusätzlich alle Schreibzugriffe */
.leserband{background:var(--orange);color:#fff;padding:7px 24px;font-size:13.5px;position:sticky;top:0;z-index:39;text-align:center}.leserband b{font-weight:bold}.leserband span{opacity:.9;font-size:12px;margin-left:8px}
body.leser .imp,body.leser .drop,body.leser .dms-drop,body.leser .egdrop,body.leser .kb-eingang,body.leser .dropover,body.leser .fab,body.leser .btn.gefahr{display:none!important}
body.leser .zuord :is(input,select,button),body.leser .belegzelle :is(button,label,.anh+button),body.leser tr.z1 td:last-child :is(input,span.del),body.leser .kb-ed :is(input,select,textarea,button):not(.leser-ok),body.leser .dlg-fuss .btn.primary{pointer-events:none;opacity:.55}
