
/* ---------------------------------------------------------------- Dunkelmodus (v2.81.0)
   Diese Farben standen vorher fest im Stylesheet und konnten deshalb nicht mitschalten.
   Der Dunkelwert ist aus dem Hellwert berechnet: Farbton bleibt, die Helligkeit wird so
   weit verschoben, bis Schrift mindestens 5:1 und Flächen mindestens 8:1 erreichen.
   --k-… Schrift · --f-… Fläche · --r-… Rahmen                                        */
:root{--f-0b1020:#0B1020;--f-12633a:#12633a;--f-17a673:#17A673;--f-1b1f26:#1b1f26;--f-1c2333:#1C2333;--f-2f6db5:#2F6DB5;--f-4a3aa7:#4A3AA7;--f-5a6478:#5A6478;--f-7a3e00:#7a3e00;--f-999999:#999;--f-9aa1ae:#9AA1AE;--f-b3261e:#B3261E;--f-b6bcc7:#B6BCC7;--f-c0392b:#C0392B;--f-c6ccd9:#C6CCD9;--f-c8e0f5:#C8E0F5;--f-ccdef4:#CCDEF4;--f-dceaf8:#dceaf8;--f-e3ecf8:#E3ECF8;--f-e3f3e9:#E3F3E9;--f-e6e2f8:#E6E2F8;--f-e6f2ea:#E6F2EA;--f-e6f4ea:#E6F4EA;--f-e7f0fb:#E7F0FB;--f-e89a3c:#E89A3C;--f-e8f7f0:#E8F7F0;--f-e9edf3:#E9EDF3;--f-e9f5ee:#E9F5EE;--f-eaf0f9:#EAF0F9;--f-eaf1f8:#eaf1f8;--f-eaf1fb:#EAF1FB;--f-edf0f4:#EDF0F4;--f-edf4fc:#EDF4FC;--f-eee9f8:#EEE9F8;--f-eeeeee:#eee;--f-eef1f6:#EEF1F6;--f-eef2f8:#EEF2F8;--f-eef3fa:#EEF3FA;--f-eef6ff:#eef6ff;--f-eef7f1:#EEF7F1;--f-f1f3f6:#f1f3f6;--f-f1f3f8:#F1F3F8;--f-f1f9f4:#F1F9F4;--f-f2f0fc:#F2F0FC;--f-f3d9ae:#F3D9AE;--f-f4edfa:#F4EDFA;--f-f7f6fd:#F7F6FD;--f-f8fafc:#F8FAFC;--f-f9e0de:#F9E0DE;--f-fafbfc:#fafbfc;--f-fbe9d7:#FBE9D7;--f-fbeae8:#FBEAE8;--f-fbf9fd:#FBF9FD;--f-fbfcfe:#FBFCFE;--f-fdecea:#FDECEA;--f-fdf2f1:#FDF2F1;--f-ff8c00:#ff8c00;--f-fff3e0:#FFF3E0;--f-fff3e3:#FFF3E3;--f-fff4dc:#FFF4DC;--f-fff6e8:#FFF6E8;--f-fff6ea:#FFF6EA;--f-fff6ec:#FFF6EC;--f-fff8ec:#FFF8EC;--f-fffbf5:#FFFBF5;--r-1f3864:#1F3864;--r-2b313a:#2b313a;--r-2b5aa5:#2b5aa5;--r-2e7d4f:#2E7D4F;--r-2e7d53:#2E7D53;--r-2f6db5:#2F6DB5;--r-4a3aa7:#4A3AA7;--r-7a4fa3:#7A4FA3;--r-8a96a8:#8A96A8;--r-8e86d8:#8E86D8;--r-9cc4ea:#9cc4ea;--r-9edcc2:#9EDCC2;--r-a35400:#a35400;--r-a5abb7:#A5ABB7;--r-a9c4e6:#A9C4E6;--r-b3261e:#B3261E;--r-b7791f:#B7791F;--r-bbd2ec:#BBD2EC;--r-bfdcc8:#BFDCC8;--r-bfdfcb:#BFDFCB;--r-bfe0c8:#bfe0c8;--r-bfe0ce:#BFE0CE;--r-bfe3cc:#bfe3cc;--r-c0392b:#C0392B;--r-c2410c:#c2410c;--r-c8761a:#C8761A;--r-c9d0db:#C9D0DB;--r-cfd6df:#cfd6df;--r-d6c5e6:#D6C5E6;--r-d7d2f2:#D7D2F2;--r-d9dee7:#D9DEE7;--r-e3ecf8:#E3ECF8;--r-e5e8ee:#E5E8EE;--r-e8891d:#E8891D;--r-e89a3c:#E89A3C;--r-e8c68a:#e8c68a;--r-e8d5a8:#E8D5A8;--r-e9c2be:#E9C2BE;--r-ebd8a8:#EBD8A8;--r-f0c4be:#f0c4be;--r-f0c4c1:#F0C4C1;--r-f0d2a8:#F0D2A8;--r-f0d3ad:#f0d3ad;--r-f1c7c2:#F1C7C2;--r-ff8c00:#ff8c00;--t-13694c:#13694C;--t-141414:#141414;--t-15537f:#15537f;--t-1c2333:#1C2333;--t-1c5a38:#1C5A38;--t-1e7f4c:#1E7F4C;--t-1f3864:#1F3864;--t-1f5b38:#1F5B38;--t-1f8a8a:#1D8181;--t-231402:#231402;--t-2b2358:#2B2358;--t-2e7d4f:#2E7D4F;--t-2e7d53:#2E7D53;--t-2f6db5:#2F6DB5;--t-3b3080:#3B3080;--t-4a3aa7:#4A3AA7;--t-5a6478:#5A6478;--t-5b5190:#5B5190;--t-5d83a6:#537797;--t-6b4a47:#6B4A47;--t-6b520e:#6B520E;--t-6b6490:#6B6490;--t-6b7280:#6B7280;--t-6b7486:#6B7486;--t-7a4e00:#7A4E00;--t-7a4fa3:#7A4FA3;--t-7a5410:#7A5410;--t-7a5cc7:#7A5CC7;--t-7a72a8:#6D659F;--t-8a1c12:#8A1C12;--t-8a5a12:#8a5a12;--t-8a93a5:#6A758A;--t-8aa6bf:#537798;--t-8e86d8:#6F65CD;--t-98a2b3:#68768D;--t-9a5b12:#9A5B12;--t-9a5d0c:#9A5D0C;--t-9aa3b2:#687488;--t-9aa3b5:#68748D;--t-9aa4b6:#67758E;--t-a07a3a:#926F35;--t-a5abb7:#6B7385;--t-b0b6c2:#6B758A;--t-b0b7c3:#677488;--t-b3261e:#B3261E;--t-b45309:#B45309;--t-b7791f:#9D681B;--t-c0392b:#C0392B;--t-c2410c:#c2410c;--t-c2c9d3:#64748B;--t-c8761a:#A76316;--t-c9d0db:#627593;--t-d7ffe9:#00853C;--t-e5484d:#E1292F;--t-e8891d:#AB6311;--t-e89a3c:#A96514;--t-edeff4:#61729E;--t-ff8c00:#AD5F00;--t-ffe9d2:#B25B00;}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--f-0b1020:#202C4F;--f-12633a:#153323;--f-17a673:#153328;--f-1b1f26:#282E39;--f-1c2333:#242D42;--f-2f6db5:#1C2F45;--f-4a3aa7:#2F265E;--f-5a6478:#2A2E38;--f-7a3e00:#3E2C19;--f-999999:#2E2E2E;--f-9aa1ae:#2B2F36;--f-b3261e:#4C211F;--f-b6bcc7:#2A2F37;--f-c0392b:#4C231F;--f-c6ccd9:#292F3E;--f-c8e0f5:#1A2F41;--f-ccdef4:#1C2F45;--f-dceaf8:#1C3045;--f-e3ecf8:#1D3048;--f-e3f3e9:#153220;--f-e6e2f8:#31265E;--f-e6f2ea:#1A3222;--f-e6f4ea:#173520;--f-e7f0fb:#1C2F45;--f-e89a3c:#3A2B17;--f-e8f7f0:#153325;--f-e9edf3:#243042;--f-e9f5ee:#183424;--f-eaf0f9:#1D2F48;--f-eaf1f8:#1C3045;--f-eaf1fb:#1D2F48;--f-edf0f4:#242F3C;--f-edf4fc:#1C2F45;--f-eee9f8:#37255A;--f-eeeeee:#2E2E2E;--f-eef1f6:#232F43;--f-eef2f8:#1E2F48;--f-eef3fa:#1D3048;--f-eef6ff:#1C2F45;--f-eef7f1:#193421;--f-f1f3f6:#262E3B;--f-f1f3f8:#232E47;--f-f1f9f4:#153220;--f-f2f0fc:#30265E;--f-f3d9ae:#3A2D18;--f-f4edfa:#3C2253;--f-f7f6fd:#2E265E;--f-f8fafc:#1D3044;--f-f9e0de:#4C231F;--f-fafbfc:#25303D;--f-fbe9d7:#3E2C19;--f-fbeae8:#4C231F;--f-fbf9fd:#3D2357;--f-fbfcfe:#1F2E4C;--f-fdecea:#4C231F;--f-fdf2f1:#4C231F;--f-ff8c00:#3A2B17;--f-fff3e0:#3A2C18;--f-fff3e3:#3A2B17;--f-fff4dc:#372C17;--f-fff6e8:#3A2C18;--f-fff6ea:#3A2B17;--f-fff6ec:#3A2A17;--f-fff8ec:#3A2D18;--f-fffbf5:#3A2C17;--r-1f3864:#3B6BBF;--r-2b313a:#606D81;--r-2b5aa5:#346CC6;--r-2e7d4f:#2E7D4F;--r-2e7d53:#2E7D53;--r-2f6db5:#2F6EB6;--r-4a3aa7:#6F60C8;--r-7a4fa3:#865AAF;--r-8a96a8:#8A96A8;--r-8e86d8:#373267;--r-9cc4ea:#324D67;--r-9edcc2:#326751;--r-a35400:#A85700;--r-a5abb7:#444A55;--r-a9c4e6:#324967;--r-b3261e:#D22D23;--r-b7791f:#B7791F;--r-bbd2ec:#324B67;--r-bfdcc8:#366344;--r-bfdfcb:#336646;--r-bfe0c8:#326740;--r-bfe0ce:#32674A;--r-bfe3cc:#326745;--r-c0392b:#C83B2D;--r-c2410c:#c2410c;--r-c8761a:#C8761A;--r-c9d0db:#3D495C;--r-cfd6df:#3D4B5C;--r-d6c5e6:#4D3267;--r-d7d2f2:#3A3267;--r-d9dee7:#3B485E;--r-e3ecf8:#324967;--r-e5e8ee:#3C475D;--r-e8891d:#E8891D;--r-e89a3c:#E89A3C;--r-e8c68a:#675432;--r-e8d5a8:#675732;--r-e9c2be:#673732;--r-ebd8a8:#675832;--r-f0c4be:#673832;--r-f0c4c1:#673532;--r-f0d2a8:#675132;--r-f0d3ad:#675032;--r-f1c7c2:#673732;--r-ff8c00:#ff8c00;--t-13694c:#1FAD7D;--t-141414:#999999;--t-15537f:#439FE0;--t-1c2333:#8899BE;--t-1c5a38:#35AB6A;--t-1e7f4c:#29AD68;--t-1f3864:#7799D5;--t-1f5b38:#3AAB69;--t-1f8a8a:#25A7A7;--t-231402:#DE7F0D;--t-2b2358:#988ED2;--t-2e7d4f:#3FAB6C;--t-2e7d53:#3FAB72;--t-2f6db5:#659AD7;--t-3b3080:#9990D5;--t-4a3aa7:#988DD8;--t-5a6478:#8D97AA;--t-5b5190:#9B93C2;--t-5d83a6:#7B9AB7;--t-6b4a47:#B28E8B;--t-6b520e:#BD9119;--t-6b6490:#9893B4;--t-6b7280:#9399A4;--t-6b7486:#9098A7;--t-7a4e00:#D18600;--t-7a4fa3:#A98AC6;--t-7a5410:#CB8C1B;--t-7a5cc7:#A28DD8;--t-7a72a8:#9A94BD;--t-8a1c12:#EC756A;--t-8a5a12:#D0871B;--t-8a93a5:#8F97A9;--t-8aa6bf:#8aa6bf;--t-8e86d8:#978FDB;--t-98a2b3:#98a2b3;--t-9a5b12:#DB821A;--t-9a5d0c:#DA8311;--t-9aa3b2:#9aa3b2;--t-9aa3b5:#9aa3b5;--t-9aa4b6:#9AA4B6;--t-a07a3a:#BB8F44;--t-a5abb7:#A5ABB7;--t-b0b6c2:#B0B6C2;--t-b0b7c3:#B0B7C3;--t-b3261e:#E7756F;--t-b45309:#F3700C;--t-b7791f:#CD8823;--t-c0392b:#DF7C71;--t-c2410c:#F3703A;--t-c2c9d3:#c2c9d3;--t-c8761a:#DD821D;--t-c9d0db:#C9D0DB;--t-d7ffe9:#d7ffe9;--t-e5484d:#EB7578;--t-e8891d:#E8891D;--t-e89a3c:#E89A3C;--t-edeff4:#EDEFF4;--t-ff8c00:#ff8c00;--t-ffe9d2:#ffe9d2;}}
:root[data-theme="dark"]{--f-0b1020:#202C4F;--f-12633a:#153323;--f-17a673:#153328;--f-1b1f26:#282E39;--f-1c2333:#242D42;--f-2f6db5:#1C2F45;--f-4a3aa7:#2F265E;--f-5a6478:#2A2E38;--f-7a3e00:#3E2C19;--f-999999:#2E2E2E;--f-9aa1ae:#2B2F36;--f-b3261e:#4C211F;--f-b6bcc7:#2A2F37;--f-c0392b:#4C231F;--f-c6ccd9:#292F3E;--f-c8e0f5:#1A2F41;--f-ccdef4:#1C2F45;--f-dceaf8:#1C3045;--f-e3ecf8:#1D3048;--f-e3f3e9:#153220;--f-e6e2f8:#31265E;--f-e6f2ea:#1A3222;--f-e6f4ea:#173520;--f-e7f0fb:#1C2F45;--f-e89a3c:#3A2B17;--f-e8f7f0:#153325;--f-e9edf3:#243042;--f-e9f5ee:#183424;--f-eaf0f9:#1D2F48;--f-eaf1f8:#1C3045;--f-eaf1fb:#1D2F48;--f-edf0f4:#242F3C;--f-edf4fc:#1C2F45;--f-eee9f8:#37255A;--f-eeeeee:#2E2E2E;--f-eef1f6:#232F43;--f-eef2f8:#1E2F48;--f-eef3fa:#1D3048;--f-eef6ff:#1C2F45;--f-eef7f1:#193421;--f-f1f3f6:#262E3B;--f-f1f3f8:#232E47;--f-f1f9f4:#153220;--f-f2f0fc:#30265E;--f-f3d9ae:#3A2D18;--f-f4edfa:#3C2253;--f-f7f6fd:#2E265E;--f-f8fafc:#1D3044;--f-f9e0de:#4C231F;--f-fafbfc:#25303D;--f-fbe9d7:#3E2C19;--f-fbeae8:#4C231F;--f-fbf9fd:#3D2357;--f-fbfcfe:#1F2E4C;--f-fdecea:#4C231F;--f-fdf2f1:#4C231F;--f-ff8c00:#3A2B17;--f-fff3e0:#3A2C18;--f-fff3e3:#3A2B17;--f-fff4dc:#372C17;--f-fff6e8:#3A2C18;--f-fff6ea:#3A2B17;--f-fff6ec:#3A2A17;--f-fff8ec:#3A2D18;--f-fffbf5:#3A2C17;--r-1f3864:#3B6BBF;--r-2b313a:#606D81;--r-2b5aa5:#346CC6;--r-2e7d4f:#2E7D4F;--r-2e7d53:#2E7D53;--r-2f6db5:#2F6EB6;--r-4a3aa7:#6F60C8;--r-7a4fa3:#865AAF;--r-8a96a8:#8A96A8;--r-8e86d8:#373267;--r-9cc4ea:#324D67;--r-9edcc2:#326751;--r-a35400:#A85700;--r-a5abb7:#444A55;--r-a9c4e6:#324967;--r-b3261e:#D22D23;--r-b7791f:#B7791F;--r-bbd2ec:#324B67;--r-bfdcc8:#366344;--r-bfdfcb:#336646;--r-bfe0c8:#326740;--r-bfe0ce:#32674A;--r-bfe3cc:#326745;--r-c0392b:#C83B2D;--r-c2410c:#c2410c;--r-c8761a:#C8761A;--r-c9d0db:#3D495C;--r-cfd6df:#3D4B5C;--r-d6c5e6:#4D3267;--r-d7d2f2:#3A3267;--r-d9dee7:#3B485E;--r-e3ecf8:#324967;--r-e5e8ee:#3C475D;--r-e8891d:#E8891D;--r-e89a3c:#E89A3C;--r-e8c68a:#675432;--r-e8d5a8:#675732;--r-e9c2be:#673732;--r-ebd8a8:#675832;--r-f0c4be:#673832;--r-f0c4c1:#673532;--r-f0d2a8:#675132;--r-f0d3ad:#675032;--r-f1c7c2:#673732;--r-ff8c00:#ff8c00;--t-13694c:#1FAD7D;--t-141414:#999999;--t-15537f:#439FE0;--t-1c2333:#8899BE;--t-1c5a38:#35AB6A;--t-1e7f4c:#29AD68;--t-1f3864:#7799D5;--t-1f5b38:#3AAB69;--t-1f8a8a:#25A7A7;--t-231402:#DE7F0D;--t-2b2358:#988ED2;--t-2e7d4f:#3FAB6C;--t-2e7d53:#3FAB72;--t-2f6db5:#659AD7;--t-3b3080:#9990D5;--t-4a3aa7:#988DD8;--t-5a6478:#8D97AA;--t-5b5190:#9B93C2;--t-5d83a6:#7B9AB7;--t-6b4a47:#B28E8B;--t-6b520e:#BD9119;--t-6b6490:#9893B4;--t-6b7280:#9399A4;--t-6b7486:#9098A7;--t-7a4e00:#D18600;--t-7a4fa3:#A98AC6;--t-7a5410:#CB8C1B;--t-7a5cc7:#A28DD8;--t-7a72a8:#9A94BD;--t-8a1c12:#EC756A;--t-8a5a12:#D0871B;--t-8a93a5:#8F97A9;--t-8aa6bf:#8aa6bf;--t-8e86d8:#978FDB;--t-98a2b3:#98a2b3;--t-9a5b12:#DB821A;--t-9a5d0c:#DA8311;--t-9aa3b2:#9aa3b2;--t-9aa3b5:#9aa3b5;--t-9aa4b6:#9AA4B6;--t-a07a3a:#BB8F44;--t-a5abb7:#A5ABB7;--t-b0b6c2:#B0B6C2;--t-b0b7c3:#B0B7C3;--t-b3261e:#E7756F;--t-b45309:#F3700C;--t-b7791f:#CD8823;--t-c0392b:#DF7C71;--t-c2410c:#F3703A;--t-c2c9d3:#c2c9d3;--t-c8761a:#DD821D;--t-c9d0db:#C9D0DB;--t-d7ffe9:#d7ffe9;--t-e5484d:#EB7578;--t-e8891d:#E8891D;--t-e89a3c:#E89A3C;--t-edeff4:#EDEFF4;--t-ff8c00:#ff8c00;--t-ffe9d2:#ffe9d2;}

:root{
  --navy:#1F3864; --orange:#E89A3C; --orange-soft:#FBEBD6;
  /* v2.80.0: --orange auf weißem Grund hat nur 2,3:1 Kontrast – lesbar wären 4,5:1. Für Flächen
     mit weißer Schrift (Hauptknöpfe, Band im Lesemodus, aktiver Reiter) gilt deshalb --orange-tief;
     --orange bleibt die Akzentfarbe für Rahmen, Markierungen und Diagramme. */
  --orange-tief:#A85C00;
  /* v2.80.0: --bad und --bad-soft wurden an 17 Stellen benutzt, waren aber nie definiert – deshalb
     blieb abgelehnte Arbeitszeit farblos und das Legendenkästchen unsichtbar. */
  --bad:#C0392B; --bad-soft:#FBE4E1;
  --bg:#F5F6F8; --paper:#FFFFFF; --ink:#1C2333; --ink2:#576175; --line:#D9DEE7;
  --sek:#CCDEF4; --sek-linie:#A9C4E6;
  --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; --privat:#C8761A;   /* v2.62.0: privat bezahlte Ausgaben */
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#141922; --paper:#1C2330; --ink:#E8ECF3; --ink2:#A2ACBE; --line:#2E3747;
  --ok-soft:#193020; --warn-soft:#2B2310; --mute-row:#202836; --orange-soft:#2B2215; --zebra:#1F2A3C; --zebra-ok:#1B3524; --zebra-warn:#332A13;
  --sek:#1E2940; --sek-linie:#33456A; --bad-soft:#2C1816; --orange-tief:#C07A1E;
}}
:root[data-theme="dark"]{
  --bg:#141922; --paper:#1C2330; --ink:#E8ECF3; --ink2:#A2ACBE; --line:#2E3747;
  --ok-soft:#193020; --warn-soft:#2B2310; --mute-row:#202836; --orange-soft:#2B2215; --zebra:#1F2A3C; --zebra-ok:#1B3524; --zebra-warn:#332A13;
  --sek:#1E2940; --sek-linie:#33456A; --bad-soft:#2C1816; --orange-tief:#C07A1E;
}
*{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:12px 18px;display:flex;align-items:center;gap:10px;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(--auf-navy-akzent)}
.logo small{display:flex;align-items:center;gap:8px;font-size:11px;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-tief);border-color:var(--orange-tief);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}
header .btn.ghost:hover,header .imp:hover{background:var(--orange);border-color:var(--orange);color:#fff;transition:background .12s}header .btn.ghost:hover .rfcnt{background:var(--paper);color:var(--orange-ink)}
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-ink)}
.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-ink)}.steps li.done b{background:var(--ok);color:#fff}
.steps li.now{color:var(--navy-ink);font-weight:bold;background:var(--orange-soft)}.steps li.now b{background:var(--orange-tief);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-ink);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}
a.tab{text-decoration:none}   /* v2.108.0: Reiter „📎 Steuerberater“ ist ein Link */
.tab .cnt{background:var(--orange-tief);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-ink);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-ink)} .stat.open b{color:var(--warn-ink)}
.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-ink);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-ink);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-ink)}
.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-ink)} select.gew.it{color:var(--it-ink)} select.gew.srit{color:var(--t-1f8a8a)}
select.gew.leer,select.artsel.leer{color:var(--warn-ink);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-ink);white-space:nowrap}
tr.ok .nr{color:var(--ok-ink)}
.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-ink);white-space:nowrap}
.toggle{cursor:pointer;color:var(--navy-ink);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-ink)}
.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:var(--paper);color:var(--t-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 var(--r-e89a3c);padding-bottom:8px}
.sheet .logo{color:var(--t-1f3864);font-size:24px} .sheet .logo b{color:var(--t-e89a3c)}
.sheet .right{text-align:right;font-size:11px;color:var(--t-5a6478)}
.sheet h1{color:var(--t-1f3864);font-size:18px;margin:18px 0 2px}
.sheet h2{color:var(--t-1f3864);font-size:13px;margin:16px 0 4px;border-bottom:1px solid var(--r-e89a3c);padding-bottom:3px}
.sheet h2 span{color:var(--t-e89a3c);margin-right:8px}
.sheet .sub{color:var(--t-5a6478);font-style:italic;margin-bottom:8px}
.sheet table{min-width:0} .sheet th{background:var(--paper);color:var(--t-1f3864);border-bottom:1.5px solid var(--r-e89a3c);padding:5px 8px}
.sheet td{border-top:1px solid var(--r-e5e8ee);padding:5px 8px;color:var(--t-1c2333)}
.sheet tr.mute td{background:var(--paper);color:var(--t-8a93a5)}
.sheet .nr{color:var(--t-1f3864)} .sheet .pos{border-color:var(--r-e89a3c);color:var(--t-1f3864);min-width:28px;padding:1px 0;font-size:11px}
.sheet .pos.none{border-color:var(--r-d9dee7);color:var(--t-8a93a5)} .sheet .pos.fkk{background:var(--paper);color:var(--t-1f3864);border:1.5px solid var(--r-1f3864)}
.sheet .sum{display:flex;justify-content:flex-end;gap:30px;margin-top:8px;font-weight:bold;color:var(--t-1f3864)}
.sheet .foot{margin-top:auto;border-top:1px solid var(--r-e89a3c);padding-top:8px;font-size:11px;color:var(--t-6b7486);display:flex;justify-content:space-between}
.sheet .tick{color:var(--t-2e7d4f);font-weight:bold}
.sheet .gtag{font-size:11px}
@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-ink)} .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-ink)} .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:var(--t-b3261e);font-weight:bold}
.kklist{font-size:12px;color:var(--ink2)}
td .del{color:var(--t-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}
/* v2.66.0: Ablage, Abgabe und Ordnerstruktur stehen jetzt über der Tabelle – dort schaut man hin,
   bevor man den Monat durchgeht. Nur „Monat löschen“ bleibt unten. */
.export.oben{margin:14px 0 4px;border-left:4px solid var(--orange);background:var(--orange-soft)}
.export.unten{justify-content:flex-end;background:transparent;border-style:dashed}
.export form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.export form select{max-width:200px}
/* ---------------------------------------------------------------- Knopf mit Menü (v2.85.0)
   Die Leiste „Ablage & Abgabe“ hatte sieben Bedienelemente nebeneinander und brach dadurch auf
   zwei Zeilen um. Was nur das Erzeugen betrifft, hängt jetzt am ▾ des Hauptknopfs: ein geteilter
   Knopf. Die eigentlichen Aktionen bleiben sichtbar – versteckt wird nur, was eine Einstellung ist.
   Dasselbe Muster passt überall dort, wo eine Leiste zu voll wird.                              */
.knopfpaar{display:inline-flex}
.knopfpaar > .btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}
.knopfpaar > .pfeil2{border-top-left-radius:0;border-bottom-left-radius:0;padding:7px 9px;
  border-left:1px solid rgba(255,255,255,.45);font-size:11px;line-height:1.2}
.knopfpaar > .pfeil2.on{filter:brightness(.88)}
.knopfpaar > .btn:focus-visible{outline:2px solid var(--navy);outline-offset:2px;z-index:1}
/* Ein Knopf, der nur noch sein Symbol trägt – der Text steht im title und für die Sprachausgabe
   im aria-label. Spart Platz bei Dingen, die man selten braucht. */
.btn.ionly{padding:7px 10px;font-size:15px;line-height:1.1}
/* Das Aufklappmenü. Es liegt im Formular (damit die Felder mitgeschickt werden) und wird nur
   ein- und ausgeblendet; die Stelle berechnet das Skript. */
.expmenue{position:absolute;z-index:60;background:var(--paper);border:1px solid var(--line);
  border-radius:10px;box-shadow:0 14px 36px rgba(0,0,0,.22);padding:8px;min-width:300px;font-size:13px}
.expmenue .emt{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink2);padding:4px 8px 6px}
.expmenue label{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:7px;cursor:pointer;margin:0}
.expmenue label:hover{background:var(--bg)}
.expmenue label input{margin-top:2px;flex:none}
.expmenue label b{font-weight:600;display:block}
.expmenue label small{display:block;color:var(--ink2);font-size:11.5px;margin-top:1px}
.expmenue hr{border:0;border-top:1px solid var(--line);margin:6px 2px}
/* Eine Zeile im Menü, die wie ein Knopf wirkt (Symbol links, Text mit Erklärung rechts). */
.expmenue .emz{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:7px;
  cursor:pointer;text-decoration:none;color:inherit}
.expmenue .emz:hover{background:var(--bg)}
.expmenue .emz b{font-weight:600;display:block}
.expmenue .emz small{display:block;color:var(--ink2);font-size:11.5px;margin-top:1px}

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-ink);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:var(--r-b3261e);color:var(--t-b3261e)}.btn.gefahr:hover{background:var(--f-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:var(--f-b3261e);color:#fff;font-size:11px;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:var(--t-8a1c12);font-style:italic;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fehlt-btn{color:var(--t-b3261e);border-color:var(--r-f1c7c2)}
.fehlt-btn:hover{background:var(--f-fdecea)}
tr.ok .fehlt-grund{color:var(--t-6b4a47)}
.stat.warnst b{color:var(--t-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-ink)}
.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:var(--f-b3261e);color:#fff;border-radius:3px;padding:1px 5px;font-size:11px;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-ink);letter-spacing:.5px;align-self:flex-start}
.login-logo b{color:var(--orange-ink)}
.login-logo small{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:normal;letter-spacing:.34em;color:var(--navy-ink);margin-top:-3px}
.login-logo small i{width:60px;height:2px;background:var(--orange)}
.login h1{margin:8px 0 0;color:var(--navy-ink);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:var(--f-fdecea);color:var(--t-8a1c12);border-left:4px solid var(--r-b3261e);padding:8px 12px;font-size:13px}
.login .version{padding:8px 0 0}
.login-info{border-top:1px solid var(--line);padding-top:10px;font-size:13px;color:var(--ink2)}
.login-info a,.login-weg{color:var(--navy-ink);font-weight:bold}
.login-weg{display:inline-block;margin-top:4px}
.tab-klein{border-collapse:collapse;min-width:0;width:100%} .tab-klein th{background:transparent;color:var(--navy-ink);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-ink)}
.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:var(--f-fff4dc);color:var(--t-7a4e00)}
.warnbox .ok{color:var(--ok-ink);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-ink);margin-bottom:8px}
.vs-kopf{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.vs-warn{background:var(--f-fff4dc);border-left:4px solid var(--r-b7791f);color:var(--t-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-ink);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-ink)}
.drop b{color:var(--navy-ink)}

/* 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,var(--r-e5e8ee));border-radius:8px;background:var(--f-fafbfc)}
.druck>span{font-weight:600;color:var(--navy,var(--t-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-ink)}
.nwchip.fehlt{border-color:var(--orange);background:var(--orange-soft);color:var(--t-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-ink)} .nwstat.fehlt{background:var(--orange-soft);color:var(--t-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-ink);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-ink)} .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:var(--t-1c2333);background:var(--paper);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-ink);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-ink)} .steps li.now .sub{color:var(--warn-ink);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-ink)}
.nwbtn .sub{font-size:11px;color:var(--ok-ink)}
.nwbtn.nwfehlt{border-color:var(--warn)} .nwbtn.nwfehlt .sub{color:var(--warn-ink);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-ink)} .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:var(--t-9aa3b5)}

/* Rückfragen */
.rfcnt{background:var(--orange-tief);color:#fff;border-radius:10px;font-size:11px;padding:1px 7px;font-weight:bold;margin-left:4px}
/* v2.57.0: zweiter Zähler am Knopf „Aufgaben“ – rot = was andere mir gegeben haben */
.rfcnt.rot{background:var(--bad,var(--f-c0392b));margin-left:3px}
header .btn.ghost:hover .rfcnt.rot{background:var(--paper);color:var(--bad,var(--t-c0392b))}
.rf-btn{color:var(--warn-ink);border-color:var(--r-e8d5a8);margin-left:6px} .rf-btn:hover{background:var(--warn-soft)}
.rf-mark{display:inline-block;background:var(--warn);color:#fff;font-size:11px;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:var(--t-7a5410);font-style:italic;max-width:300px}
.rf-ok{color:var(--ok-ink);border-color:var(--r-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-ink)}
/* 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-ink);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:var(--t-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-ink);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:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em}
.mk-zahlen .gut b{color:var(--ok-ink)} .mk-zahlen .warn b{color:var(--warn-ink)} .mk-zahlen .rot b{color:var(--t-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;justify-content:flex-end}.belegzelle .file{margin-left:auto}.belegzelle .fehlt{margin-left:auto} .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-ink);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;--privat:#E8A054}} :root[data-theme="dark"]{--aus:#7FA3E0;--privat:#E8A054}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:12px}
/* v2.97.0: Die Reihe war ein Raster für genau fünf Kacheln – seit v2.93.0 sind es bis zu sechs,
   und zwei davon tragen Text, der nicht umbricht. Ein 1fr-Feld wird nie schmaler als sein
   Inhalt, also drückte die Reihe die Nachbarn zusammen und schob die letzte Kachel 143 px über
   den Rand. Jetzt: so viele Spalten, wie Platz ist (min. 190 px), und jede Kachel darf schrumpfen. */
.kpi{min-width:0;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)}
@media (max-width:1299px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
#kpiSaldo small{white-space:normal;overflow:visible;text-overflow:clip}   /* die zwei Zeilen Brutto/Netto dürfen umbrechen statt mit … zu enden */
a.kpi:hover{border-color:var(--navy);border-left-color:inherit}
.kpi b{font-size:22px;font-variant-numeric:tabular-nums;color:var(--navy-ink)}
.kpi span{font-size:11px;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-ink)}
.kpi.rot{border-left-color:var(--r-b3261e)} .kpi.rot b{color:var(--t-b3261e)}
.kpi.ok{border-left-color:var(--ok)} .kpi.ok b{color:var(--ok-ink)}
.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-ink);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}
/* v2.60.1: kleiner Schieber „Aktive · Alle · Erledigte“ in der Aufgabenleiste – steht mitten in der Zeile, nicht rechts */
.seg.klein{margin-left:0}
.seg.klein button{padding:4px 9px;font-size:11.5px}
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:11px} .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:var(--f-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-ink);font-weight:bold}
.todo .due.spaet{background:var(--f-fdecea);color:var(--t-b3261e);font-weight:bold}
.av{width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;font-size:11px;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:11px;padding:1px 6px;border-radius:4px;background:var(--mute-row);color:var(--ink2);margin-right:3px}
.clz{font-size:11px;color:var(--ink2);margin-right:4px} .clz.ok{color:var(--ok-ink)}
.infoz{font-size:11px;color:var(--ink2);margin-right:4px} .lnk{font-size:12px;color:var(--navy-ink);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-ink);font-size:12px}
.rfl .txt{color:var(--t-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-ink);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,minmax(0,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-ink);font-weight:bold;background:var(--mute-row)}
.todo .due.fertig{background:var(--ok-soft);color:var(--ok-ink)}
.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-ink);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-ink)} .pfeil{color:var(--orange-ink);font-weight:bold}
/* v2.81.0: In der Kopfzeile sitzt derselbe Pfeil auf Dunkelblau – dort hell. */
header .pfeil{color:var(--auf-navy-akzent)}
.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-ink)}
.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:170px;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:11px;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-ink)} .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-ink);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:11px;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-ink)}
.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-ink);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:var(--f-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-ink)}
.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:var(--f-999999)}
.col h3 .wip{margin-left:auto;font-size:11px;color:var(--ink2);font-weight:normal}.col h3 .wip.over{color:var(--t-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 var(--r-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:var(--t-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:11px;background:var(--orange-soft);color:var(--warn-ink);padding:1px 7px;border-radius:6px;text-decoration:none}.tg.rf{background:var(--warn-soft);color:var(--warn-ink)}
.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:var(--f-fdecea);color:var(--t-b3261e);font-weight:bold}.due.heute{background:var(--warn-soft);color:var(--warn-ink);font-weight:bold}.due.ok{background:var(--ok-soft);color:var(--ok-ink)}.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:11px;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-ink);border-radius:6px;padding:2px 8px;margin-top:6px;display:inline-block}
.k:hover{z-index:40}                               /* v2.34.0: Karte samt Checklisten-Fenster über den Text darunter heben */
.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:41;display:none;pointer-events:none;box-shadow:0 8px 20px rgba(0,0,0,.3);white-space:normal;overflow-wrap:anywhere}
.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-ink);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:var(--t-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:var(--f-e3ecf8);color:var(--it-ink)}.st.wart{background:var(--orange-soft);color:var(--warn-ink)}.st.fertig{background:var(--ok-soft);color:var(--ok-ink)}
.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}
/* v2.82.0: Fehler und Warnungen heben sich ab – sonst übersieht man sie zwischen den
   Bestätigungsmeldungen. Die Flächen sind so dunkel, dass weiße Schrift sicher darauf sitzt. */
.kb-toast.err{background:var(--toast-err);max-width:min(560px,92vw);text-align:left;line-height:1.45}
.kb-toast.warn{background:var(--toast-warn);max-width:min(560px,92vw);text-align:left;line-height:1.45}
:root{--toast-err:#8E1D14;--toast-warn:#6B4A05}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--toast-err:#8E1D14;--toast-warn:#6B4A05}}
:root[data-theme="dark"]{--toast-err:#8E1D14;--toast-warn:#6B4A05}
/* Dialog */
/* v2.60.1: Kopf und Fußzeile stehen fest, die Mitte rollt – sonst reicht das Fenster über den Bildschirm hinaus */
.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;max-height:92vh;flex-direction:column}
.kb-ed[open]{display:flex}        /* nur im geöffneten Zustand – ein dialog ohne [open] muss display:none bleiben */
.kb-ed .h,.kb-ed .f{flex:none}
.kb-ed .b{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.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-ink);font-size:13px}
/* v2.72.0: drei Bereiche mit zwei Griffen – Auswahl | Kacheln | Vorschau; alle Breiten ziehbar */
.dms-side{display:grid;grid-template-columns:var(--filtw,200px) 10px minmax(0,1fr);gap:0;align-items:start}
.dms-filt{display:flex;flex-direction:column;gap:6px;min-width:0}
.dms-filt .fl h4{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.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,420px);gap:8px;align-items:start;padding-left:6px}
/* v2.98.0: ohne Auswahl bekommt das Raster die ganze Breite – Detailfeld und Griff sind weg */
.dms-lay.zu{grid-template-columns:minmax(0,1fr)}
.dms-lay.zu .dms-griff,.dms-lay.zu .dms-det{display:none}
.dms-det .detx{position:absolute;top:6px;left:6px;z-index:3;width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink2);cursor:pointer;font-size:13px;line-height:1}
.dms-det .detx:hover{background:var(--orange);color:#fff;border-color:var(--orange)}
.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-ink)}
.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}
/* v2.72.0: die Kacheln füllen die Breite aus – vorher feste Spalten, rechts blieb eine halbe Spalte leer */
.dms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--kachel,190px),1fr));gap:10px;justify-content:stretch}
.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:var(--f-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 var(--r-cfd6df);background:var(--paper)}
.noimg{color:var(--ink2);font-size:12px;border:1px dashed var(--line);padding:18px 24px;border-radius:6px}
.q{font-size:11px;padding:2px 7px;border-radius:6px;font-weight:bold}.dok .th .q{position:absolute;top:6px;left:6px;z-index:1}
.q.b{background:var(--f-e3ecf8);color:var(--it-ink)}.q.n{background:var(--ok-soft);color:var(--ok-ink)}.q.f{background:var(--orange-soft);color:var(--warn-ink)}
.dok .th .ocr{position:absolute;top:6px;right:6px;font-size:11px;color:var(--ink2);background:var(--paper);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:11px}
.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-ink)}
.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:var(--f-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-ink);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-ink);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 var(--r-bfe3cc);border-radius:6px;padding:10px 14px;margin-bottom:12px}
.lock.nach{background:var(--f-fdecea);border-color:var(--r-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:var(--f-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:11px;padding:2px 8px;border-radius:8px;font-weight:bold}.mk-status.nach{background:var(--f-fdecea);color:var(--t-b3261e)}.mk-status.abg{background:var(--ok-soft);color:var(--ok-ink)}
.mkarte.nach{border-color:var(--r-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:11px;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;min-width:0;border-right:1px solid var(--line);padding:4px 5px;display:flex;flex-direction:column;background:var(--paper)}
.cal-monat .row>*,.qm .row>*{min-width:0}   /* v2.56.1: ohne das sprengt ein langer Titel die Spalte */
.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-ink);margin-bottom:3px}.cd .dn i{margin-left:auto;font-style:normal;font-size:11px;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:flex-start;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)}
/* v2.56.1: der Titel bricht um (höchstens zwei Zeilen) statt aus der Zelle zu laufen */
.cc .t{flex:1;min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word;overflow:hidden;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:2.5em}
.cc .m{font-size:11px;color:var(--ink2);white-space:nowrap}
.cc.neu{border-left-color:var(--ink2)}.cc.arb{border-left-color:var(--it);background:var(--f-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 var(--r-b3261e)}.cc .r{color:var(--t-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:11px;color:var(--navy-ink);cursor:pointer;padding:2px 4px}
.cal-woche{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.cal-woche .cd{min-height:120px;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}
/* v2.60.0: Aufgaben-Wochenansicht als Stundenraster – gleiche Bauart wie die Arbeitszeit */
.awoche{grid-template-columns:56px repeat(7,minmax(90px,1fr))}
.awoche .wk.heute{background:var(--orange-soft)}
.awoche .wganz{border-left:1px solid var(--line);border-bottom:2px solid var(--line);background:var(--paper);padding:4px;min-height:44px}
.awoche .wganz.lbl{border-left:0;background:var(--sek);color:var(--ink2);font-size:11px;text-align:right;
  padding:6px 6px 0 0;display:flex;align-items:flex-start;justify-content:flex-end}
.awoche .wganz.heute{background:var(--orange-soft)}
.awoche .wganz .cl2{display:flex;flex-direction:column;gap:3px;min-height:26px}
.awoche .wzeiten{display:block}
.awoche .wspalte{position:relative;border-left:1px solid var(--line);height:520px;cursor:default}
.awoche .wspalte.heute{background:var(--orange-soft)}
.awoche .wraster{position:absolute;inset:0;background-image:repeating-linear-gradient(to bottom,transparent,transparent 39px,var(--line) 39px,var(--line) 40px)}
.awoche .wblock.ab{display:block;position:absolute;left:3px;right:3px;border-radius:7px;padding:3px 6px;font-size:11px;
  color:var(--ink);background:var(--mute-row);border-left:3px solid var(--ink2);cursor:grab;overflow:hidden;text-align:left}
.awoche .wblock.ab b{display:block;font-size:11px;font-variant-numeric:tabular-nums}
.awoche .wblock.ab small{display:block;line-height:1.2;overflow:hidden}
.awoche .wblock.ab .r{color:var(--t-b3261e);font-style:normal;margin-right:3px}
.awoche .wblock.ab.arb{border-left-color:var(--it);background:var(--f-e3ecf8)}
.awoche .wblock.ab.fertig,.awoche .wblock.ab.arch{border-left-color:var(--ok);background:var(--ok-soft);opacity:.75}
.awoche .wblock.ab.fertig small{text-decoration:line-through;color:var(--ink2)}
.awoche .wblock.ab.w{box-shadow:inset 0 0 0 1px var(--r-b3261e)}
.awoche .wblock.ab.aktiv{cursor:grabbing;box-shadow:0 4px 14px rgba(31,56,100,.35);z-index:5;opacity:.93}
.awoche .wblock.ab .wgriff{position:absolute;left:0;right:0;bottom:0;height:7px;cursor:ns-resize}
.awoche .wsum{grid-template-columns:56px repeat(7,minmax(90px,1fr))}
.awoche .whinweis{grid-column:1/-1;padding:6px 10px;font-size:11.5px;color:var(--ink2);border-top:1px solid var(--line);background:var(--bg)}
.zeitpaar{display:grid;grid-template-columns:1fr 1fr;gap:6px}
@media(max-width:760px){.awoche{grid-template-columns:44px repeat(7,minmax(74px,1fr))}
  .awoche .wsum{grid-template-columns:44px repeat(7,minmax(74px,1fr))}}
.cal-ueber{background:var(--f-fdecea);border:1px solid var(--r-f0c4be);border-radius:10px;padding:8px 12px;margin-bottom:10px}.cal-ueber b{font-size:12px;color:var(--t-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-ink);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:11px;border-radius:7px;padding:0 4px;background:var(--line);color:var(--ink)}
.qd.hat{background:var(--f-e3ecf8)}.qd.hat i{background:var(--it);color:#fff}.qd.rot{background:var(--f-fdecea)}.qd.rot i{background:var(--f-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}
/* v2.56.0: Suchfeld und aufklappbare Gruppen in der Rubrikenspalte */
.setsuche{position:relative;margin-bottom:6px}
.setsuche input{width:100%;box-sizing:border-box;font:inherit;font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}
.setsuche input:focus{outline:none;border-color:var(--navy);background:var(--paper)}
.setsuche .tr{display:block;font-size:11px;color:var(--ink2);padding:3px 2px 0}
.setgrp{border-top:1px solid var(--line);margin-top:2px}
.setgrp:first-of-type{border-top:none;margin-top:0}
.setgrp>summary{list-style:none;cursor:pointer;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);padding:8px 8px 6px;display:flex;align-items:center;gap:6px;user-select:none}
.setgrp>summary::-webkit-details-marker{display:none}
.setgrp>summary::before{content:"▸";font-size:11px;color:var(--ink2);transition:transform .12s}
.setgrp[open]>summary::before{transform:rotate(90deg)}
.setgrp>summary:hover{color:var(--ink)}
.setgrp button{width:100%;box-sizing:border-box;padding-left:20px}
.setgrp.suchtreffer>summary{color:var(--navy-ink)}
.setnav .setgrp[hidden]{display:none}
.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}
  .setnav .setsuche,.setnav .setgrp{flex:1 1 100%}}
/* v2.69.0: Am Handy darf kein Eingabefeld über den Rand hinausragen – feste Pixelbreiten aus der
   PC-Ansicht (z. B. 260 px neben einem Etikett) haben die Seite sonst auf 450 px aufgezogen. */
@media (max-width:760px){
  /* v2.96.0: Am Handy blieb die Beschriftungsspalte 220 px breit – für das Feld daneben
     blieben 130 px, und Felder mit eigener Mindestbreite (Eingangsordner: 260 px) schoben die
     ganze Seite quer. Am Handy steht die Beschriftung deshalb über dem Feld. */
  .setsplit .set{grid-template-columns:1fr}
  .setsplit .set > div{min-width:0}
  .setsplit input,.setsplit select,.setsplit textarea{max-width:100%;min-width:0}
  .setsplit .zeile{flex-wrap:wrap}
  .setsplit table{min-width:0}
  .setsplit td,.setsplit th{white-space:normal}
}
.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:var(--paper);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:var(--paper);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:var(--paper)}
.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-ink)}
.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:11px;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:11px}
.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:var(--f-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-ink);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:11px;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-ink);letter-spacing:.04em}.ml .qk .qs{font-size:11px;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-ink);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:var(--f-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:11px;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-ink);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:var(--f-b3261e)}
.statusleiste a{color:var(--navy-ink);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-ink);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-ink)}
.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:11px;padding:1px 7px;border-radius:9px;background:var(--mute-row);color:var(--ink2);flex:none}
.tag.h-app{background:var(--f-e7f0fb);color:var(--t-2f6db5)}.tag.h-beleg{background:var(--f-e9f5ee);color:var(--t-1e7f4c)}.tag.h-nw{background:var(--f-fff3e3);color:var(--t-9a5d0c)}.tag.h-fehlt{background:var(--f-fdecea);color:var(--t-b3261e)}.tag.h-dms{background:var(--f-eee9f8);color:var(--t-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 var(--r-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:var(--t-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:var(--f-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:var(--f-f8fafc);display:flex;flex-direction:column;gap:8px}
.erfvor iframe{flex:1;min-height:420px;border:1px solid var(--line);border-radius:6px;background:var(--paper);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-ink);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:var(--f-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,var(--f-e9edf3));color:var(--navy-ink);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:11px} .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-ink);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-ink);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:11px;opacity:.8}

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

/* Stempel: unbekannte Daten (z. B. Karten-Einzug) – Pflichtfeld, orange markiert */
.stempel .st-in.fehlt{border-color:var(--r-e8891d);background:var(--f-fff6ea)}
.stempel .st-fehlt{color:var(--t-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:var(--t-9aa3b2)} table.pkk tr.priv td b.txt{color:var(--t-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:var(--f-eef7f1)}
table.pkk .tag{font-size:11px;border-radius:4px;padding:2px 6px;font-weight:bold;white-space:nowrap}
table.pkk .tag.zd{background:var(--f-eaf1fb);color:var(--t-2f6db5)} table.pkk .tag.nr{background:var(--f-e6f2ea);color:var(--t-2e7d4f)} table.pkk .tag.neu{background:var(--orange-soft);color:var(--orange-ink)} table.pkk .tag.gut{background:var(--f-e6f2ea);color:var(--t-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-ink)} .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-ink)} .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-ink)} .egz.uebersprungen .egtext,.egz.fehler .egtext{color:var(--t-b3261e)}
.egz .tag{font-size:11px;border-radius:4px;padding:2px 7px;font-weight:bold;white-space:nowrap}
.egz .tag.ok{background:var(--f-e6f2ea);color:var(--t-2e7d4f)} .egz .tag.warn{background:var(--f-fff3e0);color:var(--t-b7791f)} .egz .tag.rot{background:var(--f-fdecea);color:var(--t-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}
/* v2.66.0: die zweite Zeile (Info, Tags, Marken) wurde unten abgeschnitten – mehr Luft und feste Zeilenhöhe */
.al .z{padding-top:11px;padding-bottom:11px;min-height:54px}
.al .z .t small{line-height:1.55;row-gap:4px}
.al .z .tg,.al .z .apriv,.al .z .wart{padding-top:2px;padding-bottom:2px;line-height:1.35}
.al .kopf{background:var(--paper);border-bottom:2px solid var(--orange);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy-ink);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:var(--t-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:var(--f-e3ecf8);color:var(--navy-ink);border-radius:6px;padding:1px 7px;white-space:nowrap;text-decoration:none}.al .tg.rf{background:var(--orange-soft);color:var(--warn-ink)}
.al .wart{font-size:11px;background:var(--orange-soft);color:var(--warn-ink);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:var(--t-b3261e);font-weight:bold}.al .due.heute{color:var(--warn-ink);font-weight:bold}.al .due.kein{color:var(--ink2)}.al .due.ok{color:var(--ok-ink)}
.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:11px;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:var(--r-8a96a8)}.liste[data-st=arb] .k{border-left-color:var(--r-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:var(--r-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:var(--f-e3ecf8);color:var(--navy-ink);border-radius:6px;padding:1px 7px}.k .tg.rf{background:var(--orange-soft);color:var(--warn-ink)}
.k .fuss{border-top:1px solid var(--line);padding-top:7px;margin-top:9px}
.k .due{background:var(--mute-row)}.k .due.rot{background:var(--f-f9e0de);color:var(--t-b3261e);font-weight:bold}.k .due.heute{background:var(--orange-soft);color:var(--warn-ink);font-weight:bold}.k .due.ok{background:var(--ok-soft);color:var(--ok-ink)}
.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:11px;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:11px;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:var(--t-b3261e)}
.tg.neu,.al .tg.neu,.k .tg.neu{background:var(--f-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:11px;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:var(--paper);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:var(--t-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-ink)}.rbkpi small{font-size:11px;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:var(--r-b3261e)}
.rbgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rbh{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--navy-ink);font-weight:bold;margin:12px 0 6px}.rbh.ok{color:var(--ok-ink)}.rbh.rot{color:var(--t-b3261e)}.rbh.warn{color:var(--warn-ink)}.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:11px;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}/* v2.85.0: Die Auswahlfelder duerfen nicht beliebig breit werden, sonst bricht die Leiste um.
   Der vollstaendige Text steht weiterhin in der aufgeklappten Liste. */
.awbar select{max-width:175px}
.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-ink);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:11px;color:var(--t-b0b7c3);margin-left:4px;letter-spacing:0}.aw .al .kopf .sk.on{color:var(--orange-ink)}.aw .al .kopf .sk.on i{color:var(--orange-ink)}.aw .al .kopf .sk:hover{color:var(--orange-ink)}.aw .al .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.aw .al .r.plus{color:var(--ok-ink)}.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-ink);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 small.nt{font-size:11px}  /* v2.97.0: Netto in eigener Zeile statt hinter „…“ */.ml .mt .plus{color:var(--ok-ink);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:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.04em}
.ml .mn.gut b{color:var(--ok-ink)}.ml .mn.warn b{color:var(--warn-ink)}.ml .mn.rot b{color:var(--t-b3261e)}.ml .mz.nach .mt b{color:var(--warn-ink)}
@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}
/* v2.56.1: alle Zeilen gleich hoch – Titel und Zusatzzeile je einzeilig, der Rest steht im Fenster */
.al-gross .z{padding:8px 14px;height:58px;box-sizing:border-box;overflow:hidden}
.al-gross .t{min-width:0;overflow:hidden}
.al-gross .t b{font-size:15px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.al-gross .t small{font-size:12.5px;display:flex;align-items:center;gap:6px;flex-wrap:nowrap;white-space:nowrap;overflow:hidden;line-height:18px;height:18px}
.al-gross .t small>*{flex:0 0 auto}
.al-gross .t small .info{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.al .grip{color:var(--t-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-ink);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 var(--r-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:var(--f-e3ecf8);color:var(--navy-ink);border-radius:6px;padding:2px 7px;white-space:nowrap;cursor:pointer;user-select:none}
.tagf .tgc i{font-style:normal;font-size:11px;color:var(--ink2)}.tagf .tgc:hover{background:var(--orange-soft);color:var(--warn-ink)}.tagf .tgc:hover i{color:var(--warn-ink)}
.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:11px;color:var(--ink2);padding:5px 10px 2px;text-transform:uppercase;letter-spacing:.04em}
.al .tg.gs{background:var(--ok-soft);color:var(--ok-ink)}
/* 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:var(--t-8a5a12);border:1px solid var(--r-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-ink)}.vw:hover{border-color:var(--orange)}
.vw-btn{color:var(--navy-ink);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-ink)}.vwliste .tg{font-size:11px;background:var(--f-e3ecf8);color:var(--navy-ink);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:11px;color:var(--ink2)}.awpre .chip i:hover{color:var(--rot-ink)}
/* Nur-Lesen-Zugang (v2.24.0): Band + Eingabe-Elemente ausblenden, Server sperrt zusätzlich alle Schreibzugriffe */
.leserband{background:var(--orange-tief);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:not(.ansehen),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}
/* Zeile wird gespeichert (v2.24.3) */
tr.speichert td{opacity:.55;transition:opacity .15s}tr.speichert.z1 td.nr::after{content:" ⏳";font-size:11px;opacity:1}

/* Belegspalte rechtsbündig – Auge/Tauschen/✕ neben dem Haken (v2.24.6) */
th.c-beleg{text-align:right}
/* Nachweis „nicht vorhanden“ (v2.25.0) */
.dots i.e,.pop .row i.e{background:var(--ink2);opacity:.6}
.pop .row .fn.entf{color:var(--ink2);font-style:italic}
.pop .row .nwx{color:var(--rot-ink);border-color:var(--r-e9c2be);padding:2px 7px}.pop .row .nwx:hover{background:var(--f-f9e0de)}
/* Einlage / Eigenerlag: keine Nummer, fliederfarben (v2.25.4) */
:root{--einl:#F1EAF8;--einl-ok:#E9E0F3;--einl-ink:#6B4C9A;--einl-chip:#6B4C9A}
tr.z1.einlage td,tr.z2.einlage td,tr.z1.einlage.ok td,tr.z2.einlage.ok td,body.zebra tr.zb.einlage td,body.zebra tr.zb.einlage.ok td{background:var(--einl)}
tr.z1.einlage.ok td,tr.z2.einlage.ok td{background:var(--einl-ok)}
/* v2.84.0: Das Kürzel braucht eine Fläche, die auch in der dunklen Ansicht dunkel bleibt –
   vorher stand hier Weiß auf dem aufgehellten Flieder (2,9:1). */
.pos.einl{background:var(--einl-chip);border-color:var(--einl-chip);color:#fff;font-size:11px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--einl:#231E2E;--einl-ok:#272236;--einl-ink:#A58EC7;--einl-chip:#5B3E8A}}
:root[data-theme="dark"]{--einl:#231E2E;--einl-ok:#272236;--einl-ink:#A58EC7;--einl-chip:#5B3E8A}
/* v2.84.0: Kapitalerträge (Zinsen, KESt) – eigener Ton, damit man sie nicht mit dem
   fliederfarbenen Eigenerlag verwechselt. Teal statt Violett.
   --kapi      Fläche der Zeile      --kapi-ink  Schrift darauf
   --kapi-chip Fläche des Kürzels KE (bleibt in beiden Ansichten dunkel, Schrift ist weiß) */
:root{--kapi:#E6F3F3;--kapi-ok:#DCEDED;--kapi-ink:#145E5E;--kapi-chip:#13696B}
tr.z1.kapital td,tr.z2.kapital td,tr.z1.kapital.ok td,tr.z2.kapital.ok td,body.zebra tr.zb.kapital td,body.zebra tr.zb.kapital.ok td{background:var(--kapi)}
tr.z1.kapital.ok td,tr.z2.kapital.ok td{background:var(--kapi-ok)}
.pos.kapi{background:var(--kapi-chip);border-color:var(--kapi-chip);color:#fff;font-size:11px}
:root{--kapital-ink:var(--kapi-ink)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--kapi:#1B3030;--kapi-ok:#1E3434;--kapi-ink:#27AFAF;--kapi-chip:#0F5456}}
:root[data-theme="dark"]{--kapi:#1B3030;--kapi-ok:#1E3434;--kapi-ink:#27AFAF;--kapi-chip:#0F5456}

.zuord select.art-el{color:var(--einl-ink);font-weight:bold;opacity:1}
/* Bestätigte Zeile gesperrt (v2.25.7): Felder aus, Chips ohne Klick, Beleg-Knöpfe aus – nur der Haken bleibt */
tr.z2.fix .zuord :is(input,select):disabled{opacity:.7;cursor:not-allowed;background:transparent;border-color:transparent}
tr.z2.fix .chips .chip{pointer-events:none;opacity:.75}
tr.z1.fix .belegzelle .btn:disabled:not(.ansehen),tr.z1.fix .belegzelle .del.gesperrt,tr.z1.fix td:last-child .del.gesperrt{opacity:.35;pointer-events:none}

/* v2.25.8: unberücksichtigte Zeile (Admin) – dunkler als Kreditkarten-Einzug */
:root{--ignor:#DCDFE6;--fehlt-row:#FDECEC}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--ignor:#232833;--fehlt-row:#2E1A18}}:root[data-theme="dark"]{--ignor:#232833;--fehlt-row:#2E1A18}
tr.mute.ignor td{background:var(--ignor);color:var(--t-6b7280)}
tr.z1.fehltz td,tr.z2.fehltz td,body.zebra tr.zb.fehltz td{background:var(--fehlt-row)}
tr.mute.ignor td b{color:var(--t-6b7280);text-decoration:line-through}
.ignor-badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;background:var(--f-9aa1ae);color:#fff;border-radius:4px;padding:1px 6px;margin-right:6px}
.del.ign{font-size:15px;opacity:.55}.del.ign:hover{opacity:1;color:var(--t-b45309)}

/* v2.26.0: ausgelassener Monat + Kontextmenü in der Monatsleiste */
.ml .m.ausgel{color:var(--t-a5abb7);background:repeating-linear-gradient(135deg,var(--mute-row) 0 6px,var(--bg) 6px 12px);cursor:context-menu}.ml .m.ausgel .n{color:var(--t-a5abb7)}.ml .m.ausgel .d{background:var(--line);outline:1px solid var(--r-a5abb7)}
.mlctx{position:fixed;z-index:200;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.2);min-width:250px;padding:6px;font-size:13.5px}
.mlctx div{padding:8px 10px;border-radius:6px;cursor:pointer;display:flex;gap:8px;align-items:center}.mlctx div:hover{background:var(--orange-soft)}
.mlctx div small{margin-left:auto;color:var(--ink2);font-size:11px}.mlctx .sep{height:1px;background:var(--line);margin:4px 6px;padding:0}.mlctx .gefahr{color:var(--t-b3261e)}
.mlctx .dis{color:var(--t-b0b6c2);cursor:default}.mlctx .dis:hover{background:none}.mlctx .mlk{font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em;cursor:default}.mlctx .mlk:hover{background:none}

/* v2.26.0: Zeilenfarben in den Einstellungen */
.farben{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:4px 24px;min-width:0}
.fz{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px dashed var(--line)}
.fz input[type=color]{width:38px;height:28px;border:1px solid var(--line);border-radius:6px;padding:1px;background:var(--paper);cursor:pointer;flex:0 0 auto}
.fz .fzt{display:flex;flex-direction:column;min-width:0;flex:1}.fz b{font-weight:normal}.fz small{color:var(--ink2);font-size:11px;line-height:1.3}.fz .btn{margin-left:auto;flex:0 0 auto}
.pane table.farbvorschau,.pane table.sichtab{min-width:0}
.farbvorschau{border-collapse:collapse;width:100%;table-layout:fixed;font-size:13px;margin-top:12px}.farbvorschau td,.farbvorschau th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.farbvorschau th{background:var(--navy);color:#fff;text-align:left;padding:6px 8px;font-size:11px}.farbvorschau td{padding:6px 8px;border-bottom:1px solid var(--line)}
.sichtab{border-collapse:collapse;width:100%;font-size:13px}.sichtab th{text-align:left;font-size:11px;color:var(--ink2);padding:4px 8px;border-bottom:1px solid var(--line)}.sichtab td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.sichtab td.h{text-align:right}.sichtab td.h .btn{margin:2px 0}#sichListe{overflow-x:auto;max-width:100%}.sichtab td:first-child small{word-break:break-all}.sichtab td.num{text-align:right;white-space:nowrap}
.rbkpi .g b{color:var(--ok-ink)}.rbkpi .r b{color:var(--t-b3261e)}

/* v2.26.2: Kopfleiste kompakter, damit alle Knöpfe auch bei 1280 px in eine Zeile passen */
header .btn.ghost{padding:5px 8px;font-size:12.5px;white-space:nowrap}header .hd-sp{flex:1;min-width:6px}
header .btn.ghost.user span.ab{opacity:.75;font-size:11px}
/* v2.56.0: geteilter Knopf – links das Ziel, rechts der Pfeil fürs Menü */
.btnpaar{display:inline-flex;align-items:stretch}
.btnpaar .btn.ghost.l{border-top-right-radius:0;border-bottom-right-radius:0;border-right-color:rgba(255,255,255,.25)}
.btnpaar .btn.ghost.r{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none;padding-left:5px;padding-right:6px}
.btnpaar .btn.ghost.r .pfeil{font-size:11px;opacity:.85}
@media (max-width:1600px){header .hd-sub{display:none}header .suchwort{display:none}}   /* v2.98.0: Untertitel und das Wort „Suche“ weichen zuerst */
@media (max-width:1400px){header{gap:8px;padding:10px 12px}header .hd-sub{display:none}header .btn.ghost{padding:5px 6px;font-size:12px}header .logo{transform:scale(.9);transform-origin:left center}header .imp{padding:5px 8px!important;font-size:12.5px!important}header .hd-title{font-size:14px}}

/* v2.26.3: Monatsseite – Monatsleiste links am Rand angepinnt, Inhalt nutzt die volle Breite */
@media (min-width:1001px){
body.monatseite main{max-width:none;padding:0;margin:0}
body.monatseite .msplit{display:block;padding-left:214px}
body.monatseite .ml{position:fixed;left:0;top:var(--kopfh,80px);bottom:28px;width:214px;box-sizing:border-box;overflow-y:auto;border-radius:0;border-top:0;border-left:0;border-bottom:0;padding:10px 10px 16px;box-shadow:2px 0 8px rgba(0,0,0,.04);z-index:5}
body.monatseite .mmain{padding:18px 24px 40px;min-width:0}
body.monatseite .flash{margin:0 24px}
}

/* ---- Auswertung: Jahresüberblick (v2.27.0) ------------------------------- */
.jb{margin-bottom:6px}
.jbkopf{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.jbkopf .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--ink2)}
.jbkopf h2{font-size:17px;color:var(--navy-ink);margin:0 0 0 8px}
.jbkopf .chips{display:flex;gap:6px}
.jkpi{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px}
.jkpi>div{background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:10px;padding:11px 14px}
.jkpi b{display:block;font-size:21px;letter-spacing:-.3px;color:var(--navy-ink)}
.jkpi b.plus{color:var(--ok-ink)} .jkpi b.minus{color:var(--rot,var(--t-b3261e))} .jkpi b.pro{color:var(--t-8a5a12)} .jkpi b.el{color:var(--einlage-ink)}
.jkpi span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--ink2);margin-top:2px}
.jkpi small{display:block;font-size:11.5px;color:var(--ink2);margin-top:5px}
.jkpi .ein{border-left-color:var(--ok)} .jkpi .aus{border-left-color:var(--r-b3261e)}
.jkpi .pro{border-left-color:var(--orange);background:var(--orange-soft)} .jkpi .el{border-left-color:var(--einlage)}
.jsplit{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:stretch;margin-bottom:14px}
.jsplit>.awbox,.jsplit2>.awbox{display:flex;flex-direction:column}
.jpro>div:not(.awh){display:flex;flex-direction:column;flex:1}  /* v2.34.0: nicht die Überschrift dehnen – sonst Leerraum oben */
.jpro .jwarn{margin-top:auto}                    /* Hinweis unten andocken, Kachel so hoch wie das Diagramm (v2.33.1) */
.jsplit2{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:stretch;margin-bottom:14px}
.jm,.jmon{margin-bottom:14px}
.awh .leicht{font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink2);font-size:11.5px;margin-left:8px}
.jfuss{color:var(--ink2);font-size:12px;margin-top:6px}
.jmeth{display:flex;gap:6px;margin:2px 0 12px}
.jmeth span{flex:1;text-align:center;border:1px solid var(--line);border-radius:8px;padding:6px 4px;font-size:11.5px;color:var(--ink2);cursor:pointer}
.jmeth span:hover{background:var(--orange-soft)}
.jmeth span.on{background:var(--orange);border-color:var(--orange);color:var(--auf-orange);font-weight:bold}
.jgross{font-size:28px;font-weight:bold;letter-spacing:-.5px;color:var(--t-8a5a12)}
.jband{margin:12px 0 5px;height:8px;border-radius:5px;background:linear-gradient(90deg,var(--f-f3d9ae),var(--f-e89a3c),var(--f-c8e0f5));position:relative}
.jband i{position:absolute;top:-4px;width:3px;height:16px;background:var(--navy);border-radius:2px}
.jbandtxt{display:flex;justify-content:space-between;font-size:11px;color:var(--ink2)}
.jschnitt{margin-top:12px;border-top:1px solid var(--line);padding-top:9px}   /* v2.34.0 */
.jschnitt .jsh{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink2);margin-bottom:5px}
.jschnitt .jsz{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12.5px;padding:2px 0}
.jschnitt .jsz.stark{border-top:1px solid var(--line);margin-top:4px;padding-top:5px;font-weight:bold}
.jschnitt .jsz.grau,.jschnitt .jsz.grau span{color:var(--ink2);font-size:11.5px}
.jschnitt .plus{color:var(--ok-ink)}.jschnitt .minus{color:var(--t-b3261e)}
.jgrenze{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.jgrenze .gk{display:flex;justify-content:space-between;font-size:12.5px}
.jgrenze .gbar{height:10px;border-radius:6px;background:var(--f-edf0f4);overflow:hidden;margin:5px 0 3px}
.jgrenze .gbar i{display:block;height:100%;border-radius:6px;background:var(--ok)}
.jgrenze .gbar.or i{background:var(--orange)} .jgrenze .gbar.rot i{background:var(--f-b3261e)}
.jwarn{background:var(--warn-soft);border:1px solid var(--r-ebd8a8);border-radius:9px;padding:8px 11px;font-size:11.5px;color:var(--t-6b520e);margin-top:12px}
.jwarn a{color:var(--t-6b520e)}
.jqs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.jq{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--paper);cursor:pointer}
.jq:hover{background:var(--orange-soft)} .jq.leer{background:var(--mute-row);cursor:default} .jq.leer:hover{background:var(--mute-row)}
.jq>b{display:block;color:var(--navy-ink);margin-bottom:6px;font-size:13px}
.jz{display:flex;justify-content:space-between;font-size:12px;padding:1px 0}
.jz i{font-style:normal;font-weight:bold} .jz.erg{border-top:1px solid var(--line);margin-top:4px;padding-top:4px}
.jfixsum{border-bottom:1px solid var(--line);padding-bottom:7px;margin-bottom:7px}
.jfixsum b{font-size:19px;color:var(--navy-ink)} .jfixsum span{display:block;font-size:11.5px;color:var(--ink2)}
.jfixz{display:grid;grid-template-columns:1fr auto 34px;gap:8px;font-size:12.5px;padding:2px 0}
.jfixz i{font-style:normal;font-weight:bold;font-variant-numeric:tabular-nums} .jfixz small{color:var(--ink2);text-align:right}
.jms{display:grid;grid-template-columns:repeat(12,1fr);gap:6px}
.jmk{border:1px solid var(--line);border-radius:9px;padding:7px 3px;text-align:center;background:var(--paper);cursor:pointer}
.jmk b{display:block;font-size:12px;color:var(--navy-ink)} .jmk span{display:block;font-size:11px;font-weight:bold;margin-top:2px}
.jmk small{display:block;font-size:11px;color:var(--ink2);margin-top:2px}
.jmk.plus{background:var(--ok-soft)} .jmk.plus span{color:var(--ok-ink)}
.jmk.minus{background:var(--fehlt-row)} .jmk.minus span{color:var(--t-b3261e)}
.jmk.lauf{outline:2px solid var(--orange)} .jmk.leer{background:var(--mute-row);cursor:default} .jmk.leer span{color:var(--ink2);font-weight:400}
h2.jdet{font-size:16px;color:var(--navy-ink);border-top:2px solid var(--line);padding-top:14px;margin:18px 0 10px}
h2.jdet .grau{font-weight:400;font-size:12px}
#jSvg2 .kl{cursor:pointer} #jSvg2 .kl:hover rect{opacity:.8}
@media(max-width:1200px){.jsplit,.jsplit2{grid-template-columns:1fr}.jkpi{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.jkpi{grid-template-columns:repeat(2,1fr)}.jqs{grid-template-columns:repeat(2,1fr)}.jms{grid-template-columns:repeat(6,1fr)}}
.jlinien{float:right;font-weight:400;text-transform:none;letter-spacing:0;font-size:11.5px;color:var(--ink2)}
.jlinien label{margin-left:12px;cursor:pointer} .jlinien input{vertical-align:-2px;margin-right:3px}
.jst{margin-bottom:14px}
.jstgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px) minmax(0,330px);gap:16px;align-items:stretch}
.jstsp{display:flex;flex-direction:column;gap:8px;min-width:0}
.jstsp>:last-child{flex:1}                       /* alle drei Spalten gleich hoch (v2.33.1) */
.jstsp .jrech{margin-top:0}
.jsttab{width:100%;border-collapse:collapse;font-size:13px}
.jsttab th{background:none;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink2);border-bottom:1px solid var(--line);padding:4px 6px}
.jsttab{table-layout:fixed;width:100%;min-width:0}
.jsttab th:first-child,.jsttab td:first-child{width:auto}
.jsttab th.r,.jsttab td.r{width:26%}
.jsttab.klein{font-size:12px}
.jsttab.klein td,.jsttab.klein th{padding:3px 4px}
.jsttab td{padding:4px 6px;border-bottom:1px solid var(--line)}
.jsttab td:first-child{white-space:normal} .jsttab td.r{text-align:right;font-variant-numeric:tabular-nums}
.jsttab tr.kopf td{font-weight:bold;color:var(--navy-ink)} .jsttab tr.leise td{color:var(--ink2);font-size:12px}
.jsttab tr.summe td{font-weight:bold;color:var(--navy-ink);border-top:2px solid var(--orange);border-bottom:none;font-size:14px}
.jstgrid>div{min-width:0}
.jsvs{border-radius:9px;padding:9px 12px;font-size:12px;border:1px solid var(--line)}
.jsvs b{display:block;font-size:12.5px;margin-bottom:2px}
.jsvs.ok{background:var(--ok-soft);border-color:var(--r-bfdfcb)} .jsvs.warn{background:var(--warn-soft);border-color:var(--r-ebd8a8)} .jsvs.weg{background:var(--fehlt-row);border-color:var(--r-f0c4c1)}
.jrech{margin-top:12px;border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:var(--f-fbfcfe)}
.jrech>b{display:block;color:var(--navy-ink);margin-bottom:7px}
.jrz{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.jrz input{width:96px;padding:5px 7px;border:1px solid var(--line);border-radius:7px}
.jrz .chip{cursor:pointer;font-size:12px;padding:4px 9px}
.stjahr{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:12px;background:var(--f-fbfcfe)}
.stjahr h4{margin:0 0 10px;color:var(--navy-ink);font-size:15px}
.stgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 18px}
.stgrid label{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12.5px;color:var(--ink2)}
.stgrid input{width:110px;text-align:right;padding:4px 7px;border:1px solid var(--line);border-radius:6px}
.stein{white-space:nowrap;color:var(--ink2)}
.sttarif{display:block;margin-top:10px;font-size:12.5px;color:var(--ink2)}
.sttarif textarea{display:block;width:100%;max-width:340px;margin-top:4px;font-family:ui-monospace,Menlo,monospace;font-size:12px;padding:6px 8px;border:1px solid var(--line);border-radius:7px}
@media(max-width:1400px){.jstgrid{grid-template-columns:minmax(0,1fr) minmax(0,330px)}}
@media(max-width:1000px){.jstgrid{grid-template-columns:minmax(0,1fr)}.jstsp>:last-child{flex:none}}
@media(max-width:1200px){.stgrid{grid-template-columns:1fr}}
@media(max-width:760px){.stgrid label{flex-wrap:wrap}.stgrid input{width:100px}.sttarif textarea{max-width:100%}
 .jlinien{float:none;display:block;margin-top:4px}.jlinien label{margin:0 12px 0 0}}
@media(max-width:760px){.set select,.set input[type=text],.set textarea{max-width:100%}}
.jsprung{display:block;margin-top:6px;padding-top:6px;border-top:1px dashed rgba(0,0,0,.15)}
.stschalter{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin:10px 0 4px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--paper);font-size:12.5px}
.stschalter label{display:flex;align-items:center;gap:5px} .stschalter input[type=text]{width:96px;text-align:right;padding:4px 7px;border:1px solid var(--line);border-radius:6px}
.stschalter select{padding:4px 6px}
.jnetto{background:var(--ok-soft);border:1px solid var(--r-bfdfcb);color:var(--t-1f5b38);border-radius:20px;padding:3px 11px;font-size:11.5px;font-weight:bold}
.bruttohin{align-self:center;font-size:11.5px;color:var(--ink2);border:1px dashed var(--line);border-radius:14px;padding:3px 10px;white-space:nowrap}
.zuord select.ust{font-weight:bold;min-width:96px} .zuord select.ust.leer{color:var(--ink2);font-weight:400}
/* v2.31.1: Beträge, Belegnummer und Stand nie umbrechen – schlägt die „normal“-Regel der Komplettansicht (Zeile 672) */
td.amt,#tbAll td.amt,#tbAll td.num{white-space:nowrap}
#tbAll td.nr,#tbQ td.nr{white-space:nowrap}
#tbAll tr[data-bid] td:last-child,#tbQ td:nth-last-child(2){white-space:nowrap}
/* v2.32.0: Netto und USt klein unter dem Bruttobetrag */
.nettoz{font-size:11px;font-weight:400;color:var(--ink2);white-space:nowrap;margin-top:1px;letter-spacing:0}
/* v2.33.0: Profilbilder */
.av.bild{padding:0;overflow:hidden;background:none;border:1px solid var(--line)}
.av.bild img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}
.avkopf{width:22px;height:22px;border-radius:50%;object-fit:cover;vertical-align:-6px;margin-right:5px;border:1px solid rgba(255,255,255,.4)}
.avkopf.klein{width:18px;height:18px;vertical-align:-4px;border-color:var(--line)}
/* v2.56.0: Zähler für Neues am Profilbild im Kopf */
.avwrap{position:relative;display:inline-block;margin-right:5px;line-height:0}
.avwrap .avkopf{margin-right:0}
.avwrap .avkopf.leer{display:inline-block;width:22px;height:22px;line-height:22px;text-align:center;font-size:14px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff}
.avbadge{position:absolute;top:-5px;right:-6px;min-width:15px;height:15px;padding:0 3px;box-sizing:border-box;
  border-radius:8px;background:var(--bad,var(--f-c0392b));color:#fff;font-size:11px;font-weight:700;line-height:15px;
  text-align:center;border:1.5px solid var(--navy)}
.avliste{width:22px;height:22px;border-radius:50%;object-fit:cover;vertical-align:-6px}
.set .avvor{width:56px;height:56px;border-radius:50%;object-fit:cover;border:1px solid var(--line);vertical-align:middle;flex:none}
/* ---- Profilbild: Vorschau, Benutzertabelle, Zuschnitt (v2.34.0) ---- */
.avzeile{display:flex;gap:12px;align-items:flex-start}
.avvor.leer,.avliste.leer{display:inline-flex;align-items:center;justify-content:center;background:var(--navy);color:#fff;font-weight:bold;font-size:18px}
.avliste.leer{font-size:11px}
.set .avliste{width:34px;height:34px;cursor:pointer;flex:none;border:1px solid var(--line)}
.set .avliste:hover{outline:2px solid var(--orange)}
.set .btab{table-layout:auto;min-width:0}
.set .btab td{white-space:normal;vertical-align:top;padding:8px}
.set .btab td.bu{display:flex;gap:8px;align-items:flex-start}
.set .btab td.bu form{display:flex;gap:4px;margin-top:4px}
.set .btab td.bu input[type=text]{width:108px;min-width:0}
.set .btab .stz{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.set .btab .kwf{display:flex;gap:5px}.set .btab .kwf input{width:118px;min-width:0}
.set .btab select{max-width:124px;font-size:12px}
.avdlg .avbody{padding:14px 16px;display:flex;flex-direction:column;align-items:center;gap:10px}
.avbuehne{position:relative;width:320px;height:320px;max-width:78vw;border-radius:10px;overflow:hidden;background:var(--f-edf0f4);cursor:grab;touch-action:none}
.avbuehne:active{cursor:grabbing}
.avbuehne canvas{display:block;width:100%;height:100%}
.avmaske{position:absolute;inset:0;pointer-events:none;box-shadow:0 0 0 999px rgba(28,35,51,.5);border-radius:50%;border:2px solid rgba(255,255,255,.85)}
.avzoom{display:flex;align-items:center;gap:8px;width:100%;max-width:320px}
.avzoom input{flex:1}
@media(max-width:700px){.set .btab td.bu{flex-wrap:wrap}.set .btab td.bu input[type=text]{width:110px}}
/* v2.33.0: Rechtsklick-Menü auf Aufgaben-Karten */
.kctx{position:fixed;z-index:120;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 34px rgba(16,24,40,.22);padding:5px;min-width:236px;max-width:280px}
.kctx .kk{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--ink2);padding:6px 10px 7px;border-bottom:1px solid var(--line);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kctx button{display:block;width:100%;text-align:left;background:none;border:0;padding:7px 10px;border-radius:7px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer}
.kctx button:hover{background:var(--orange-soft)}
.kctx button.gefahr{color:var(--t-b3261e)} .kctx button.gefahr:hover{background:var(--fehlt-row)}
.kctx button.aus{opacity:.45;pointer-events:none}
/* Gesperrter Reiter in den Einstellungen – zeigt, dass es den Bereich gibt (v2.52.0) */
/* Meine Rückfragen auf der Startseite (v2.53.0) */
.rfmein{border:1px solid var(--line);border-radius:10px;margin:0 0 10px;overflow:hidden;background:var(--karte)}
.rfk{display:flex;gap:10px;align-items:center;padding:8px 12px;background:var(--paper);border-bottom:1px solid var(--line);font-size:13px}
.rfk .n{font-size:11.5px;color:var(--ink2);background:var(--karte);border:1px solid var(--line);border-radius:999px;padding:1px 8px}
.rfk .n.ok{color:var(--ok-ink);border-color:var(--ok);background:var(--ok-soft)}
.rfk .btn{margin-left:auto}
.rfz{display:flex;gap:10px;align-items:center;padding:8px 12px;border-top:1px solid var(--line);cursor:pointer;font-size:13px}
.rfz:first-of-type{border-top:0} .rfz:hover{background:var(--orange-soft)}
.rfz .t{min-width:0;flex:1} .rfz .t b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rfz .t small{color:var(--ink2);font-size:11.5px}
.rfz .a{flex:1.2;min-width:0;font-size:12px;color:var(--t-1c5a38);background:var(--ok-soft);border:1px solid var(--ok);
  border-radius:8px;padding:4px 9px}
.rfz .a span{display:block;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rfz .a.wartet{color:var(--ink2);background:var(--paper);border-color:var(--line)}
.rfz .lnk{text-decoration:none;font-size:15px}
@media (max-width:760px){ .rfz{flex-wrap:wrap} .rfz .a{flex:1 1 100%} }
/* Aufgaben aufgeräumt (v2.54.0): ausklappbare Sichten links, Menü „⋯ Mehr“ oben */
.tleiste .mehrsicht{margin:2px 0 4px}
.tleiste .mehrsicht > summary{list-style:none;cursor:pointer;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink2);padding:6px 10px;border-radius:7px}
.tleiste .mehrsicht > summary::-webkit-details-marker{display:none}
.tleiste .mehrsicht > summary::before{content:'▸ '}
.tleiste .mehrsicht[open] > summary::before{content:'▾ '}
.tleiste .mehrsicht > summary:hover{background:var(--orange-soft);color:var(--ink)}
.mehrbox{position:relative}
.mehrmenue{position:absolute;right:0;top:calc(100% + 6px);z-index:60;min-width:238px;background:var(--paper);
  border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 34px rgba(16,24,40,.22);padding:5px}
.mehrmenue button,.mehrmenue a{display:block;width:100%;text-align:left;background:none;border:0;padding:7px 10px;
  border-radius:7px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer;text-decoration:none}
.mehrmenue button:hover,.mehrmenue a:hover{background:var(--orange-soft)}
.mehrmenue hr{border:0;border-top:1px solid var(--line);margin:4px 6px}
.antw{display:inline-block;max-width:100%;background:var(--ok-soft);border:1px solid var(--ok);
  color:var(--t-1c5a38);border-radius:999px;padding:1px 9px;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zagrp td{background:var(--navy-soft,var(--f-eef2f8));border-top:2px solid var(--navy);padding:7px 10px;
  font-size:12.5px;color:var(--navy-ink)}
.zagrp td b{font-size:13px} .zagrp td span{color:var(--ink2);font-size:11.5px;margin-left:10px}
.setnav .setzu{display:block;padding:8px 12px;border-radius:8px;font-size:13px;color:var(--ink2);
  opacity:.7;cursor:not-allowed;white-space:nowrap}
/* Rechte-Selbsttest (v2.52.0) */
.rttab td:nth-child(3){font-size:11.5px}
.rtja{color:var(--ok-ink);font-weight:600} .rtzu{color:var(--ink2)}
.rtteil{color:var(--warn-ink);font-weight:600} .rtoffen{color:var(--ink2)}        /* Hinweiszeile statt Befehl (v2.51.0) */
.kctx hr{border:0;border-top:1px solid var(--line);margin:4px 6px}
.jkpi small .jbr{display:block;margin-top:2px;color:var(--ink2);opacity:.85}
.mqseg{margin-left:0}.mqseg button{font-size:11.5px}          /* Belegmonate: Quartalsfilter (v2.34.0) */
.set code,.set .grau code{overflow-wrap:anywhere}                /* lange Pfade am Handy umbrechen (v2.34.0) */
@media(max-width:760px){                                          /* Benutzertabelle am Handy als Karten (v2.34.0) */
  .set .btab,.set .btab tbody,.set .btab tr,.set .btab td{display:block;width:100%}
  .set .btab thead{display:none}
  .set .btab tr{border:1px solid var(--line);border-radius:8px;margin-bottom:8px;padding:4px 0}
  .set .btab td{border-top:none;padding:5px 10px}
  .set .btab td[data-l]:not(.bu)::before{content:attr(data-l);display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink2);margin-bottom:2px}
  .set .btab td.bu{display:flex}
  .set .btab .kwf input,.set .btab td.bu input[type=text]{width:100%;min-width:0}
  .set .btab .kwf{max-width:100%}
  .set .btab select{max-width:100%;width:100%}
}
@media(max-width:760px){.avzeile{flex-wrap:wrap}.avzeile>div{min-width:0;flex:1 1 100%}.avzeile .btn{max-width:100%;white-space:normal;text-align:left}}
/* ---- Druckdialog Aufgaben (v2.35.0) ---- */
.dlg.dr{max-width:960px;width:94vw}
.dr .drbody{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:14px 16px}
.dr h4{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--navy-ink)}
.dr .drsp>h4:not(:first-child){margin-top:14px}
.dr .drk{display:flex;flex-direction:column;gap:4px;font-size:12.5px;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.dr .drk b{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink2);margin-bottom:2px}
.dr .drk label{display:flex;gap:6px;align-items:center;cursor:pointer}
.dr .drt{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink2);margin-bottom:8px}
.dr .drt input,.dr .drt select{font-size:13px;color:var(--ink);min-width:0;width:100%}
.dr .drzr{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dr .drfmt{margin:0 0 8px}
.dr #drHin{font-size:11.5px;margin:8px 0 0}
@media(max-width:900px){.dr .drbody{grid-template-columns:1fr}}

/* ================= Jahresplanung (v2.36.0) ================= */
.pl-leiste{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;margin-bottom:12px}
.pl-leiste .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2)}
.pl-leiste .trenn{width:1px;height:22px;background:var(--line)}
.pl-leiste .stand{margin-left:auto;font-size:11.5px;color:var(--ink3)}
.pl-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px}
.pl-kpis .kpi.gut{background:var(--ok-soft);border-left-color:var(--ok)}
.pl-haupt{display:grid;grid-template-columns:310px minmax(0,1fr);gap:12px;align-items:start}
.pl-unten{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;margin-top:12px;align-items:start}

/* Kachel-Vorrat */
.plvorl{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 12px}
.plvorl button{font:inherit;font-size:11.5px;border:1px dashed var(--line);background:transparent;color:var(--ink2);
  border-radius:16px;padding:3px 9px;cursor:pointer}
.plvorl button:hover{border-style:solid;border-color:var(--orange);background:var(--orange-soft);color:var(--ink)}
.plstack{display:flex;flex-direction:column;gap:6px;margin:4px 0 0;min-height:30px}
.plk{border:1px solid var(--line);border-left:3px solid var(--navy);border-radius:7px;padding:7px 9px;background:var(--paper);
  cursor:grab;display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:baseline}
.plk:hover{background:var(--orange-soft)}
.plk.zieht{opacity:.4} .plk.inv{border-left-color:var(--ok)}
.plk .t{font-weight:600;font-size:12.5px}
.plk .b{font-variant-numeric:tabular-nums;font-weight:bold;font-size:12.5px;color:var(--navy-ink)}
.plk .m{grid-column:1/-1;font-size:11px;color:var(--ink2)}
.plk .m .ok{color:var(--ok-ink)} .plk .m .invtag{color:var(--ok-ink)}
.plneu{display:grid;grid-template-columns:1fr 92px;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.plneu .voll{grid-column:1/-1}
.plneu input,.plneu select{width:100%;min-width:0}
.plform{display:grid;grid-template-columns:1fr 96px;gap:6px;border:1px solid var(--orange);background:var(--orange-soft);
  border-radius:8px;padding:9px 10px}
.plform .voll{grid-column:1/-1}
.plform input,.plform select{width:100%;min-width:0;font-size:12.5px}
.plform .plinv{grid-column:1/-1;display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink2);flex-wrap:wrap}
.plform .plinv input[type=number]{width:54px}
.plform .plft{grid-column:1/-1;display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}

/* Diagramm */
.pldwrap{position:relative;padding:6px 0 0}
.pldgrid{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;height:330px}
.plnull{position:absolute;left:0;right:0;height:1px;background:var(--ink2);opacity:.5;z-index:2;pointer-events:none}
.plsp{position:relative;border-radius:6px}
.plsp.an{background:var(--mute-row)} .plsp.lauf{outline:1px dashed var(--line);outline-offset:-1px}
.plsp.ziel{background:var(--orange-soft);outline:2px dashed var(--orange);outline-offset:1px}
.plb{position:absolute;left:14%;width:72%;border-radius:3px 3px 0 0}
.plb.ist{opacity:.4;outline:1px solid var(--line);outline-offset:-1px}
.c-sr{background:var(--orange)} .c-it{background:var(--f-2f6db5)} .c-aus{background:var(--navy);border-radius:0 0 3px 3px}
.c-kum{background:var(--navy);height:2px;border-radius:0}
.c-svs{border-top:2px dashed var(--r-b3261e);height:0;background:none}
.c-ist{background:var(--navy);opacity:.4}
.plgriff{position:absolute;height:9px;margin-top:-5px;cursor:ns-resize;z-index:4;border-radius:3px;background:transparent}
.plgriff:hover,.plgriff.aktiv{background:rgba(232,154,60,.55);box-shadow:0 0 0 1px var(--orange)}
.plsum{position:absolute;left:0;right:0;text-align:center;font-size:11px;color:var(--ink2);font-variant-numeric:tabular-nums}
.plabw{position:absolute;left:0;right:0;text-align:center;font-size:11px;font-weight:bold;font-variant-numeric:tabular-nums}
.plabw.plus{color:var(--ok-ink)} .plabw.minus{color:var(--t-b3261e)}
.plbesch{position:absolute;left:0;right:0;bottom:-26px;text-align:center;font-size:11px;color:var(--ink2)}
.plbesch b{display:block;font-size:11.5px;color:var(--ink)}
.pldlinie{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:visible}
.pldfuss{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:34px;font-size:11.5px;color:var(--ink2)}
.pldfuss .leg{display:inline-flex;align-items:center;gap:5px}
.pldfuss .leg i{width:11px;height:11px;border-radius:2px;display:inline-block}

/* Monatsdetail */
.plmonat{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}
.plmk{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.plmk b{color:var(--navy-ink)}
.plposten{display:flex;flex-wrap:wrap;gap:5px}
.plchip{font-size:11.5px;border:1px solid var(--line);border-radius:14px;padding:2px 9px;background:var(--paper);
  display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.plchip:hover{background:var(--orange-soft);border-color:var(--orange)}
.plchip.inv{border-left:3px solid var(--ok)}
.plchip b{font-variant-numeric:tabular-nums;color:var(--navy-ink)}
.plchip .x,.plchip .xx{color:var(--ink3);cursor:pointer}
.plchip .x:hover,.plchip .xx:hover{color:var(--t-b3261e)}
.plchip .xx{font-size:11px}

/* Tabelle */
.pltab{border-collapse:collapse;width:100%;min-width:0;font-variant-numeric:tabular-nums}
.pltab th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--navy-ink);text-align:right;
  padding:6px 8px;border-bottom:1.5px solid var(--orange);white-space:nowrap;background:transparent}
.pltab th:first-child{text-align:left}
.pltab td{padding:5px 8px;border-bottom:1px solid var(--line);font-size:12.5px;text-align:right;white-space:nowrap}
.pltab td:first-child{text-align:left}
.pltab tbody tr{cursor:pointer}
.pltab tbody tr:hover td{background:var(--orange-soft)}
.pltab tr.an td{background:var(--mute-row)}
.pltab tr.qz td{font-weight:bold;background:var(--mute-row);border-bottom:1px solid var(--line)}
.pltab tr.qz:hover td{background:var(--mute-row)}

/* Abgabenblock */
.plz{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:5px 0;border-bottom:1px solid var(--line)}
.plz b{font-variant-numeric:tabular-nums}
.plz.klein{font-size:11.5px;color:var(--ink3);border-bottom:none;padding:1px 0}
.plz.summe{border-bottom:none;border-top:1.5px solid var(--orange);margin-top:4px;padding-top:8px;font-weight:bold;font-size:14px}
.plampel{margin-top:12px;border-radius:8px;padding:9px 11px;font-size:12px;line-height:1.45}
.plampel b{display:block;margin-bottom:2px}
.plampel.gut{background:var(--ok-soft);border:1px solid var(--ok)}
.plampel.acht{background:var(--orange-soft);border:1px solid var(--orange)}
.plampel.hin{background:var(--mute-row);border:1px solid var(--line);color:var(--ink2)}

/* Kachelgenerator */
.dlg.gen{width:min(1020px,95vw);max-width:none;padding:0}
.gen .h{display:flex;align-items:baseline;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.gen .h .x{margin-left:auto;cursor:pointer;color:var(--ink3)}
.gen .h .x:hover{color:var(--t-b3261e)}
.gen .gbody{display:grid;grid-template-columns:minmax(0,1fr) 320px;max-height:74vh}
.gen .gliste{padding:12px 14px;overflow:auto;border-right:1px solid var(--line)}
.gen .gsuche{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.gen .gsuche input[type=search]{flex:1;min-width:170px}
.gen .gfilter{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}
.gen .gfilter button{font:inherit;font-size:11.5px;border:1px solid var(--line);background:var(--paper);color:var(--ink2);
  border-radius:14px;padding:3px 10px;cursor:pointer}
.gen .gfilter button.on{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:600}
.gen .gz{display:grid;grid-template-columns:auto 1fr auto;gap:2px 10px;align-items:baseline;padding:7px 9px;
  border-bottom:1px solid var(--line);cursor:pointer;border-radius:6px}
.gen .gz:hover{background:var(--orange-soft)}
.gen .gz.on{background:var(--orange-soft);outline:1px solid var(--orange)}
.gen .gz .d{font-size:11.5px;color:var(--ink3);font-variant-numeric:tabular-nums;white-space:nowrap}
.gen .gz .p{font-weight:600;font-size:13px}
.gen .gz .b{font-variant-numeric:tabular-nums;font-weight:bold;font-size:13px;white-space:nowrap}
.gen .gz .m{grid-column:2/-1;font-size:11px;color:var(--ink2)}
.gen .gz .warnf{color:var(--warn-ink)}
.gen .gvor{padding:12px 14px;overflow:auto;background:var(--mute-row)}
.gen .gbild{display:block;border:1px dashed var(--line);border-radius:8px;padding:16px 12px;text-align:center;
  font-size:11.5px;color:var(--ink2);background:var(--paper);margin-bottom:10px;text-decoration:none}
.gen .gbild:hover:not(.leer){border-color:var(--orange);background:var(--orange-soft)}
.gen .gbeleg{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:10px}
.gen .gbeleg h4{margin:0 0 6px;font-size:13px;color:var(--navy-ink)}
.gen .gbz{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;padding:2px 0}
.gen .gbz span{color:var(--ink2)}
.gen .gbz b{font-variant-numeric:tabular-nums;text-align:right}

@media(max-width:1200px){.pl-haupt{grid-template-columns:1fr}.pl-unten{grid-template-columns:1fr}
  .pl-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.gen .gbody{grid-template-columns:1fr;max-height:80vh;overflow:auto}
  .gen .gliste{border-right:0;border-bottom:1px solid var(--line)}
  .pl-kpis{grid-template-columns:1fr}.pldgrid{height:250px;gap:3px}}
.tscroll{overflow-x:auto;max-width:100%}                  /* breite Tabellen scrollen in ihrem Rahmen (v2.36.0) */
.plstack{max-height:420px;overflow-y:auto;padding-right:2px}   /* langer Vorrat scrollt in sich (v2.36.0) */
/* Monatsblock der Planung + zweiter Griff (v2.36.1) */
.plmgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:6px 0 4px}
.plmf{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--ink2)}
.plmf input{font-size:13px;padding:5px 8px;min-width:0;width:100%;font-variant-numeric:tabular-nums}
.plmf.lesen{justify-content:flex-end}
.plmf.lesen b{font-size:14px;font-variant-numeric:tabular-nums;padding:4px 0}
.plmf.lesen .plus{color:var(--ok-ink)} .plmf.lesen .minus{color:var(--t-b3261e)}
.plgriff.sr{z-index:5}
.plsum{cursor:pointer;padding:1px 3px;border-radius:4px}
.plsum:hover{background:var(--orange-soft);color:var(--ink)}
.plausk{position:absolute;cursor:pointer;z-index:3}
.plausk:hover{outline:2px solid var(--orange);outline-offset:1px;border-radius:0 0 3px 3px}
@media(max-width:820px){.plmgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Schnellplanung über Kategorien (v2.37.0) */
.dlg.sch{width:min(1100px,96vw);max-width:none;padding:0}
.sch .h{display:flex;align-items:baseline;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.sch .h .x{margin-left:auto;cursor:pointer;color:var(--ink3)}
.sch .h .x:hover{color:var(--t-b3261e)}
.sch .schkopf{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:9px 16px;border-bottom:1px solid var(--line);background:var(--mute-row)}
.sch .schbody{max-height:62vh;overflow:auto;padding:0 8px}
.schtab{width:100%;min-width:0;border-collapse:collapse;font-variant-numeric:tabular-nums}
.schtab th{position:sticky;top:0;background:var(--paper);z-index:2;font-size:11px;text-transform:uppercase;
  letter-spacing:.05em;color:var(--navy-ink);text-align:right;padding:8px 6px;border-bottom:1.5px solid var(--orange);white-space:nowrap}
.schtab th:nth-child(1),.schtab th:nth-child(2),.schtab th:nth-child(7),.schtab th:nth-child(8),
.schtab th:nth-child(9),.schtab th:nth-child(10){text-align:left}
.schtab td{padding:5px 6px;border-bottom:1px solid var(--line);font-size:12.5px;text-align:right;vertical-align:middle}
.schtab td.nm{text-align:left}
.schtab td.nm b{display:block;font-size:13px}
.schtab td small{display:block;font-size:11px;color:var(--ink3)}
.schtab td small.hatx{color:var(--warn-ink)}
.schtab tr:hover td{background:var(--orange-soft)}
.schtab tr.hat td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
.schtab input[type=text]{width:88px;text-align:right;font-size:12.5px;padding:4px 6px;font-variant-numeric:tabular-nums}
.schtab select{font-size:12px;padding:4px 5px;max-width:130px}
.schtab td.ges b{color:var(--navy-ink)}
.sch .f{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding:11px 16px;border-top:1px solid var(--line)}
.sch .f .grau{margin-right:auto}
@media(max-width:900px){.sch .schbody{overflow:auto}.schtab{min-width:820px}}

/* ---- Volltextsuche (v2.39.0) ---- */
.dlg.suchdlg{width:min(1100px,96vw);max-width:none;padding:0}
.suchdlg .h{display:flex;align-items:baseline;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.suchdlg .h .x{margin-left:auto;cursor:pointer;color:var(--ink3)}
.suchdlg .h .x:hover{color:var(--t-b3261e)}
.suchkopf{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--mute-row)}
.suchkopf input[type=search]{flex:1;min-width:220px;font-size:14px;padding:7px 11px;border:1px solid var(--line);
  border-radius:8px;background:var(--paper);color:var(--ink)}
.suchbody{max-height:66vh;overflow:auto}
.sutab{display:flex;flex-direction:column}
.suz{display:grid;grid-template-columns:78px minmax(120px,1.1fr) minmax(0,1.6fr) 96px minmax(150px,1fr);
  gap:4px 10px;align-items:baseline;padding:8px 16px;border-bottom:1px solid var(--line);
  text-decoration:none;color:var(--ink)}
.suz:hover{background:var(--orange-soft)}
.suz .d{font-size:11.5px;color:var(--ink2);font-variant-numeric:tabular-nums;white-space:nowrap}
.suz .p{font-weight:600;font-size:13px;overflow-wrap:anywhere}
.suz .p small{display:block;font-size:11px;color:var(--ink3);font-weight:normal}
.suz .tx{font-size:12px;color:var(--ink2);overflow-wrap:anywhere}
.suz .b{font-variant-numeric:tabular-nums;font-size:13px;text-align:right;white-space:nowrap}
.suz .b.plus{color:var(--ok-ink)} .suz .b.minus{color:var(--ink)}
.suz .m{font-size:11px;color:var(--ink3);text-align:right}
.suz .m .wo{background:var(--mute-row);border-radius:10px;padding:1px 7px;margin-left:5px;color:var(--ink2);font-weight:normal}
.suz .m .rf,.suz .m .bl{margin-left:4px}
.suchdlg mark{background:var(--orange-soft);color:var(--ink);font-weight:bold;padding:0 1px;border-radius:2px}
.suchdlg .f{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding:10px 16px;border-top:1px solid var(--line)}
@media(max-width:900px){.suz{grid-template-columns:1fr auto}.suz .tx,.suz .m{grid-column:1/-1;text-align:left}}

/* ---- Rechte und Freigaben (v2.39.0) ---- */
.dlg.rechtedlg{width:min(780px,95vw);max-width:none;padding:0}
.rechtedlg .h{display:flex;align-items:baseline;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.rechtedlg .h .x{margin-left:auto;cursor:pointer;color:var(--ink3)}
.rechtedlg .rebody{padding:14px 16px;max-height:66vh;overflow:auto}
.regrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.rez{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:8px 10px;cursor:pointer}
.rez:hover{background:var(--orange-soft);border-color:var(--orange)}
.rez input{margin-top:3px}
.rez b{display:block;font-size:13px}
.rez small{display:block;font-size:11px;color:var(--ink2);margin-top:1px}
.rechtedlg .f{display:flex;gap:8px;justify-content:flex-end;padding:11px 16px;border-top:1px solid var(--line)}
.frliste{display:flex;flex-direction:column;gap:8px}
.frz{border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:8px;padding:10px 12px;background:var(--paper)}
.frz.genehmigt{border-left-color:var(--ok);opacity:.85}
.frz.abgelehnt{border-left-color:var(--r-b3261e);opacity:.85}
.frk{display:flex;align-items:center;gap:8px}
.frk b{color:var(--navy-ink);font-size:13px}
.frst{font-size:11px;text-transform:uppercase;letter-spacing:.05em;border-radius:10px;padding:1px 8px;background:var(--orange-soft);color:var(--warn-ink)}
.frst.genehmigt{background:var(--ok-soft);color:var(--ok-ink)}
.frst.abgelehnt{background:var(--f-fbeae8);color:var(--t-b3261e)}
.frt{font-size:13px;font-weight:600;margin-top:3px}
.frb,.frg{font-size:12px;color:var(--ink2);margin-top:2px;white-space:pre-wrap}
.frg{color:var(--warn-ink)}
.frm{font-size:11px;color:var(--ink3);margin-top:4px}
.frf{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.frf .frA{flex:1;min-width:160px;font-size:12.5px}
.frl{display:inline-block;margin-top:5px;font-size:11.5px;color:var(--navy-ink)}
@media(max-width:760px){.regrid{grid-template-columns:1fr}}

/* ---- DMS Dubletten (v2.39.0) ---- */
.dubgruppe{border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:8px;padding:10px 12px;margin-bottom:10px;background:var(--paper)}
.dubgruppe.name{border-left-color:var(--ink3)}
.dubkopf{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.dubkopf b{color:var(--navy-ink)}
.dubart{font-size:11px;text-transform:uppercase;letter-spacing:.05em;background:var(--orange-soft);color:var(--warn-ink);border-radius:10px;padding:1px 8px}
.dubgruppe.name .dubart{background:var(--mute-row);color:var(--ink2)}
.dubz{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:4px 10px;align-items:baseline;
  padding:6px 0;border-top:1px solid var(--line)}
.dubz b{font-size:12.5px}
.dubz small{display:block;font-size:11px;color:var(--ink3)}
.dubz .a{display:flex;gap:5px}
.dlg.dubdlg{width:min(1000px,95vw);max-width:none;padding:0}
.dubdlg .h{display:flex;align-items:baseline;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.dubdlg .h .x{margin-left:auto;cursor:pointer;color:var(--ink3)}
.dubbody{max-height:68vh;overflow:auto}
.dubdlg .f{display:flex;gap:8px;align-items:center;padding:11px 16px;border-top:1px solid var(--line)}
.hist-btn{margin-left:4px;color:var(--navy-ink);border-color:var(--line)}
.hist-btn:hover{background:var(--orange-soft);border-color:var(--orange)}
.histliste{display:flex;flex-direction:column;gap:6px}
.histz{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;border:1px solid var(--line);
  border-left:3px solid var(--navy);border-radius:7px;padding:8px 10px}
.histz b{font-size:12.5px;overflow-wrap:anywhere}
.histz small{display:block;font-size:11px;color:var(--ink3)}
.histz small.grund{color:var(--warn-ink)}
.histz .a{display:flex;gap:5px;flex:none}

/* ---- Willkommens-Mail (v2.40.0) ---- */
.dlg.willdlg{width:min(940px,96vw);max-width:none;padding:0}
.willdlg .h{display:flex;align-items:baseline;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.willdlg .h .x{margin-left:auto;cursor:pointer;color:var(--ink3)}
.willdlg .h .x:hover{color:var(--t-b3261e)}
.willkopf{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--mute-row)}
.willkopf .wf{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--ink2)}
.willkopf .wf input{font-size:13px;padding:5px 8px;min-width:210px}
.willkopf .wkw{display:flex;gap:5px;align-items:center}
.willkopf .wkw input{font-family:ui-monospace,Menlo,Consolas,monospace;min-width:180px}
.willvor{padding:12px 16px;max-height:56vh;overflow:auto;background:var(--mute-row)}
.willrahmen{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--f-eef1f6)}
.willrahmen img{max-width:100%}
.willdlg .f{display:flex;gap:8px;align-items:center;padding:11px 16px;border-top:1px solid var(--line)}
@media(max-width:700px){.willkopf .wf input,.willkopf .wkw input{min-width:0;width:100%}.willkopf .wf{flex:1 1 100%}}
.set .btab .rzg{display:flex;gap:4px;flex-wrap:wrap}

.set .btab .avliste{width:30px;height:30px}
.set .btab td{padding:7px 6px}

/* ---- Aktivitätsprotokoll (v2.41.0) ---- */
.alsband{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--f-7a3e00);color:var(--t-ffe9d2);
  padding:7px 14px;font-size:13px;border-bottom:1px solid var(--r-a35400)}
.alsband b{color:#fff}
.alsband form{margin-left:auto}
.lgkpi{display:flex;gap:10px;flex-wrap:wrap}
.lgk{flex:1 1 150px;min-width:140px;background:var(--karte2,var(--f-1b1f26));border:1px solid var(--rand,var(--r-2b313a));
  border-radius:10px;padding:9px 12px;display:flex;flex-direction:column;gap:1px}
.lgk b{font-size:22px;line-height:1.1}
.lgk span{font-size:12px;color:var(--grau,var(--t-98a2b3))}
.lgk i{font-size:11px;color:var(--grau,var(--t-98a2b3));font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lgk.warn b{color:var(--bad,var(--t-e5484d))}
.lgfilter,.lgset,.lgweg,.lgtabs{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.lgtabs{margin-bottom:8px}
.lgtabs .btn.on{background:var(--akzent,var(--f-ff8c00));color:var(--t-141414);border-color:var(--akzent,var(--r-ff8c00))}
.lf{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--grau,var(--t-98a2b3))}
.lgchip{display:inline-block;background:rgba(255,140,0,.14);border:1px solid rgba(255,140,0,.35);
  border-radius:20px;padding:0 7px;font-size:11px;margin:1px 2px 1px 0;white-space:nowrap}
.lgon{background:var(--f-12633a);color:var(--t-d7ffe9);border-radius:20px;padding:0 7px;font-size:11px}
.lgals{color:var(--akzent,var(--t-ff8c00));font-size:11px}
#lgInhalt table{width:100%}
#lgInhalt td.r,#lgInhalt th.r{text-align:right}
@media(max-width:760px){.lgk{flex:1 1 45%}}

/* ---- Aufgaben archivieren / abgebrochen (v2.42.0) ---- */
.k.abgebr{opacity:.9;border-left:3px solid var(--r-c2410c)}
.k .abbr{font-size:11.5px;color:var(--t-c2410c);background:rgba(194,65,12,.10);border-radius:6px;padding:3px 6px;margin:4px 0 0}
.due.abg{color:var(--t-c2410c);font-weight:600}
.al .st.abg,.tg.abg{background:rgba(194,65,12,.14);color:var(--t-c2410c);border-color:rgba(194,65,12,.35)}
.col.c-arch .liste.drag-over{border-color:var(--r-c2410c);background:rgba(194,65,12,.06)}
.abbdlg #abbGrund{padding:7px 9px}
.col.c-arch.nurzieh{opacity:.75}
.col.c-arch.nurzieh .liste{border-style:dashed}

/* ---- Offene Freigaben auf der Übersicht (v2.43.0) ---- */
.dfr{border:1px solid rgba(255,140,0,.45);background:rgba(255,140,0,.07);border-radius:10px;padding:8px 10px;margin:0 0 10px}
.dfrk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.dfrk b{font-size:13px}
.dfrk .grau{font-size:11.5px}
.dfrk .btn{margin-left:auto}
.dfrz{border-top:1px solid rgba(255,140,0,.25);padding:7px 0 6px}
.dfrz:first-of-type{border-top:0}
.dfrt{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.dfrt b{font-size:13px}
.dfra{background:rgba(255,140,0,.18);border:1px solid rgba(255,140,0,.4);border-radius:20px;padding:0 7px;font-size:11px;white-space:nowrap}
.dfrb{font-size:12px;margin:2px 0 0}
.dfrm{font-size:11.5px;color:var(--grau,var(--t-98a2b3));margin:2px 0 0}
.dfrf{display:flex;gap:6px;justify-content:flex-end;margin-top:5px}
.dfrw{font-size:11.5px;color:var(--grau,var(--t-98a2b3))}
@media(max-width:620px){.dfrf{justify-content:flex-start}.dfrk .btn{margin-left:0}}

/* ---- Neue Planung anlegen (v2.43.0) ---- */
.plndlg .plnf{display:flex;align-items:flex-start;gap:10px;margin:0 0 9px}
.plndlg .plnf>label:first-child{width:64px;flex:none;font-size:12px;color:var(--grau,var(--t-98a2b3));padding-top:7px}
.plndlg .plnr{display:flex;flex-direction:column;gap:4px;font-size:13px}
.plndlg .plnr label{display:flex;align-items:center;gap:6px}
@media(max-width:560px){.plndlg{min-width:0;width:92vw}.plndlg .plnf{flex-direction:column;gap:3px}.plndlg .plnf>label:first-child{width:auto;padding-top:0}}

/* ---- Abschnitte in der Aufgabenliste hervorheben (v2.44.0) ---- */
.al .sec{background:var(--sek);border-bottom:1px solid var(--sek-linie);
  border-top:1px solid var(--sek-linie);border-left:4px solid var(--navy);
  padding:9px 14px 9px 12px;border-radius:8px 8px 0 0;margin-top:12px}
.al .blk:first-of-type .sec{margin-top:0}
.al .blk .rows{padding-left:14px;border-left:2px solid var(--sek-linie);margin-left:6px}
.al .blk .rows .leer2{padding-left:4px}
@media(max-width:760px){.al .blk .rows{padding-left:8px;margin-left:3px}}

/* ---- Aufgabe für alle (v2.44.2) ---- */
.tg.fuerAlle{background:rgba(31,56,100,.10);border-color:rgba(31,56,100,.30);color:var(--navy-ink);font-weight:600}
.av.alle{background:var(--navy);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px}

/* ---- Benutzermenü im Kopf (v2.44.2) ---- */
header .btn.user .pfeil{opacity:.75;font-size:11px;margin-left:2px}
header .btn.user.on{background:var(--orange);color:var(--t-141414);border-color:var(--orange)}
.umenu{position:fixed;z-index:120;min-width:250px;background:var(--paper);border:1px solid var(--line);
  border-radius:12px;box-shadow:0 14px 38px rgba(12,20,40,.22);padding:6px;font-size:13px}
.umenu .uk{display:flex;align-items:center;gap:9px;padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:5px}
.umenu .uk b{display:block;line-height:1.2}
.umenu .uk small{color:var(--ink2);font-size:11.5px}
.umenu .uk .avkopf,.umenu .uk .av{width:34px;height:34px;border-radius:50%}
.umenu a,.umenu button{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:8px;
  color:var(--ink);text-decoration:none;background:none;border:0;font:inherit;cursor:pointer}
.umenu a small{display:block;color:var(--ink2);font-size:11px;margin-top:1px}
.umenu a:hover,.umenu button:hover{background:var(--orange-soft)}
.umenu hr{border:0;border-top:1px solid var(--line);margin:5px 4px}
.umenu a.ab{color:var(--bad-ink);font-weight:600}   /* v2.98.1: --bad ist Flächenfarbe – im Dunkelmodus 2,9:1 */
.umenu form{margin:0}

/* ---- Arbeitszeit-Kalender (v2.46.0) ---- */
:root{--ueber:#7A5CC7; --ueber-soft:#EDE7FA;
  /* Farben der Freigabe-Stände (v2.47.1) – für Kategorien gesperrt, damit dieselbe Farbe
     nicht zweierlei bedeutet. Entwurf ist bewusst neutral-grau statt blau. */
  --st-entwurf:#64748B; --st-entwurf-soft:#EDF0F4}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--st-entwurf:#94A3B8; --st-entwurf-soft:#2A313C}}
:root[data-theme="dark"]{--st-entwurf:#94A3B8; --st-entwurf-soft:#2A313C}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--ueber-soft:#2A2342}}
:root[data-theme="dark"]{--ueber-soft:#2A2342}
.zleiste{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;margin-bottom:12px}
.zleiste .lbl{font-size:11px;letter-spacing:.10em;text-transform:uppercase;color:var(--ink2)}
.zsoll{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;align-items:center;margin-bottom:12px}
.zbar{position:relative;height:36px;border-radius:10px;background:var(--paper);border:1px solid var(--line);overflow:hidden}
.zbar .fuell{position:absolute;top:0;bottom:0;left:0;background:var(--ok-soft);border-right:2px solid var(--ok)}
.zbar .ueber{position:absolute;top:0;bottom:0;background:var(--ueber-soft);border-right:2px solid var(--ueber)}
.zbar .txt{position:absolute;inset:0;display:flex;align-items:center;gap:10px;padding:0 12px;font-size:13px;font-variant-numeric:tabular-nums}
.zampel{display:flex;align-items:center;gap:9px;background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:9px 12px}
.zampel .pkt{width:14px;height:14px;border-radius:50%;flex:none}
.zampel b{display:block;font-size:13px}
.zampel span{font-size:11.5px;color:var(--ink2)}
.zkpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.zk{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 13px}
.zk b{display:block;font-size:24px;line-height:1.15;font-variant-numeric:tabular-nums}
.zk span{font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.07em}
.zk i{display:block;font-style:normal;font-size:11.5px;color:var(--ink2);margin-top:2px}
.zk.gross b{color:var(--navy-ink);font-size:28px}
.zk.gut b{color:var(--ok-ink)} .zk.offen b{color:var(--warn-ink)} .zk.ues b{color:var(--ueber-ink)}
.zstat{display:inline-flex;align-items:center;gap:5px;font-size:11px;border-radius:20px;padding:1px 8px;white-space:nowrap}
.zstat.entwurf{background:var(--st-entwurf-soft);color:var(--st-entwurf)}
.zstat.eingereicht{background:var(--warn-soft);color:var(--warn-ink)}
.zstat.genehmigt{background:var(--ok-soft);color:var(--ok-ink)}
.zstat.abgelehnt{background:var(--bad-soft);color:var(--bad-ink)}
.zstat.ueber{background:var(--ueber-soft);color:var(--ueber-ink)}
.zsicht{display:none} .zsicht.an{display:block}
.zlegende{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink2);margin-top:12px;align-items:center}
.zlegende i{display:inline-block;width:13px;height:13px;border-radius:4px;vertical-align:-2px;margin-right:5px}
.zjahr{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px}
.zmini{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px 12px;text-align:left;cursor:pointer;color:var(--ink)}
.zmini:hover{border-color:var(--orange)}
.zmini.jetzt{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.zmini .mk{display:flex;align-items:baseline;gap:6px;margin-bottom:3px}
.zmini .mk b{font-size:14px}
.zmini .mk span{margin-left:auto;font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink2)}
.zmini .mk span.h{color:var(--navy-ink);font-weight:600}
.zmini .sq{height:4px;border-radius:3px;background:var(--bg);margin-bottom:7px;display:flex;overflow:hidden}
.zmini table{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed}
.zmini th{font-size:11px;color:var(--ink2);font-weight:500;padding-bottom:2px;background:none}
.zmini td{text-align:center;font-size:11px;padding:1px 0;font-variant-numeric:tabular-nums;border:0}
.zmini td i{display:block;width:21px;height:19px;line-height:19px;margin:0 auto;border-radius:5px;font-style:normal;color:var(--ink2)}
.zmini td i.b{background:var(--st-entwurf-soft);color:var(--st-entwurf);font-weight:600}
.zmini td i.e{background:var(--warn-soft);color:var(--warn-ink);font-weight:600}
.zmini td i.g{background:var(--ok-soft);color:var(--ok-ink);font-weight:600}
.zmini td i.a{background:var(--bad-soft);color:var(--bad-ink);font-weight:600}
.zmini td i.we{color:var(--t-9aa4b6)}
.zsplit{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:start}
.zmgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.zmgrid.zmkopf{margin-bottom:6px}
.zmkopf div{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);text-align:center}
.ztag{background:var(--paper);border:1px solid var(--line);border-radius:9px;min-height:80px;padding:6px 7px;text-align:left;
  display:flex;flex-direction:column;gap:3px;position:relative;cursor:pointer;color:var(--ink)}
.ztag:hover{border-color:var(--orange)}
.ztag.leer{background:transparent;border:0;cursor:default;min-height:0}
.ztag.we{background:var(--bg)}
.ztag.heute{outline:2px solid var(--orange);outline-offset:-2px}
.ztag.gewaehlt{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.ztag .nr{font-size:12px;color:var(--ink2);font-variant-numeric:tabular-nums}
.ztag .su{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--navy-ink)}
.ztag .pkt{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%}
.ztag .pkt.eingereicht{background:var(--warn)} .ztag .pkt.genehmigt{background:var(--ok)}
.ztag .pkt.abgelehnt{background:var(--bad)} .ztag .pkt.entwurf{background:var(--st-entwurf)}
.zbal{height:5px;border-radius:3px}
/* Stunden je Stand direkt in der Kalenderzelle (v2.46.3) */
.zstz{display:flex;flex-wrap:wrap;gap:3px;margin-top:1px}
.zst{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;line-height:1.5;
  padding:1px 5px;border-radius:999px;border:1px solid;font-variant-numeric:tabular-nums;white-space:nowrap}
.zst.genehmigt{color:var(--ok-ink);border-color:var(--ok);background:var(--ok-soft)}
.zst.eingereicht{color:var(--warn-ink);border-color:var(--warn);background:var(--warn-soft)}
.zst.entwurf{color:var(--st-entwurf);border-color:var(--st-entwurf);background:var(--st-entwurf-soft)}
.zst.abgelehnt{color:var(--bad,var(--t-c0392b));border-color:var(--bad,var(--r-c0392b));background:var(--zebra-warn)}
.zstbal{display:flex;height:4px;border-radius:3px;overflow:hidden;background:var(--line);margin-top:auto}
.zstbal i.genehmigt{background:var(--ok)} .zstbal i.eingereicht{background:var(--warn)}
.zstbal i.entwurf{background:var(--st-entwurf)}
.zleg .zst{font-size:11px}
.zst.ueber{color:var(--ueber-ink);border-color:var(--ueber);background:var(--ueber-soft)}
.zmini .zstz{gap:3px}
@media (max-width:820px){ .zst{font-size:11px;padding:0 4px} .ztag .su{font-size:13.5px} }
.ztag h3{font-size:15px;margin-bottom:2px}
.card.ztag{min-height:0;display:block;cursor:default}
.card.ztag:hover{border-color:var(--line)}
.ztag .sub{font-size:12px;color:var(--ink2);margin-bottom:10px}
.zbuch{border:1px solid var(--line);border-left-width:4px;border-radius:9px;padding:8px 10px;margin-bottom:8px;background:var(--paper)}
.zbuch .z1{display:flex;align-items:baseline;gap:8px}
.zbuch .z1 b{font-size:13.5px}
.zbuch .z1 .h{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:700}
.zbuch .z2{font-size:12px;color:var(--ink2);margin-top:2px}
.zbuch .z3{display:flex;gap:6px;align-items:center;margin-top:6px;flex-wrap:wrap}
.zchip{font-size:11px;border-radius:20px;padding:1px 8px;border:1px solid var(--line);white-space:nowrap}
.zchip.ueber{background:var(--ueber-soft);color:var(--ueber-ink);border-color:var(--ueber)}
.zchip.ok{background:var(--ok-soft);color:var(--ok-ink);border-color:var(--ok)}
.zchip.grau{color:var(--ink2)}
.zlog{background:var(--bad-soft);border-radius:8px;padding:7px 9px;margin-top:7px;font-size:11.5px;color:var(--bad-ink)}
.zlog b{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px}
.zlog .zeile{color:var(--ink2);margin-top:3px}
.zwoche{display:grid;grid-template-columns:52px repeat(7,minmax(96px,1fr));background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.zwoche .wk{padding:8px 4px;text-align:center;font-size:11.5px;border-bottom:1px solid var(--line);background:var(--sek);color:var(--navy-ink);font-weight:600}
.zwoche .wk.leer{background:var(--paper)}
.zwoche .wk small{display:block;font-weight:400;font-size:11px;color:var(--ink2)}
.zwoche .wspalte{position:relative;border-left:1px solid var(--line);height:520px}
.zwoche .wzeit{border-bottom:1px solid var(--line);height:40px;font-size:11px;color:var(--ink2);text-align:right;padding:1px 6px 0 0;font-variant-numeric:tabular-nums}
.zwoche .wraster{position:absolute;inset:0;background-image:repeating-linear-gradient(to bottom,transparent,transparent 39px,var(--line) 39px,var(--line) 40px)}
.zwoche .wblock{position:absolute;left:3px;right:3px;border-radius:7px;padding:3px 6px;font-size:11px;color:#fff;overflow:hidden;text-align:left;border:0;cursor:pointer}
.zwoche .wblock b{display:block;font-size:11.5px}
.zwoche .wblock small{opacity:.92}
/* v2.65.0: Entwürfe (noch nicht eingereicht) leicht schraffiert – in der Farbe der Kategorie */
.zwoche .wblock.ent::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:7px;
  background:repeating-linear-gradient(45deg,rgba(255,255,255,.20) 0 3px,rgba(255,255,255,0) 3px 10px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.zwoche .wblock.ent > b,.zwoche .wblock.ent > small{position:relative;z-index:1}
.zwoche .wblock.ent > .wgriff{z-index:2}   /* der Anfasser für die Dauer bleibt oben und absolut positioniert */
.wentleg{grid-column:1/-1;display:flex;align-items:center;gap:6px;padding:6px 8px;font-size:11.5px;color:var(--ink2)}
.wentleg i{display:inline-block;width:22px;height:12px;border-radius:4px;background:var(--it);
  background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.45) 0 3px,rgba(255,255,255,0) 3px 10px)}
.zwoche .wsum{grid-column:1/-1;display:grid;grid-template-columns:52px repeat(7,minmax(96px,1fr));border-top:2px solid var(--orange);background:var(--bg)}
.zwoche .wsum div{padding:7px 4px;text-align:center;font-size:12.5px;font-variant-numeric:tabular-nums;border-left:1px solid var(--line)}
.zwoche .wsum div:first-child{border-left:0;text-align:right;padding-right:6px;color:var(--ink2);font-size:11px}
.zdlg{width:min(620px,94vw);border-radius:12px;overflow:hidden}
.zdlg.dlg-breit{width:min(760px,95vw)}
.zdlg .h{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--line);
  background:var(--mute-row);color:var(--navy-ink)}
.zdlg .h b{font-size:15px;white-space:nowrap}
.zdlg .h .grau{color:var(--ink2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zdlg .h .x{margin-left:auto;cursor:pointer;font-size:17px;line-height:1;color:var(--ink2);
  padding:3px 6px;border-radius:7px;flex:none}
.zdlg .h .x:hover{color:var(--t-b3261e);background:var(--paper)}
.zdlg .zb{padding:18px;max-height:70vh;overflow:auto}
.zdlg .f{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:13px 18px;
  border-top:1px solid var(--line);background:var(--mute-row)}
.zdlg .f .grau{margin-right:auto;font-size:12px;color:var(--ink2)}
@media (max-width:560px){
  .zdlg .h{padding:11px 14px} .zdlg .zb{padding:14px} .zdlg .f{padding:11px 14px;flex-wrap:wrap}
  .zdlg .h .grau{display:none}}
.zdlg .feld{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.zdlg .feld label{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink2)}
.zdlg .feld input{width:100%}
.zdrei{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.zpause{border:1px dashed var(--orange);background:var(--orange-soft);border-radius:10px;padding:10px 12px;margin-bottom:12px}
.zpause .pz{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.zpause input{width:90px}
.zpause small{display:block;color:var(--warn-ink);font-size:11.5px;margin-top:4px}
.zrechner{background:var(--sek);border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:12px;margin-bottom:12px}
.zrechner b{font-size:23px;color:var(--navy-ink);font-variant-numeric:tabular-nums}
.zrechner span{font-size:12px;color:var(--ink2)}
.zkatwahl{display:flex;gap:8px;flex-wrap:wrap}
.zkatwahl button{border:1px solid var(--line);background:var(--paper);border-radius:20px;padding:5px 12px;font-size:12.5px;color:var(--ink);cursor:pointer}
.zdlg .hinweis{background:var(--orange-soft);border:1px solid var(--orange);border-radius:10px;padding:9px 12px;font-size:12.5px}
.zwahl{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;margin-bottom:7px;background:var(--paper);cursor:pointer}
.zwahl.gewaehlt{border-color:var(--navy);background:var(--zebra)}
.zwahl input[type=checkbox]{width:17px;height:17px;flex:none}
.zwahl .t{flex:1;min-width:0}
.zwahl .t b{font-size:13px;display:block}
.zwahl .t small{color:var(--ink2);font-size:11.5px}
.zwahl .h{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.zsummenband{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--sek);border-radius:10px;padding:10px 13px;margin:12px 0}
.zsummenband b{font-size:17px;font-variant-numeric:tabular-nums;color:var(--navy-ink)}
.zsammel{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--warn-soft);border:1px solid var(--warn);border-radius:11px;padding:10px 14px;margin-bottom:12px}
.zsammel b{font-size:14px;color:var(--warn-ink)}
.zsammel.ueber{background:var(--ueber-soft);border-color:var(--ueber)}
.zsammel.ueber b{color:var(--ueber-ink)}
.zfrz{border:1px solid var(--line);border-radius:11px;padding:11px 13px;margin-bottom:9px;background:var(--paper)}
.zfrz.offen{border-left:4px solid var(--warn)}
.zfrz.ueber{border-left:4px solid var(--ueber)}
.zfrz .k{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.zfrz .k b{font-size:13.5px}
.zfrz .k .h{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums}
.zfrz .m{font-size:12px;color:var(--ink2);margin-top:3px}
.zfrz .f{display:flex;gap:7px;justify-content:flex-end;margin-top:8px;align-items:center}
.zfrz .f input{flex:1;border:1px solid var(--line);border-radius:7px;padding:5px 9px;font:inherit;font-size:12.5px;background:var(--paper);color:var(--ink)}
@media(max-width:1000px){.zsoll,.zsplit{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.zdrei{grid-template-columns:1fr}.zk{min-width:0}.ztag{min-height:64px}}
.zsregel{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.zsregel .lf{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink2)}

/* ---- Beleg-Zwischenspeicher (v2.47.0) ---- */
.zwdlg{width:min(620px,94vw);border-radius:12px;overflow:hidden}
.zwdlg.dlg-breit{width:min(960px,96vw);max-width:none}
.zwdlg .h{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--line);
  background:var(--mute-row);color:var(--navy-ink)}
.zwdlg .h b{font-size:15px;white-space:nowrap}
.zwdlg .h .grau{color:var(--ink2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zwdlg .h .x{margin-left:auto;cursor:pointer;font-size:17px;line-height:1;color:var(--ink2);
  padding:3px 6px;border-radius:7px;flex:none}
.zwdlg .h .x:hover{color:var(--t-b3261e);background:var(--paper)}
.zwdlg .zb{padding:18px;max-height:72vh;overflow:auto}
.zwdlg .f{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:13px 18px;
  border-top:1px solid var(--line);background:var(--mute-row)}
.zwdlg .f .grau{margin-right:auto;font-size:12px;color:var(--ink2)}

/* Die drei Wege */
.wege{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:10px}
.wege .weg{border:1px solid var(--line);border-radius:11px;padding:14px;background:var(--paper);
  display:flex;flex-direction:column;gap:4px;text-align:left;cursor:pointer;color:var(--ink);font:inherit}
.wege .weg:hover{border-color:var(--orange);background:var(--orange-soft)}
.wege .weg .ic{font-size:21px}
.wege .weg b{font-size:13.5px}
.wege .weg span:not(.ic){font-size:12px;color:var(--ink2)}
.wege .weg.betont{border-color:var(--orange);background:var(--orange-soft)}

/* Suche und Treffer */
.zwsuch{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:11px}
.zwsuch input[type=search]{flex:1;min-width:220px;font:inherit;font-size:14px;padding:8px 11px;
  border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink)}
.zwsuch .mini{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink2);white-space:nowrap}
.zwtreffer{background:var(--zebra);border:1px solid var(--sek-linie);border-radius:9px;
  padding:8px 11px;font-size:12.5px;margin-bottom:11px}
.zwtreffer mark{background:var(--orange-tief);color:#fff;border-radius:3px;padding:0 3px}

/* Kalender + Kacheln */
.zwgrid{display:grid;grid-template-columns:250px 1fr;gap:16px}
@media(max-width:760px){ .zwgrid{grid-template-columns:1fr} }
.zwkal{border:1px solid var(--line);border-radius:11px;padding:11px;background:var(--paper);align-self:start}
.zwkal .mk{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:8px}
.zwkal .mk b{font-size:13.5px;color:var(--navy-ink)}
.zwkal table{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
.zwkal th{font-size:11px;color:var(--ink2);font-weight:normal;padding:0 0 4px;
  background:transparent;border:0}
.zwkal td{padding:1px;text-align:center}
.zwkal i{display:block;border-radius:7px;padding:5px 0;font-style:normal;position:relative;cursor:pointer}
.zwkal i:hover{background:var(--orange-soft)}
.zwkal i.hat{background:var(--sek);color:var(--navy-ink);font-weight:bold}
.zwkal i.jetzt{background:var(--orange-tief);color:#fff;font-weight:bold}
.zwkal i.gefunden{box-shadow:inset 0 0 0 2px var(--orange)}
.zwkal i u{position:absolute;top:2px;right:4px;width:5px;height:5px;border-radius:50%;
  background:var(--orange);text-decoration:none}
.zwkal i.jetzt u{background:var(--paper)}
.zwtag{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);margin-bottom:8px}
.zwbelege{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.zwk{border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:8px;
  display:flex;flex-direction:column;gap:6px;position:relative;cursor:pointer}
.zwk:hover{border-color:var(--orange)}
.zwk.gewaehlt{border-color:var(--orange);box-shadow:inset 0 0 0 1px var(--orange)}
.zwk.weg{opacity:.62}
.zwk img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top;border:1px solid var(--line);
  border-radius:6px;background:var(--paper);max-width:100%}
.zwk .kein{aspect-ratio:3/4;display:grid;place-items:center;font-size:28px;border:1px solid var(--line);
  border-radius:6px;background:var(--mute-row)}
.zwk .meta{font-size:11.5px;color:var(--ink2);line-height:1.4;min-width:0}
.zwk .meta b{display:block;color:var(--ink);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zwk .haken{position:absolute;top:6px;left:6px;width:21px;height:21px;border-radius:50%;background:var(--orange);
  color:#fff;display:grid;place-items:center;font-size:12px;font-weight:bold;z-index:2}
.zwk .auge{position:absolute;top:6px;right:6px;background:var(--paper);border:1px solid var(--line);
  border-radius:6px;padding:1px 5px;font-size:12px;text-decoration:none;z-index:2}
.zwchips,.zschips{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px}
.zwch,.zsch{font-size:11px;font-weight:bold;padding:1px 6px;border-radius:999px;border:1px solid;white-space:nowrap}
.zwch.dms,.zsch.dms{color:var(--ok-ink);border-color:var(--ok);background:var(--ok-soft)}
.zwch.zug,.zsch.zug{color:var(--navy-ink);border-color:var(--sek-linie);background:var(--sek)}
.zsch.offen{color:var(--warn-ink);border-color:var(--warn);background:var(--warn-soft)}
:root[data-theme="dark"] .zwch.zug,:root:not([data-theme="light"]) .zwch.zug,
:root[data-theme="dark"] .zsch.zug,:root:not([data-theme="light"]) .zsch.zug{color:var(--ink)}

/* DMS-Auswahl */
.dwliste{display:flex;flex-direction:column;gap:6px;max-height:52vh;overflow:auto}
.dwz{display:flex;align-items:center;gap:10px;text-align:left;font:inherit;color:var(--ink);
  border:1px solid var(--line);border-radius:9px;background:var(--paper);padding:8px 11px;cursor:pointer}
.dwz:hover{border-color:var(--orange);background:var(--orange-soft)}
.dwz .ic{font-size:18px;flex:none}
.dwz .g{flex:1;min-width:0}
.dwz .g b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dwz .g small{color:var(--ink2);font-size:11.5px}
.dwz .chev{color:var(--ink2)}

/* Übernahme-Fenster */
.zwziel{background:var(--zebra);border:1px solid var(--sek-linie);border-radius:9px;padding:10px 12px;
  margin:0 0 12px;font-size:13px}
.zwsch{display:flex;align-items:center;gap:10px;background:var(--orange-soft);border:1px solid var(--orange);
  border-radius:10px;padding:10px 12px;cursor:pointer}
.zwsch input{width:18px;height:18px;flex:none;accent-color:var(--orange)}
.zwsch i{display:none}
.zwsch b{font-size:13px;display:block}
.zwsch small{font-size:11.5px;color:var(--ink2)}

/* ---- Buchung im Detail, Sammelansicht (v2.47.1) ---- */
.zbuch .z1 .zinfo{margin-left:auto;padding:1px 7px;font-size:12px}
.zbuch .z0{font-size:11.5px;color:var(--ink2);margin-top:1px}
.zdkopf{border-left:4px solid var(--orange);background:var(--mute-row);border-radius:10px;padding:11px 13px;margin-bottom:14px}
.zdkopf b{font-size:14.5px}
.zdchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.zdgrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);
  border-radius:10px;overflow:hidden}
@media(max-width:520px){ .zdgrid{grid-template-columns:1fr} }
.zdz{background:var(--paper);padding:8px 11px;display:flex;flex-direction:column;gap:1px}
.zdz span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}
.zdz b{font-size:13.5px;font-variant-numeric:tabular-nums}
.zdgrund{margin-top:12px;background:var(--zebra-warn);border:1px solid var(--warn);border-radius:9px;padding:10px 12px;font-size:13px}
.zdgrund b{display:block;margin-bottom:2px}
/* Der Verlauf ist eingeklappt – er interessiert nur im Streitfall (v2.50.1) */
.zdverlauf{margin-top:14px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--karte)}
.zdverlauf>summary{cursor:pointer;list-style:none;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.zdverlauf>summary::-webkit-details-marker{display:none}
.zdverlauf>summary::before{content:'▸';color:var(--ink2);font-size:11px;line-height:1.4}
.zdverlauf[open]>summary::before{content:'▾'}
.zdverlauf>summary .grau{font-size:12px}
.zdverlauf>summary .zdt{margin:0}
.zdverlauf[open]>summary{margin-bottom:4px}
.zdtasten{display:flex;gap:8px;margin-left:auto}
.zdt{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);margin-bottom:6px}
.zdl{display:flex;gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:12.5px}
.zdl:first-of-type{border-top:0}
.zdl .w{color:var(--ink2);white-space:nowrap;font-variant-numeric:tabular-nums}
.zdl .t{min-width:0}
/* Der Wechsel zur Handy-Ansicht gehört ans Handy (v2.47.3): am Desktop ausgeblendet, auf schmalen
   Bildschirmen sichtbar – sonst käme man aus einer erzwungenen Desktop-Ansicht am Handy nicht zurück. */
.nurschmal{display:none}
@media (max-width:820px){ .nurschmal{display:inline} }

/* ---- Einstellungen: Kategorien und Protokoll-Kacheln (v2.48.1) ---- */
/* Farbe, Name und Knöpfe gehören in eine Zeile – ohne eigene Regel brach jede Zelle um. */
.katzeile{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.katzeile input[type=color]{flex:none;width:38px;height:30px;padding:2px;border:1px solid var(--line);
  border-radius:6px;background:var(--paper);cursor:pointer}
.katzeile input[type=text]{flex:1;min-width:0;font:inherit;padding:6px 9px;border:1px solid var(--line);
  border-radius:6px;background:var(--paper);color:var(--ink)}
.katzeile .btn{flex:none}

/* Die Protokoll-Kacheln nutzten Variablen aus einem anderen Projekt (--karte2, --rand, --grau)
   – die gibt es hier nicht, also griff der dunkle Ersatzwert und die Kacheln wurden schwarz. */
.lgk{background:var(--paper);border-color:var(--line);color:var(--ink)}
.lgk b{color:var(--navy-ink)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .lgk b{color:var(--ink)}}
:root[data-theme="dark"] .lgk b{color:var(--ink)}
.lgk span,.lgk i{color:var(--ink2)}
.lgk.warn b{color:var(--bad,var(--t-c0392b))}
.lgtabs .btn.on{background:var(--orange);border-color:var(--orange);color:#fff}
.lf{color:var(--ink2)}
.lgals{color:var(--orange-ink)}
.dfrm,.dfrw,.plndlg .plnf>label:first-child{color:var(--ink2)}

/* ---- Wochenansicht: eintragen und verschieben mit der Maus (v2.49.0) ---- */
.zwoche .wspalte{cursor:crosshair}
.zwoche .wblock{user-select:none}
.zwoche .wblock.zieh{cursor:grab}
.zwoche .wblock.zieh:hover{filter:brightness(1.07)}
.zwoche .wblock.aktiv{cursor:grabbing;box-shadow:0 4px 14px rgba(31,56,100,.35);z-index:5;opacity:.92}
.zwoche .wgriff{position:absolute;left:0;right:0;bottom:0;height:7px;cursor:ns-resize;
  background:linear-gradient(to bottom,transparent,rgba(0,0,0,.22));border-radius:0 0 7px 7px}
.zwoche .wneu{position:absolute;left:3px;right:3px;border-radius:7px;background:var(--orange-soft);
  border:1.5px dashed var(--orange);color:var(--navy-ink);font-size:11px;font-weight:700;
  display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:4}
.zwoche .whinweis{grid-column:1/-1;padding:6px 10px;font-size:11.5px;color:var(--ink2);
  border-top:1px solid var(--line);background:var(--mute-row)}
#zZeitraum .zkwsp{font-weight:400;color:inherit;opacity:.85;margin-left:5px}

/* ---- Wochennavigator: drei kleine Monate links (v2.50.0) ---- */
.zwbox{display:grid;grid-template-columns:196px minmax(0,1fr);gap:12px;align-items:start}
.zwnav{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px}
.zwnav .nk{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:7px}
.zwnav .nk b{font-size:12.5px;color:var(--navy-ink)}
.zwmini{margin-bottom:9px}
.zwmini .mt{font-size:11.5px;font-weight:700;color:var(--navy-ink);text-align:center;margin-bottom:3px}
.zwmini.jetzt .mt{color:var(--orange-ink)}
.zwmini table{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse;font-size:11px;
  font-variant-numeric:tabular-nums}
.zwmini th{font-size:11px;color:var(--ink2);font-weight:400;padding:0 0 2px;background:transparent;border:0}
.zwmini td{padding:0;text-align:center;border:0}
.zwmini i{display:block;padding:3px 0;font-style:normal;border-radius:4px;position:relative;cursor:pointer;
  color:var(--ink)}
.zwmini i:hover{background:var(--orange-soft)}
.zwmini i.we{color:var(--ink2)}
.zwmini tr.woche i{background:var(--sek);color:var(--navy-ink);font-weight:600}
.zwmini tr.woche{outline:1.5px solid var(--sek-linie)}
.zwmini i.heute{background:var(--orange-tief);color:#fff;font-weight:700}
.zwmini tr.woche i.heute{background:var(--orange-tief);color:#fff}  /* heute schlägt die Wochenmarke */
.zwmini i.hat::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:3.5px;height:3.5px;border-radius:50%;background:var(--orange)}
.zwmini tr.woche i.hat::after{background:var(--navy)}
.zwmini i.heute.hat::after{background:var(--paper)}
.zwnav .navileg{font-size:11px;color:var(--ink2);line-height:1.7;border-top:1px solid var(--line);padding-top:7px}
.zwnav .navileg span{display:inline-flex;align-items:center;gap:4px;margin-right:8px}
.zwnav .navileg u{width:9px;height:9px;border-radius:3px;display:inline-block;text-decoration:none;flex:none}
.zwnav .navileg .uwoche{background:var(--sek);outline:1.5px solid var(--sek-linie)}
.zwnav .navileg .uheute{background:var(--orange)}
.zwnav .navileg .upunkt{width:5px;height:5px;border-radius:50%;background:var(--orange)}
:root[data-theme="dark"] .zwnav .nk b,:root:not([data-theme="light"]) .zwnav .nk b,
:root[data-theme="dark"] .zwmini .mt,:root:not([data-theme="light"]) .zwmini .mt,
:root[data-theme="dark"] .zwmini tr.woche i,:root:not([data-theme="light"]) .zwmini tr.woche i{color:var(--ink)}
:root[data-theme="dark"] .zwmini.jetzt .mt,:root:not([data-theme="light"]) .zwmini.jetzt .mt{color:var(--orange-ink)}
@media (max-width:820px){
  .zwbox{grid-template-columns:1fr}
  .zwnav{order:-1}
  .zwnav .zwmini:not(.pos1){display:none}     /* am Handy nur der mittlere Monat */
  .zwnav .nk{display:none}
}

/* ------------------------------------------------------------------ v2.56.1: kein Querscrollen am Handy
   Kanban, DMS-Zweispalter und die Statusleiste laufen am schmalen Schirm sonst über den Rand hinaus. */
@media (max-width:760px){
  .board,.board.arch{grid-template-columns:1fr}
  .kb-eingang{flex-wrap:wrap}.kb-eingang input{flex:1 1 100%}.kb-eingang .hint{white-space:normal;font-size:11px}
  .dms-side{grid-template-columns:1fr}
  .dms-lay{grid-template-columns:1fr;padding-left:0}.dms-lay .dms-griff,.dms-side>.dms-griff{display:none}
  .dms-lay .dms-det{width:auto;max-width:100%;position:static}
  .dms-grid{grid-template-columns:repeat(auto-fill,minmax(0,var(--kachel,190px)))}
  .statusleiste{height:auto;min-height:28px;flex-wrap:wrap;padding:2px 8px;gap:2px 8px}
  .statusleiste .re{flex:1 1 100%;min-width:0;white-space:normal}
  .tsplit{grid-template-columns:1fr}
}

/* v2.57.0: Tastenkürzel neben dem Suchknopf */
header .btn.ghost .kuerzel{display:inline-block;border:1px solid rgba(255,255,255,.35);border-radius:4px;
  font-size:11px;line-height:13px;padding:0 4px;margin-left:4px;opacity:.75}
header .btn.ghost:hover .kuerzel{border-color:rgba(255,255,255,.7);opacity:1}
@media (max-width:1100px){header .btn.ghost .kuerzel{display:none}}

/* v2.57.0: Hinweis auf die Handy-Ansicht (nur unter 820 Punkten sichtbar) */
a.handyhinweis{display:none;background:var(--orange-soft);border:1px solid var(--orange);color:var(--ink);
  border-radius:8px;padding:9px 12px;margin-bottom:10px;font-size:13px;text-decoration:none}
@media (max-width:820px){a.handyhinweis.nurschmal{display:block}}

/* ================================================================ v2.58.0: Mailfenster, Kontakte, Signaturen */
.ctx-it.warn{color:var(--bad,var(--t-c0392b))}
.ctx-it.warn:hover{background:var(--bad,var(--f-c0392b));color:#fff}
.schalter.aus{opacity:.45}
.maildlg{width:min(820px,96vw)}
.ml-kopf{display:flex;flex-direction:column;gap:6px;padding:12px 16px 8px;border-bottom:1px solid var(--line)}
.ml-z{display:flex;align-items:center;gap:8px}
.ml-z>span{flex:0 0 58px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink2)}
.ml-z input{flex:1;min-width:0;font:inherit;font-size:14px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}
.ml-z input:focus{outline:none;border-color:var(--navy)}
.ml-anhang{padding-left:66px;min-height:22px}
.ml-leiste{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:7px 16px;background:var(--bg);border-bottom:1px solid var(--line)}
.ml-leiste.klein{padding:5px 0;background:none;border:0}
.ml-leiste .mlf{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:5px;
  font:inherit;font-size:12.5px;min-width:30px;padding:4px 7px;cursor:pointer;line-height:1.1}
.ml-leiste .mlf:hover{background:var(--orange-soft);border-color:var(--orange)}
.ml-leiste .ml-tr{width:1px;height:20px;background:var(--line);margin:0 4px}
.ml-leiste input[type=color]{width:28px;height:26px;padding:0;border:1px solid var(--line);border-radius:5px;background:none;cursor:pointer}
.ml-text{min-height:260px;max-height:46vh;overflow:auto;padding:14px 16px;font-size:14px;line-height:1.55;
  background:var(--paper);color:var(--ink);outline:none}
.ml-text.klein{min-height:110px;max-height:200px;border:1px solid var(--line);border-radius:6px;padding:10px}
.ml-text:focus{box-shadow:inset 0 0 0 2px var(--orange-soft)}
.ml-text a{color:var(--navy-ink)}
.kontdlg{width:min(700px,96vw)}
.kont-such{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line)}
.kont-such input{flex:1;font:inherit;font-size:13.5px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}
.kont-liste{max-height:44vh;overflow:auto;padding:6px 10px}
.kz{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:7px;cursor:pointer;border-bottom:1px solid var(--line)}
.kz:hover{background:var(--orange-soft)}
.kz .kn{flex:1;min-width:0}.kz .kn b{display:block;font-size:13.5px}.kz .kn small,.kz .km small{display:block;color:var(--ink2);font-size:11.5px}
.kz .km{flex:0 0 220px;font-size:12.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis}
.kz .kx{flex:0 0 auto;display:flex;gap:8px;color:var(--ink2)}
.kz .kx span:hover{color:var(--navy-ink)}
.kont-form{padding:12px 16px;border-top:1px solid var(--line);background:var(--bg)}
.kont-form .kf{display:flex;gap:10px;margin-bottom:8px}
.kont-form label{flex:1;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink2);display:flex;flex-direction:column;gap:3px}
.kont-form input,.kont-form textarea{font:inherit;font-size:13.5px;text-transform:none;letter-spacing:0;color:var(--ink);
  padding:6px 9px;border:1px solid var(--line);border-radius:6px;background:var(--paper)}
.kont-form label.voll{width:100%}
.kf-fuss{display:flex;gap:8px;align-items:center;margin-top:10px}
.sigdlg{width:min(760px,96vw)}
.sig-lay{display:grid;grid-template-columns:200px 1fr;gap:14px;padding:14px 16px}
.sig-liste{border:1px solid var(--line);border-radius:8px;overflow:hidden;align-self:start}
.sz{padding:9px 11px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13px;display:flex;align-items:center;gap:6px}
.sz:last-child{border-bottom:0}.sz:hover{background:var(--orange-soft)}
.sz.on{background:var(--navy);color:#fff}
.sz .std{margin-left:auto;font-size:11px;background:var(--orange-tief);color:#fff;border-radius:8px;padding:0 6px}
/* v2.60.0: Mailvorlagen – gleiche Bauart wie die Signaturen, nur breiter und mit Anhangsmarke */
.vorldlg{width:min(880px,96vw)}
.vorldlg .sig-bearb .kf{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0}
.vorldlg .sig-bearb .kf label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink2)}
.vorldlg .sig-bearb .kf input{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}
.sz .anh{margin-left:6px;font-size:11px;opacity:.75}
.sz .std+.anh{margin-left:4px}
.sz .anh:first-of-type:not(.std+.anh){margin-left:auto}
.sig-bearb label.voll{display:flex;flex-direction:column;gap:3px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink2);margin-bottom:8px}
.sig-bearb label.voll input{font:inherit;font-size:13.5px;text-transform:none;letter-spacing:0;color:var(--ink);padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper)}
@media (max-width:760px){
  .sig-lay{grid-template-columns:1fr}
  .kont-form .kf{flex-direction:column;gap:8px}
  .kz .km{flex:0 0 130px}
  .ml-z{flex-wrap:wrap}.ml-z>span{flex:0 0 100%}.ml-anhang{padding-left:0}
}

/* v2.59.0: Mailfenster verschieben und in der Größe ziehen */
.maildlg{flex-direction:column;max-height:92vh}
.maildlg[open]{display:flex}   /* v2.62.1: ohne [open] stünde das Mailfenster dauerhaft auf der Seite */
.maildlg .ml-text{flex:1;max-height:none}
.dlg-kopf.zieh{cursor:move;user-select:none;touch-action:none}
.dlg-kopf.zieh.zieht{background:var(--orange-soft)}
.ziehgriff{position:absolute;right:2px;bottom:2px;width:18px;height:18px;cursor:nwse-resize;touch-action:none;
  background:linear-gradient(135deg,transparent 0 45%,var(--line) 45% 55%,transparent 55% 70%,var(--line) 70% 80%,transparent 80%)}
.ziehgriff:hover{background:linear-gradient(135deg,transparent 0 45%,var(--orange) 45% 55%,transparent 55% 70%,var(--orange) 70% 80%,transparent 80%)}

/* v2.59.0: Feld „Bezahlt am“ im DMS */
.kv .v.bezahlt{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kv .v.bezahlt input{flex:0 0 auto}
.kv .v.bezahlt .grau{font-size:11.5px}

/* v2.59.0: Kategorie und Mitarbeiter im Wochenblock */
.wblock .wkat{font-weight:normal;font-size:11px;opacity:.9;background:rgba(255,255,255,.22);border-radius:6px;padding:0 5px;margin-left:3px}
.wblock .wwer{background:rgba(255,255,255,.22);border-radius:6px;padding:0 5px}
.wblock b{display:flex;align-items:center;gap:2px;flex-wrap:wrap;line-height:1.2}

/* v2.59.0: großes Freigabefenster mit Kennzahlen, Abschnitten und Verlauf */
.freidlg{width:min(1100px,96vw);max-height:92vh;flex-direction:column}
.freidlg[open]{display:flex}
/* v2.60.0: Kopf, Kennzahlen und Fußzeile bleiben stehen, nur die Mitte rollt – sonst schnitt der Fensterrand die Fußzeile ab */
.freidlg .h,.freidlg .freikpi,.freidlg .f{flex:none}
.freidlg .zb{flex:1 1 auto;min-height:0;max-height:none;overflow:auto}
.freikpi{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:12px 16px;background:var(--bg);border-bottom:1px solid var(--line)}
.freikpi .fk{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.freikpi .fk b{display:block;font-size:22px;line-height:1.1;color:var(--ink2)}
.freikpi .fk span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink2);margin-top:2px}
.freikpi .fk small{display:block;font-size:11.5px;color:var(--ink2);margin-top:3px}
.freikpi .fk.hat b{color:var(--navy-ink)}.freikpi .fk.hat{border-color:var(--navy)}
.freikpi .fk.ueber b{color:var(--warn,var(--t-8a5a12))}.freikpi .fk.ueber{border-color:var(--orange)}
.freikpi .fk.entw b{color:var(--ok,var(--t-2e7d53))}
.freib{overflow:auto;flex:1;padding:0 16px 8px}
.freisek{margin-top:14px}
.freisek h4{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);margin:0 0 8px;
  padding-bottom:5px;border-bottom:2px solid var(--orange);display:flex;align-items:center;gap:8px}
.freisek h4 .n{background:var(--navy);color:#fff;border-radius:9px;font-size:11px;padding:0 7px}
.freisek .leerhinweis{font-size:13px;color:var(--ink2);background:var(--bg);border:1px dashed var(--line);
  border-radius:8px;padding:10px 12px;margin:0 0 8px;line-height:1.5}
.zfrz-entw{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--ok,var(--r-2e7d53));
  border-radius:8px;padding:10px 12px;margin-bottom:8px}
.zfrz-entw .k{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.zfrz-entw .k .h{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums}
.zfrz-entw .f{display:flex;align-items:center;gap:8px;margin-top:8px}
.freilog{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--paper)}
.freilog .lg{display:grid;grid-template-columns:130px 100px 120px minmax(0,1fr) minmax(0,1fr);gap:8px;
  padding:6px 10px;font-size:12.5px;border-bottom:1px solid var(--line);align-items:center}
.freilog .lg:last-child{border-bottom:0}
.freilog .lg:nth-child(even){background:var(--zebra)}
.freilog .zeit{color:var(--ink2);font-variant-numeric:tabular-nums}
.freilog .was{font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.freilog .was.genehmigt{color:var(--ok,var(--t-2e7d53))}.freilog .was.abgelehnt{color:var(--bad,var(--t-c0392b))}
.freilog .was.eingereicht{color:var(--navy-ink)}.freilog .was.zurueck{color:var(--ink2)}
.freilog .buch,.freilog .txt{color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:860px){.freikpi{grid-template-columns:repeat(2,1fr)}
  .freilog .lg{grid-template-columns:1fr 1fr;gap:2px 8px}.freilog .buch,.freilog .txt{white-space:normal}}

/* ---------------------------------------------------------------- v2.60.1: kein Fenster läuft über den Bildschirm
   Jedes Fenster ist höchstens 92 % des Bildschirms hoch. Kopf und Fußzeile stehen fest, der Mittelteil rollt.
   Welcher Teil der Mittelteil ist, hängt von der Bauart ab – die Liste unten deckt alle Fenster der App ab;
   für alles Unbekannte sorgt zusätzlich der Helfer „fensterRollbar“ in base.html. */
.dlg[open]{display:flex;flex-direction:column;max-height:92vh}
.dlg[open] > *{flex:0 0 auto}
.dlg[open] > .b,.dlg[open] > .zb,.dlg[open] > .dlg-body,.dlg[open] > .sig-lay,.dlg[open] > .kont-liste,
.dlg[open] > .dr-body,.dlg[open] > .genb,.dlg[open] > .schb,.dlg[open] > .suchb,.dlg[open] > .dubb,
.dlg[open] > .willb,.dlg[open] > .rechteb,.dlg[open] > .zwb,.dlg[open] > .glockeb,.dlg[open] > .expb
  {flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.dlg[open] > .rollt{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}

/* ---------------------------------------------------------------- v2.61.0: PDF-Klappmenü im Monat */
.pdfmenue{position:fixed;z-index:70;background:var(--paper);border:1px solid var(--line);border-radius:10px;
  box-shadow:0 12px 34px rgba(0,0,0,.18);min-width:330px;max-width:94vw;padding:6px}
.pdfmenue[hidden]{display:none}
.pdfmenue .kopf{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);padding:6px 11px 2px}
.pdfmenue button{display:block;width:100%;text-align:left;border:0;background:none;font:inherit;padding:9px 11px;
  border-radius:7px;cursor:pointer;color:var(--ink)}
.pdfmenue button:hover{background:var(--bg)}
.pdfmenue button b{display:block;font-size:13.5px}
.pdfmenue button small{display:block;color:var(--ink2);font-size:11.5px;line-height:1.35;margin-top:1px}
.pdfmenue button.klein{font-size:12px;color:var(--ink2);padding:6px 11px}
.pdfmenue .tr{height:1px;background:var(--line);margin:5px 8px}
.pdfmenue .opt{display:flex;gap:8px;align-items:center;padding:7px 11px;font-size:12.5px;color:var(--ink2);cursor:pointer}
.pdfmenue .opt small{color:var(--ink2)}
.bar .druckgrp .btnpaar .btn{padding:6px 12px}

/* v2.62.0: zweiter Schalter auf der Übersicht – privat bezahlte Ausgaben */
.privatsch input:checked + i{background:var(--privat)}

/* v2.64.0: Abgleich mit der Ablage */
.abghinweis{border-radius:10px;padding:10px 12px;font-size:13px;margin:0 0 12px}
.abghinweis.warn{background:var(--f-fdecea);border:1px solid var(--r-f0c4be)}
.abghinweis.ok{background:var(--ok-soft,var(--f-e6f4ea));border:1px solid var(--r-bfe0c8)}
.abgh{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--navy-ink);margin:16px 0 4px}
.abgtab{width:100%;border-collapse:collapse;font-size:13px;min-width:0}
.abgtab th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink2);
  border-bottom:1px solid var(--line);padding:5px 8px;background:transparent}
.abgtab td{padding:5px 8px;border-bottom:1px solid var(--line)}
.abgtab tr.offen td{background:var(--orange-soft)}

/* ---------------------------------------------------------------- v2.66.0: Startseite „Meine Woche“
   Locker gehalten: oben eine Begrüßung mit dem, was ansteht, darunter was auf mich wartet,
   unten links die Aufgaben und rechts die Stunden samt zuletzt bearbeitetem Monat. */
.mwgruss{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;margin:2px 0 16px}
.mwgruss h2{margin:0;font-size:22px;color:var(--navy-ink);font-weight:700;letter-spacing:-.2px}
.mwgruss p{margin:4px 0 0;color:var(--ink2);font-size:13.5px}
.mwzahlen{display:flex;gap:10px;margin-left:auto;flex-wrap:wrap}
.mwzahlen .z{display:block;min-width:104px;text-align:center;background:var(--karte,var(--paper));border:1px solid var(--line);
  border-radius:12px;padding:8px 12px;text-decoration:none;color:inherit}
.mwzahlen .z:hover{border-color:var(--blau2,var(--r-2f6db5))}
.mwzahlen .z b{display:block;font-size:20px;font-variant-numeric:tabular-nums;line-height:1.15}
.mwzahlen .z span{display:block;font-size:11px;color:var(--ink2)}
.mwzahlen .z.warn b{color:var(--t-b3261e)}

.mwwartet{display:grid;gap:8px;margin-bottom:16px}
.mwwartet .w{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;text-decoration:none;
  color:inherit;border:1px solid var(--line);background:var(--karte,var(--paper))}
.mwwartet .w .ic{font-size:19px;width:26px;text-align:center}
.mwwartet .w .t{min-width:0;font-size:13px;color:var(--ink2)}
.mwwartet .w .t b{display:block;color:var(--ink);font-size:14px}
.mwwartet .w .t small{display:block;opacity:.8;font-size:11.5px;margin-top:1px}
.mwwartet .w .mehr{margin-left:auto;font-size:12.5px;color:var(--blau2,var(--t-2f6db5));white-space:nowrap}
.mwwartet .w.frei{border-left:4px solid var(--orange);background:var(--orange-soft)}
.mwwartet .w.rot{border-left:4px solid var(--r-b3261e);background:var(--f-fdf2f1)}
.mwwartet .w.gelb{border-left:4px solid var(--r-c8761a);background:var(--f-fff8ec)}
.mwwartet .w:hover{filter:brightness(.985)}

.mwgrid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:14px;align-items:start}
@media (max-width:980px){.mwgrid{grid-template-columns:minmax(0,1fr)}}
.mwspalte{display:grid;gap:14px}
.mwbox{padding:0;overflow:hidden}
.mwbox .bk{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line);background:var(--f-fbfcfe)}
.mwbox .bk h3{margin:0;font-size:14px;color:var(--navy-ink)}
.mwbox .bk .grau{font-size:12px}

.mwliste{list-style:none;margin:0;padding:0}
.mwliste li{border-bottom:1px solid var(--line)}
.mwliste li:last-child{border-bottom:0}
.mwliste a{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;text-decoration:none;color:inherit}
.mwliste a:hover{background:var(--orange-soft)}
.mwliste .pkt{width:8px;height:8px;border-radius:50%;background:var(--f-c6ccd9);margin-top:6px;flex:none}
.mwliste .pkt.rot{background:var(--f-b3261e)}.mwliste .pkt.orange{background:var(--orange)}
.mwliste .t{min-width:0;flex:1;font-size:13.5px;line-height:1.35}
.mwliste .t small{display:block;color:var(--ink2);font-size:11.5px;margin-top:3px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.mwliste .ruf{color:var(--t-b3261e);font-style:normal;font-weight:700;margin-right:4px}
.mwliste .mk{font-style:normal;font-size:11px;border:1px solid var(--line);border-radius:20px;padding:0 7px;margin-right:5px}
.mwliste .mk.rf{color:var(--warn-ink);border-color:var(--r-f0d2a8);background:var(--orange-soft)}
.mwliste .mk.pv{color:var(--t-7a4fa3);border-color:var(--r-d6c5e6);background:var(--f-f4edfa)}
.mwliste .f{font-size:12px;color:var(--ink2);white-space:nowrap;font-variant-numeric:tabular-nums;margin-top:1px}
.mwliste li.ueber .f{color:var(--t-b3261e);font-weight:600}
.mwliste li.privat{box-shadow:inset 3px 0 0 var(--r-7a4fa3)}
.leerchen{margin:0;padding:22px 14px;color:var(--ink2);font-size:13px;text-align:center}

.mwtage{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:12px 14px 6px}
.mwtage .mwtg{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border-radius:10px;
  text-decoration:none;color:inherit;border:1px solid transparent}
.mwtage .mwtg:hover{background:var(--orange-soft)}
.mwtage .mwtg.heute{border-color:var(--orange);background:var(--orange-soft)}
.mwtage .mwtg.kommt{opacity:.55}
.mwtage .wt{font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.04em}
.mwtage .nr{font-size:12.5px;font-weight:600}
.mwtage .bal{position:relative;display:flex;align-items:flex-end;justify-content:center;height:50px;width:20px;
  background:var(--mute-row,var(--f-eef1f6));border-radius:5px;overflow:hidden}
.mwtage .bal i{display:block;width:100%;background:var(--blau2,var(--f-2f6db5));border-radius:5px 5px 0 0}
.mwtage .bal u{position:absolute;left:0;right:0;bottom:0;text-decoration:none;border-radius:5px 5px 0 0;
  background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.45) 0 3px,rgba(255,255,255,0) 3px 9px)}
.mwtage .mi{font-size:11px;color:var(--ink2);font-variant-numeric:tabular-nums}
.mwstand{display:flex;gap:14px;flex-wrap:wrap;padding:8px 14px 12px;font-size:11.5px;color:var(--ink2)}
.mwstand b{font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums;margin-right:3px}
.mwstand .gelb b{color:var(--t-c8761a)}.mwstand .gruen b{color:var(--ok-ink)}

.mwmonat{display:block;padding:12px 14px;text-decoration:none;color:inherit}
.mwmonat:hover{background:var(--orange-soft)}
.mwmonat > b{font-size:15px;color:var(--navy-ink)}
.mwmonat .zm{display:flex;gap:16px;flex-wrap:wrap;margin:8px 0 6px}
.mwmonat .zm span{font-size:11px;color:var(--ink2);text-align:center}
.mwmonat .zm b{display:block;font-size:16px;color:var(--ink);font-variant-numeric:tabular-nums}
.mwmonat .zm .orange b{color:var(--orange-ink)}.mwmonat .zm .gruen b{color:var(--ok-ink)}
.mwmonat small{color:var(--ink2);font-size:12px}
.mwfuss{margin:0;color:var(--ink2);font-size:12px;text-align:right}

/* v2.65.0: privat oder geteilt – ganz leise Kennzeichnung, damit Wichtig und Erledigt vorne bleiben */
.apriv{font-size:11px;border-radius:20px;padding:1px 8px;color:var(--t-7a4fa3);border:1px solid var(--r-d6c5e6);background:var(--f-f4edfa)}
.ageteilt{font-size:11px;border-radius:20px;padding:1px 8px;color:var(--t-2f6db5);border:1px solid var(--r-bbd2ec);background:var(--f-edf4fc)}
.kanban .k.privat,.al .z.privat,.mwtab tr.privat td:first-child{box-shadow:inset 3px 0 0 var(--r-7a4fa3)}
.al .z.privat{background:var(--f-fbf9fd)}
.kanban .k.privat{background:var(--f-fbf9fd)}

/* v2.65.0: Anhänge aus Aufgaben und private Anhänge im DMS */
.q.a{background:var(--f-eaf0f9);color:var(--t-2f6db5)}
.q.p{background:var(--f-f4edfa);color:var(--t-7a4fa3);margin-left:4px}

/* ---------------------------------------------------------------- v2.66.0: PDF-Vorschau im Fenster */
.pvdlg{width:min(1000px,96vw);height:min(86vh,900px);max-width:98vw;flex-direction:column;padding:0;overflow:hidden}
.pvdlg[open]{display:flex}          /* Merksatz seit v2.62.1: jedes display gehört an [open] */
.pvdlg > *{flex:0 0 auto}
.pvdlg > .pv-blatt{flex:1 1 auto;min-height:0}   /* muss nach der Regel darüber stehen, sonst wächst das Blatt */
.pv-leiste{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;
  border-bottom:1px solid var(--line);background:var(--bg)}
.pv-leiste .seg button{padding:5px 10px;font-size:12.5px}
.pv-zoom{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink2)}
.pv-zoom input[type=range]{width:120px}
.pv-zoom span{font-variant-numeric:tabular-nums;min-width:44px}
.pv-bl{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink2)}
.pv-bl span{font-variant-numeric:tabular-nums;min-width:86px;text-align:center}
.pv-blatt{flex:1 1 auto;min-height:0;overflow:auto;background:var(--f-5a6478);padding:14px;text-align:center}
.pv-s{margin:0 auto 14px;display:inline-block;width:100%}
.pv-s img,.pv-bild{display:block;margin:0 auto 14px;background:var(--paper);border-radius:3px;
  box-shadow:0 2px 10px rgba(0,0,0,.35);max-width:none}
.pv-laden{color:var(--t-edeff4);padding:40px 10px;font-size:13.5px}
.pv-fuss{display:flex;align-items:center;gap:10px}
.dlg-griff{position:absolute;right:2px;bottom:2px;width:16px;height:16px;cursor:nwse-resize;
  background:linear-gradient(135deg,transparent 50%,var(--line) 50%,var(--line) 60%,transparent 60%,
    transparent 72%,var(--line) 72%,var(--line) 82%,transparent 82%)}
.fragedlg{width:min(460px,94vw)}
.fragedlg[open]{display:block}

/* v2.66.0: Zuordnung in der Dublettenliste */
.dubz.verwaist{background:repeating-linear-gradient(45deg,var(--f-fff6ec) 0 7px,var(--f-fffbf5) 7px 15px)}
.dubzu{margin-left:7px;font-size:11px;border-radius:20px;padding:1px 8px;white-space:nowrap}
.dubzu.ja{color:var(--ok-ink);border:1px solid var(--r-bfe0ce);background:var(--f-f1f9f4)}
.dubzu.nein{color:var(--warn-ink);border:1px solid var(--r-f0d2a8);background:var(--orange-soft)}

/* v2.66.0: Handlungsknöpfe links neben dem Seitentitel */
.hd-tun{display:flex;align-items:center;gap:8px;margin-left:14px}
.hd-tun:empty{display:none}

/* v2.67.0: zweite Zeile in der Saldo-Kachel – dieselben Zahlen netto */
.kpi .nettozeile{display:block;margin-top:2px;opacity:.9}
/* v2.67.0: die Ergebnis-Kachel trägt zwei lange Zeilen – am Handy dürfen sie umbrechen,
   sonst wird die Kachelreihe breiter als der Bildschirm (Karls Regel: kein Querscrollen). */
@media (max-width:760px){
  #kpiSaldo small{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
  .kpis{grid-template-columns:minmax(0,1fr)}
}

/* ---------------------------------------------------------------- v2.67.0: Einnahmen-Ausgaben-Rechnung */
.earech{margin-bottom:12px}
.earech .kopf h3{margin:0;font-size:14px;color:var(--navy-ink)}
.eatab{width:100%;border-collapse:collapse;margin-top:2px;min-width:0}   /* globale Tabellen haben min-width:1180px */
.eatab td,.eatab th{padding:7px 12px;border-bottom:1px solid var(--line);font-size:14px;
  font-variant-numeric:tabular-nums;text-align:right}
.eatab td:first-child,.eatab th:first-child{text-align:left;font-variant-numeric:normal}
.eatab td small{display:block;color:var(--ink2);font-size:11.5px}
.eatab .kopfz th{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.88);border-bottom:2px solid var(--orange)}
.eatab .plus{color:var(--ok-ink)}
.eatab .erg td{font-weight:700;font-size:16px;border-bottom:0;padding-top:10px;padding-bottom:10px}
.eatab .erg .gut{color:var(--ok-ink)}.eatab .erg .rot{color:var(--t-b3261e)}
.eatab .n{width:170px;background:var(--paper)}
/* v2.81.0: Die Netto-Spalte hat einen hellen Hintergrund – auch im Tabellenkopf,
   wo sonst weiße Schrift auf Dunkelblau steht. Hier also die normale Schriftfarbe. */
.eatab .kopfz th.n{color:var(--ink2)}
/* am Handy: keine festen Breiten, die Beschriftung darf umbrechen – sonst entsteht Querscrollen */
@media (max-width:760px){
  .eatab td,.eatab th{padding:6px 8px;font-size:13px}
  .eatab .n{width:auto}
  .eatab td:first-child{white-space:normal}
  .eatab td small{white-space:normal}
  .earech .kopf h3{font-size:13px}
}
.eafuss{padding:8px 12px 12px;color:var(--ink2);font-size:11.5px}
.mt .nt,.mk-saldo .nt{color:var(--ink2);font-size:11px;margin-left:6px}.ml .mt small.nt{margin-left:0}
/* v2.68.0: Private Leihgabe an die Firma – abgesetzter Block unter der Einnahmen-Ausgaben-Rechnung */
.leih{margin-top:10px;border-top:2px dashed var(--line);padding-top:8px}
.leih .lkopf{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;padding:2px 12px 4px}
.leih .lkopf b{font-size:13.5px;color:var(--navy-ink)}
.leih .lkopf .grau{font-size:11.5px}
.leihtab .erg td{font-size:15px}
.leihtab .n.leer{visibility:hidden}
@media (max-width:760px){ .leihtab .n.leer{display:none} }
.leihtab .erg .gut{color:var(--einlage-ink)}
/* v2.68.0: Nettowert klein unter dem Bruttowert in der Diagramm-Legende (Variante A) */
.legend>span{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:4px;max-width:100%}
.legend b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}
.legend .nt{color:var(--ink2);font-size:11px;white-space:nowrap}
/* v2.70.0: USt-Aufteilung – Knopf in der Zeile und das Fenster dazu */
.btn.klein.ustteil{padding:1px 6px;font-size:12px;line-height:1.4;opacity:.55}
.btn.klein.ustteil:hover{opacity:1}
.btn.klein.ustgeteilt{padding:2px 8px;font-size:11.5px;border-color:var(--navy);color:var(--navy-ink);font-weight:600}
.uttab{width:100%;min-width:0;border-collapse:collapse;margin:6px 0;table-layout:fixed}   /* min-width:0 – die globale Tabellenregel ist 1180px */
.uttab td{padding:4px 6px;border-bottom:1px solid var(--line)}
.uttab td:first-child{width:32%}.uttab td:nth-child(2){width:21%}
.uttab td:nth-child(3){width:35%}.uttab td:nth-child(4){width:12%;text-align:center}
.uttab input,.uttab select{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:7px;
  font:inherit;background:var(--paper);color:var(--ink)}
.uttab .utn{font-size:12px;color:var(--ink2);text-align:right;white-space:nowrap}
.uttab .del{cursor:pointer;color:var(--ink2);padding:0 4px}.uttab .del:hover{color:var(--t-b3261e)}
.utfuss{display:flex;align-items:flex-start;gap:10px;margin-top:6px;font-size:12.5px}
.utsumme{text-align:right;line-height:1.5}
.utsumme .utab{color:var(--t-b3261e);font-weight:600}
.utsumme .utok{color:var(--ok-ink)}
/* v2.69.0: Ein langes Wort ohne Leerzeichen – in der Praxis eine eingefügte Adresse – hat die
   Aufgabenspalte am Handy auf 1650 px aufgezogen. Titel und Text brechen jetzt notfalls im Wort um. */
.k .kt b,.k .sp,.al .z b,.al .z .sp,.todo li b,.mwliste b,.mwtab td{overflow-wrap:anywhere;word-break:break-word}
.col,.liste,.k{min-width:0}
@media (max-width:760px){ .legend{gap:10px} .legend>span{width:100%} .legend>span:last-child{margin-left:0 !important} }

/* v2.71.0: Zuordnungszeile beginnt ganz vorne (Platz aus Pos/Datum/Partner), Zahlart breiter */
tr.z2 td{padding-left:12px}
.zuord select.za{min-width:104px;font-weight:bold}


/* v2.72.0: DMS über die volle Bildschirmbreite (main ist sonst auf 1500 px begrenzt) */
body.dmsbreit main{max-width:none;padding-left:18px;padding-right:18px}

/* v2.72.0: Aufgaben-Knopf in der Zuordnungszeile – wie die Rückfrage, nur in Navy */
.zuord .auf-btn{color:var(--navy-ink);border-color:var(--line)}
.zuord .auf-btn:hover{border-color:var(--navy);background:var(--f-eaf1f8)}

/* v2.72.0: Vorschlag aus ähnlichen Belegen (Gewerbe · Kategorie) */
.zuord .vorschlag,td.partner .vorschlag{display:inline-flex;align-items:center;gap:6px;background:var(--f-eef6ff);border:1px solid var(--r-9cc4ea);
  color:var(--t-15537f);border-radius:14px;padding:2px 9px;font-size:11.5px;cursor:pointer;white-space:nowrap}
.zuord .vorschlag:hover,td.partner .vorschlag:hover{background:var(--f-dceaf8)}
td.partner .vorschlag{margin-top:5px}
.zuord .vorschlag .wie,td.partner .vorschlag .wie{color:var(--t-5d83a6);font-size:11px}
.zuord .vorschlag .x,td.partner .vorschlag .x{color:var(--t-8aa6bf);font-weight:700;padding-left:2px}
.zuord .vorschlag .x:hover,td.partner .vorschlag .x:hover{color:var(--warn-ink)}
.zuord .vorschlag.unsicher,td.partner .vorschlag.unsicher{background:var(--warn-soft);border-color:var(--r-e8c68a);color:var(--t-8a5a12)}
.zuord .vorschlag.unsicher .wie,td.partner .vorschlag.unsicher .wie{color:var(--t-a07a3a)}

/* v2.72.1: gesperrte Knöpfe in der Zuordnungszeile (Verknüpfen, USt-Aufteilung) */
.zuord .btn.gesperrt,.zuord .btn:disabled{opacity:.4;pointer-events:none}

/* v2.72.2: „.pane table{min-width:1040px}“ ist für die Buchungstabellen der Monatsseite gedacht,
   traf aber auch die Einstellungen (dort heißen die Kästen ebenfalls „pane“). Dadurch lief die
   Tabelle der Exportziele über den Kasten hinaus – Kopflinie und Papierkorb standen außerhalb. */
.setsplit .pane table{min-width:0}

/* v2.74.0: Jarvis – die lokale KI. Lila, damit man den KI-Vorschlag sofort von allem anderen unterscheidet. */
.btn.jarvis{border-color:var(--r-8e86d8);color:var(--t-4a3aa7);background:var(--f-f2f0fc)}
.btn.jarvis:hover{background:var(--f-e6e2f8);border-color:var(--r-4a3aa7)}
#jaInhalt .jaz{display:grid;grid-template-columns:96px 1fr 18px 1fr;gap:8px;align-items:baseline;padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}
#jaInhalt .jaz .k{color:var(--ink2);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
#jaInhalt .jaz .a{color:var(--ink2)} #jaInhalt .jaz .pf{color:var(--t-8e86d8);text-align:center}
#jaInhalt .jaz .n{font-weight:bold;color:var(--t-4a3aa7)} #jaInhalt .jaz .n.gleich{font-weight:normal;color:var(--ink2)}
#jaInhalt .jabeg{margin-top:10px;background:var(--f-f2f0fc);border:1px solid var(--r-d7d2f2);border-radius:8px;padding:8px 10px;font-size:12.5px;color:var(--t-3b3080)}
#jaInhalt .jawarn{margin-top:8px;background:var(--orange-soft);border:1px solid var(--r-e8c68a);border-radius:8px;padding:8px 10px;font-size:12.5px;color:var(--t-8a5a12)}
#jaInhalt .jawarn ul{margin:4px 0 0 16px;padding:0}

/* v2.74.1: Jarvis meldet sich überall gleich – Anrede, Begründung, Vorlesen */
.jabox{background:var(--f-f2f0fc);border:1px solid var(--r-d7d2f2);border-radius:10px;padding:10px 12px;margin:0 0 10px}
.jabox .jakopf{display:flex;align-items:center;gap:7px;margin-bottom:4px;color:var(--t-3b3080)}
.jabox .jaav{width:22px;height:22px;border-radius:50%;background:var(--f-4a3aa7);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px}
.jabox .jaton{margin-left:auto}
.jabox .jatext{margin:0;font-size:13px;color:var(--t-2b2358);line-height:1.5}
.jabox .jahin{margin:6px 0 0;font-size:12.5px;color:var(--t-5b5190)}
.jabox .jafuss{margin:6px 0 0;font-size:11.5px;color:var(--t-7a72a8)}
.jabox .jawarn{margin-top:8px;background:var(--orange-soft);border:1px solid var(--r-e8c68a);border-radius:8px;padding:8px 10px;font-size:12.5px;color:var(--t-8a5a12)}
.jabox .jawarn ul{margin:4px 0 0 16px;padding:0}

/* ---------------------------------------------------------------- Jarvis-Helfer (v2.75.0)
   Das Symbol von Jarvis („Arc-Kern“) steckt als SVG im Code (jarvis.js). Hier steht nur, wie groß es
   ist und wie es sich bewegt. Karls Wahl: im Ruhezustand nur atmen und langsam drehen, mehr Bewegung
   erst, wenn Jarvis etwas tut – denkt (Ringe drehen schneller), spricht (der Kern pulsiert im Takt),
   fertig (einmal aufleuchten). */
.javatar{width:100%;height:100%;display:block;overflow:visible}
@keyframes jav-atem{0%,100%{opacity:.3;transform:scale(.93)}50%{opacity:.55;transform:scale(1.04)}}
@keyframes jav-dreh{to{transform:rotate(360deg)}}
@keyframes jav-gegen{to{transform:rotate(-360deg)}}
@keyframes jav-reden{0%,100%{transform:scale(1)}50%{transform:scale(1.13)}}
@keyframes jav-leuchten{0%,100%{opacity:.4;transform:scale(1)}40%{opacity:1;transform:scale(1.25)}}
.javatar .jav-glanz{animation:jav-atem 3.8s ease-in-out infinite;transform-origin:50px 50px}
.javatar .jav-ring{animation:jav-dreh 22s linear infinite;transform-origin:50px 50px}
.javatar .jav-innen{animation:jav-gegen 34s linear infinite;transform-origin:50px 50px}
.javatar.jav-denkt .jav-ring{animation-duration:2.4s}
.javatar.jav-denkt .jav-innen{animation-duration:3.6s}
.javatar.jav-denkt .jav-glanz{animation-duration:1.1s}
.javatar.jav-spricht .jav-kern{animation:jav-reden 440ms ease-in-out infinite;transform-origin:50px 50px}
.javatar.jav-fertig .jav-glanz{animation:jav-leuchten 700ms ease-in-out 1}
@media (prefers-reduced-motion: reduce){        /* wer keine Bewegung mag, bekommt ein stilles Bild */
  .javatar .jav-glanz,.javatar .jav-ring,.javatar .jav-innen,.javatar .jav-kern{animation:none!important}
}
.jabox .jaav{background:transparent;padding:0;width:26px;height:26px}

/* Der Knopf: sitzt über allem, lässt sich ziehen und merkt sich seinen Platz (localStorage). */
.robo{position:fixed;z-index:70;width:52px;height:52px;padding:0;border-radius:50%;border:2px solid #fff;
      background:var(--f-0b1020);box-shadow:0 6px 18px rgba(12,19,36,.38);cursor:grab;touch-action:none}
.robo:hover{box-shadow:0 8px 24px rgba(12,19,36,.5)}
.robo.on{box-shadow:0 0 0 3px rgba(91,139,255,.35),0 8px 24px rgba(12,19,36,.5)}
.robo.zieht{cursor:grabbing;transform:scale(1.06)}
.robo .roboav{position:absolute;inset:3px;display:block}
.robo .robopunkt{position:absolute;top:-1px;right:-1px;width:13px;height:13px;border-radius:50%;
                 background:var(--f-17a673);border:2px solid #fff}
.robo.aus .robopunkt{background:var(--f-b6bcc7)}
.robo.aus{filter:grayscale(.55)}

/* Das Fenster am Knopf. Höhe begrenzt, damit es auf kleinen Bildschirmen nicht hinausläuft. */
.robobox{position:fixed;z-index:71;width:340px;max-width:calc(100vw - 24px);max-height:calc(100vh - 110px);
         overflow:auto;background:var(--paper);border:1px solid var(--r-d7d2f2);border-radius:12px;
         box-shadow:0 14px 40px rgba(31,36,48,.2)}
.robobox .rbkopf{display:flex;align-items:center;gap:8px;background:var(--f-f2f0fc);padding:8px 10px;
                 border-bottom:1px solid var(--r-d7d2f2);color:var(--t-3b3080);position:sticky;top:0;z-index:2}
.robobox .rbkopf .jaav{width:24px;height:24px;flex:none}
.robobox .rbkopf b{font-size:13.5px}
.robobox .rbstand{margin-left:auto;font-size:11px;color:var(--t-6b6490)}
.robobox .rbzu{border:0;background:transparent;cursor:pointer;color:var(--t-6b6490);font-size:15px;line-height:1}
.robobox .rbhallo{margin:0;padding:10px 11px 2px;font-size:13.5px;color:var(--t-2b2358)}
.robobox .rbliste{list-style:none;margin:0;padding:6px 9px 9px}
.robobox .rbliste li{margin:0 0 6px}
.robobox .rbliste button{width:100%;display:flex;gap:8px;text-align:left;border:1px solid var(--line);
                         background:var(--paper);color:var(--ink);border-radius:9px;padding:7px 9px;font:inherit;font-size:13px;cursor:pointer}
/* v2.98.1: Ein Knopf erbt die Textfarbe nicht (Browser-Vorgabe „buttontext“ = schwarz) – im Dunkelmodus
   standen die Jarvis-Vorschläge schwarz auf dunkel. Dazu war --grau nirgends definiert. */
.robobox .rbliste button:hover:not(:disabled){border-color:var(--r-8e86d8);background:var(--f-f7f6fd)}
.robobox .rbliste button:disabled{opacity:.5;cursor:not-allowed}
.robobox .rbliste small{display:block;color:var(--ink2);font-size:11.5px}
.robobox .rbs{flex:none}
.robobox .rbantwort{padding:0 10px}
.robobox .rbantwort .jabox{margin-bottom:8px}
.robobox .rbfuss{border-top:1px solid var(--line);padding:6px 11px}
.robobox .rbfuss small{color:var(--ink2);font-size:11px}
.robobox .rbwarten{background:var(--f-f2f0fc);border:1px solid var(--r-d7d2f2);border-radius:9px;padding:9px 10px;
                   font-size:12.5px;color:var(--t-4a3aa7);margin-bottom:8px}
.robobox .rbfehler{background:var(--orange-soft);border:1px solid var(--r-e8c68a);border-radius:9px;padding:9px 10px;
                   font-size:12.5px;color:var(--t-8a5a12);margin-bottom:8px}
/* v2.82.0: Der nächste Schritt steht als eigene, ruhigere Zeile unter der Meldung. */
.robobox .rbfehler .rbtipp{display:block;margin-top:5px;font-size:11.5px;opacity:.9}
.robobox .rbgut{background:var(--f-e8f7f0);border:1px solid var(--r-9edcc2);border-radius:9px;padding:9px 10px;
                font-size:12.5px;color:var(--t-13694c);margin-bottom:8px}
.robobox .rbein label{display:block;font-size:12px;color:var(--ink2);margin:0 0 4px}
.robobox .rbein input,.robobox .rbein textarea,.robobox .rbtext textarea{width:100%;font:inherit;font-size:13px;
         border:1px solid var(--line);border-radius:8px;padding:6px 8px;box-sizing:border-box}
.robobox .rbtun{display:flex;gap:6px;margin:8px 0}
.robobox .rbtab{margin-bottom:8px}
.robobox .rbtab table{width:100%;min-width:0;border-collapse:collapse;font-size:11.5px}
.robobox .rbtab th,.robobox .rbtab td{border-bottom:1px solid var(--line);padding:3px 4px;text-align:left}
.robobox .rbtab th{color:var(--ink2);font-weight:600}
/* Am Handy hat die App eine eigene Ansicht (m_base.html) – dort ist kein Platz für den Helfer. */
@media (max-width:820px){ .robo,.robobox{display:none} }

/* Eingeklappt (v2.75.0): Jarvis klebt als schmaler Streifen am Bildschirmrand und ist ganz aus dem
   Weg. Nur ein Spalt des Gesichts schaut heraus, dazu der Punkt für „erreichbar“. Ein Klick darauf
   holt ihn zurück. Welcher Rand – links oder rechts – richtet sich danach, wo er zuletzt stand. */
.robo.eingeklappt{width:17px;height:54px;border-radius:10px 0 0 10px;right:0!important;
                  border-width:2px 0 2px 2px;overflow:hidden;cursor:pointer}
.robo.eingeklappt.amrand-links{border-radius:0 10px 10px 0;left:0;right:auto!important;
                               border-width:2px 2px 2px 0}
.robo.eingeklappt .roboav{inset:2px auto 2px -32px;width:46px;height:46px;opacity:.9}
.robo.eingeklappt.amrand-links .roboav{inset:2px -32px 2px auto}
.robo.eingeklappt .robopunkt{width:9px;height:9px;top:3px;right:2px;border-width:1.5px}
.robo.eingeklappt.amrand-links .robopunkt{right:auto;left:2px}
.robo.eingeklappt:hover{width:22px}

/* Symbolwahl in den Einstellungen (v2.75.0): die sechs Entwürfe und das eigene Bild nebeneinander. */
.javwahl{display:flex;flex-wrap:wrap;gap:8px}
.javwahl .javk{display:flex;flex-direction:column;align-items:center;gap:4px;width:74px;padding:7px 4px;
                border:1px solid var(--line);border-radius:10px;background:var(--paper);cursor:pointer;font:inherit}
.javwahl .javk:hover{border-color:var(--r-8e86d8);background:var(--f-f7f6fd)}
.javwahl .javk.an{border-color:var(--r-4a3aa7);box-shadow:0 0 0 2px rgba(74,58,167,.18)}
.javwahl .javb{width:44px;height:44px;display:block;border-radius:50%;overflow:hidden}
.javwahl .javb img{width:100%;height:100%;object-fit:cover;display:block}
.javwahl .javleer{display:flex;width:100%;height:100%;align-items:center;justify-content:center;
                  background:var(--grau-soft,var(--f-f1f3f8));font-size:19px}
.javwahl .javk small{font-size:11px;color:var(--ink2);line-height:1.2;text-align:center}
img.javatar.jav-eigen{border-radius:50%;object-fit:cover}

/* Jarvis lernt (v2.79.0): das Korrekturfenster und die Liste in den Einstellungen. */
.lehreform{display:grid;grid-template-columns:120px 1fr;gap:8px 12px;align-items:center;margin-top:10px}
.lehreform label{font-size:12.5px;color:var(--ink2)}
.lehreform label.inl{display:inline-flex;align-items:center;gap:4px;color:var(--ink);font-size:13px;margin-right:10px}
.lehreform textarea,.lehreform input,.lehreform select{font:inherit;font-size:13px;border:1px solid var(--line);
  border-radius:8px;padding:6px 8px;background:var(--paper);color:var(--ink);width:100%;box-sizing:border-box}
.lehrliste{margin-top:10px}
.lehrzeile{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;
  padding:9px 11px;margin-bottom:7px;background:var(--paper)}
.lehrzeile.aus{opacity:.55}
.lehrzeile .wer{font-weight:600;font-size:13px;min-width:130px}
.lehrzeile .was{flex:1;font-size:12.5px;color:var(--ink)}
.lehrzeile .was small{display:block;color:var(--ink2);margin-top:2px}
.lehrzeile .tun{display:flex;gap:5px;flex:none}
.lehrzeile .zaehler{font-size:11.5px;color:var(--ink2);white-space:nowrap}
.regelzeile{border-left:4px solid var(--r-4a3aa7)}
.jaquote{display:flex;gap:14px;flex-wrap:wrap;margin:6px 0 12px}
.jaquote div{background:var(--grau-soft,var(--f-f1f3f8));border-radius:10px;padding:8px 12px;font-size:12.5px}
.jaquote b{display:block;font-size:18px}

/* v2.80.0: Die Schließen-Kreuze sind jetzt echte Knöpfe (mit der Tastatur erreichbar, mit Namen für
   die Sprachausgabe). Damit sie weiter aussehen wie vorher, bekommen sie hier den Knopf-Rahmen weg. */
button.x{background:transparent;border:0;font:inherit;cursor:pointer;padding:0 2px;line-height:1;color:inherit}
button.x:focus-visible{outline:2px solid var(--navy);outline-offset:2px;border-radius:6px}

/* v2.80.0: „Wohin gehört dieser Beleg?“ – die Kandidatenliste im DMS. */
.wohin{display:flex;flex-direction:column;gap:5px;margin:4px 0 8px}
.wohinz{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--line);border-radius:9px;
  padding:7px 10px;font-size:13px;cursor:pointer;background:var(--paper)}
.wohinz:hover{border-color:var(--r-8e86d8)}
.wohinz.tipp{border-color:var(--r-4a3aa7);background:var(--f-f7f6fd)}
.wohinz small{display:block;color:var(--ink2);font-size:11.5px}
.wohintun{margin-top:4px}


/* ---------------------------------------------------------------- Doppelrollen (v2.81.0)
   --navy ist zugleich Schrift (125 Stellen) und Fläche (50 Stellen). Hellt man sie für
   den Dunkelmodus auf, wird die Schrift lesbar – aber die Kopfzeile hellblau und die
   weiße Schrift darauf unlesbar. Deshalb zwei Fassungen:
     --navy      Fläche  (bleibt dunkel, Weiß sitzt sicher darauf)
     --navy-ink  Schrift (hell, sitzt sicher auf dunklem Papier)
   Im Hellmodus sind beide gleich – dort ändert sich nichts.                          */
:root{--navy-ink:#1F3864;--ok-ink:#276C44;--ein-ink:#276C44;--warn-ink:#905F19;--it-ink:#2D69AE;--bad-ink:#C0392B;--rot-ink:#C8322B;--einlage-ink:#7A5CC7;--ueber-ink:#7A5CC7;--orange-ink:#A96514;--sr-ink:#A96514;--privat-ink:#A76316;--line-ink:#617599;--aus-ink:#1F3864;}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--navy-ink:#7799D5;--ok-ink:#3FAB6C;--ein-ink:#3FAB6C;--warn-ink:#CD8823;--it-ink:#659AD7;--bad-ink:#DF7C71;--rot-ink:#E17974;--einlage-ink:#A28DD8;--ueber-ink:#A28DD8;--orange-ink:#E89A3C;--sr-ink:#E89A3C;--privat-ink:#DD821D;--line-ink:#D9DEE7;--aus-ink:#7799D5;--warn:#9D681B;--orange:#A56314;--sr:#A56314;}}
:root[data-theme="dark"]{--navy-ink:#7799D5;--ok-ink:#3FAB6C;--ein-ink:#3FAB6C;--warn-ink:#CD8823;--it-ink:#659AD7;--bad-ink:#DF7C71;--rot-ink:#E17974;--einlage-ink:#A28DD8;--ueber-ink:#A28DD8;--orange-ink:#E89A3C;--sr-ink:#E89A3C;--privat-ink:#DD821D;--line-ink:#D9DEE7;--aus-ink:#7799D5;--warn:#9D681B;--orange:#A56314;--sr:#A56314;}

/* v2.81.0: Links ohne eigene Klasse standen auf der Browser-Vorgabe #0000EE.
   Auf dunklem Grund sind die nicht zu lesen. */
a{color:var(--navy-ink)}
:root{--red-ink:#C0392B;--orange-tief-ink:#A85C00;}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--red-ink:#DF7C71;--orange-tief-ink:#D99A3A;--red:#C0392B;--orange-tief:#9A5400;}}
:root[data-theme="dark"]{--red-ink:#DF7C71;--orange-tief-ink:#D99A3A;--red:#C0392B;--orange-tief:#9A5400;}

/* v2.81.0: Schrift auf oranger Fläche. Hell ist die Fläche kräftig orange und die Schrift
   fast schwarz; dunkel wird die Fläche dunkelorange und die Schrift muss weiß werden. */
:root{--auf-orange:#231402}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--auf-orange:#FFFFFF}}
:root[data-theme="dark"]{--auf-orange:#FFFFFF}

/* ---------------------------------------------------------------- Darstellung (v2.83.0)
   Ein Band statt dreier Knöpfe: links Sonne, rechts Nacht – man sieht, worum es geht.
   Darüber liegen drei durchsichtige Knöpfe; die tragen die Bedienung (Tastatur, Sprachausgabe),
   das Band ist nur Bild. Der Knauf zeigt, was gewählt ist.
   Die Farben des Bandes stehen bewusst fest und schalten NICHT mit: Es stellt Tag und Nacht dar,
   nicht die Oberfläche. In der dunklen Ansicht sieht es genauso aus.                          */
.umenu .darstellung{padding:8px 16px 10px}
.umenu .dar-t{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink2);margin-bottom:8px}
.umenu .dar-s{position:relative;height:44px;border-radius:22px;overflow:hidden;
  box-shadow:inset 0 1px 3px rgba(0,0,0,.18)}
.umenu .dar-band{position:absolute;inset:0;width:100%;height:100%}
.umenu .dar-s button{position:absolute;top:0;bottom:0;width:33.333%;border:0;background:none;
  cursor:pointer;padding:0;z-index:2;font:inherit}
.umenu .dar-s button:nth-of-type(1){left:0}
.umenu .dar-s button:nth-of-type(2){left:33.333%}
.umenu .dar-s button:nth-of-type(3){left:66.666%}
.umenu .dar-s button:focus-visible{outline:none;border-radius:20px;
  box-shadow:inset 0 0 0 3px #FFFFFF, inset 0 0 0 6px #1C2333}
.umenu .dar-knauf{position:absolute;top:4px;height:36px;width:calc(33.333% - 8px);left:4px;
  border-radius:18px;background:rgba(255,255,255,.30);border:2px solid rgba(255,255,255,.95);
  box-shadow:0 2px 8px rgba(0,0,0,.28);z-index:1;pointer-events:none;
  transition:left .22s cubic-bezier(.4,1.3,.5,1)}
.umenu .dar-s[data-w="auto"]   .dar-knauf{left:calc(33.333% + 4px)}
.umenu .dar-s[data-w="dunkel"] .dar-knauf{left:calc(66.666% + 4px)}
.umenu .dar-bez{display:flex;margin-top:7px;font-size:12px;color:var(--ink2)}
.umenu .dar-bez span{flex:1;text-align:center;white-space:nowrap}
.umenu .dar-bez span:first-child{text-align:left}
.umenu .dar-bez span:last-child{text-align:right}
.umenu .dar-bez .on{font-weight:bold;color:var(--ink)}
/* Wer am Rechner „Bewegung reduzieren“ eingestellt hat, bekommt den Sprung ohne Gleiten. */
@media (prefers-reduced-motion: reduce){ .umenu .dar-knauf{transition:none} }
/* Nur für die Sprachausgabe – sichtbar ist die Beschriftung unter dem Band. */
.nurvorlesen{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}


/* v2.81.0: Das orange Zeichen im Schriftzug steht auf der dunkelblauen Kopfzeile.
   Dort gilt der umgekehrte Maßstab – es muss hell sein, nicht dunkel. */
:root{--auf-navy-akzent:#E89A3C}

/* ---------------------------------------------------------------- Diagramme (v2.81.0)
   Die Kurven und Balken werden als SVG gezeichnet; ihre Farben standen fest im Code und
   konnten deshalb nicht mitschalten. Jetzt hängen sie an diesen Variablen.                */
:root{--dg-text:#1F3864;--dg-text2:#5A6478;--dg-gitter:#E5E9EF;--dg-achse:#8A96A8;--dg-flaeche:#DDE2EA;--dg-orange:#E89A3C;--dg-orange-text:#8A5E12;--dg-lila:#7A5CC7;--dg-lila-text:#5B3FA0;--dg-rot:#B3261E;--dg-punkt:#FFFFFF;}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--dg-text:#C6D2E6;--dg-text2:#A2ACBE;--dg-gitter:#2E3747;--dg-achse:#5A6880;--dg-flaeche:#2E3747;--dg-orange:#E8A74F;--dg-orange-text:#E0A040;--dg-lila:#9C86D5;--dg-lila-text:#A893E0;--dg-rot:#E07A70;--dg-punkt:#1C2330;}}
:root[data-theme="dark"]{--dg-text:#C6D2E6;--dg-text2:#A2ACBE;--dg-gitter:#2E3747;--dg-achse:#5A6880;--dg-flaeche:#2E3747;--dg-orange:#E8A74F;--dg-orange-text:#E0A040;--dg-lila:#9C86D5;--dg-lila-text:#A893E0;--dg-rot:#E07A70;--dg-punkt:#1C2330;}

/* ---------------------------------------------------------------- v2.86.0: Automatischer Sortierer
   Farben über die Rollen aus :root, damit die dunkle Ansicht ohne eigenen Block mitgeht.
   Die Ampelfarben sind dieselben wie überall: --ok, --warn, --bad. */
.sobar .sopfad{font-size:12.5px;color:var(--ink2);background:var(--paper);border:1px solid var(--line);
  border-radius:6px;padding:6px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}
.sobar select{max-width:200px}
.sostand{background:var(--paper);border:1px solid var(--line);border-radius:10px;
  padding:10px 14px;margin:12px 0;font-size:13.5px}
.soz{display:inline-block;border-radius:20px;padding:1px 10px;font-size:12px;font-weight:700;margin-left:4px}
.soz.g{background:var(--ok-soft);color:var(--ok-ink)}
.soz.y{background:var(--warn-soft);color:var(--warn-ink)}
/* --bad-ink käme auf --bad-soft nur auf 4,48:1 – knapp unter den geforderten 4,5:1 für
   fetten 12-px-Text. Deshalb hier ein eigener, etwas tieferer Ton (5,4:1). */
:root{--soz-rot:#B3261E}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--soz-rot:#E7756F}}
:root[data-theme="dark"]{--soz-rot:#E7756F}
.soz.r{background:var(--bad-soft);color:var(--soz-rot)}
.soz.x{background:var(--mute-row);color:var(--ink2)}

.sokarte{background:var(--paper);border:1px solid var(--line);border-radius:10px;
  margin:10px 0;overflow:hidden}
.sokarte.gruen{border-left:4px solid var(--ok)}
.sokarte.gelb{border-left:4px solid var(--warn)}
.sokarte.rot{border-left:4px solid var(--bad)}
.sokarte.grau{border-left:4px solid var(--line);opacity:.75}
.sokarte.fertig{border-left:4px solid var(--ok);background:var(--ok-soft)}
.sokarte.laeuft{opacity:.55}

.sokopf{display:flex;align-items:center;gap:9px;padding:9px 14px;border-bottom:1px solid var(--line);
  font-size:13.5px;background:var(--mute-row)}
.sokarte.fertig .sokopf{background:transparent;border-bottom:0}
.soampel{width:11px;height:11px;border-radius:50%;flex:0 0 auto}
.soampel.gruen,.soampel.fertig{background:var(--ok)}
.soampel.gelb{background:var(--warn)}
.soampel.rot{background:var(--bad)}
.soampel.grau{background:var(--ink2)}

.sorumpf{display:grid;grid-template-columns:260px 1fr auto;gap:16px;padding:12px 14px;
  align-items:start;font-size:13px}
.solinks{min-width:0;word-break:break-word}
.sorechts{min-width:0}
.sotreffer{font-weight:600;margin-bottom:5px}
.sowarum{margin:0;padding-left:17px;color:var(--ink2);font-size:12.5px;line-height:1.55}
/* --bad ist die FLÄCHEN-Farbe; als Schrift gilt --bad-ink, das in der dunklen
   Ansicht aufgehellt ist (sonst 2,7:1 statt der nötigen 4,5:1). */
.sowarum li.aber{color:var(--bad-ink);font-weight:600;list-style:none;margin-left:-17px}
.soandere{margin-top:8px;font-size:12.5px;color:var(--ink2)}
.soandere .btn{margin-left:4px}
.sotun{white-space:nowrap}
.sofertig{grid-column:1 / -1;font-size:13px}
.somarken{margin-top:5px}
.somarke{display:inline-block;border-radius:5px;padding:1px 7px;font-size:11px;font-weight:700;
  letter-spacing:.3px;margin-right:4px}
.somarke.rc{background:var(--kapi-chip);color:#fff}
.somarke.ige{background:var(--it);color:#fff}
.somarke.satz{background:var(--mute-row);color:var(--ink);border:1px solid var(--line)}
.somerkmal{margin-top:4px;font-size:12px;color:var(--ink2);font-style:italic}

/* Am schmalen Bildschirm untereinander statt dreispaltig – Querscrollen gibt es hier nicht. */
@media (max-width:900px){
  .sorumpf{grid-template-columns:1fr;gap:10px}
  .sotun{white-space:normal}
  .sobar .sopfad{max-width:100%}
}

/* ---------------------------------------------------------------- Beleg stempeln (v2.88.0)
   Drei Spalten: links die fertigen Stempel, in der Mitte der Beleg, rechts die Eigenschaften
   des gewählten Stempels. Der Designer liegt in einem Fenster darüber.
   Gezeichnet wird überall dasselbe SVG – die Grundformen kommen fertig vom Server
   (stempel.layout), damit Bildschirm und PDF nicht auseinanderlaufen. */
.stmz{display:grid;grid-template-columns:232px minmax(0,1fr) 268px;gap:12px;align-items:start}
.stsp{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px}
.stsp h3{margin:0 0 7px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink2)}
.stsp h3:not(:first-child){margin-top:15px}
.stvor{display:flex;flex-direction:column;gap:7px}
.stkarte{border:1px solid var(--line);border-radius:8px;padding:7px 8px;background:var(--bg)}
.stkarte.drauf{border-color:var(--orange);background:var(--orange-soft)}
.stkarte b{display:block;font-size:12.5px;margin-bottom:3px}
.stkarte .stmini{background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:3px;
  overflow:hidden;display:flex;justify-content:center}
.stkarte .stknr{display:flex;gap:5px;margin-top:5px;flex-wrap:wrap}
.stkarte .btn{padding:3px 7px;font-size:11.5px}
.stauto{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.3px;border-radius:4px;
  padding:1px 5px;background:var(--sek);color:var(--ink);margin-left:4px}

/* Bühne mit dem Beleg */
.stbuehne{background:var(--mute-row);border:1px solid var(--line);border-radius:10px;padding:14px;
  display:flex;flex-direction:column;align-items:center;gap:10px;overflow:auto}
.stleiste{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center;
  font-size:12px;color:var(--ink2)}
.stleiste label{display:flex;align-items:center;gap:4px}
.stleiste input[type=number],.stleiste select{border:1px solid var(--line);border-radius:6px;
  padding:3px 6px;background:var(--paper);color:var(--ink);font:inherit;font-size:12px}
.stblatt{position:relative;background:#fff;box-shadow:0 3px 16px rgba(0,0,0,.22);touch-action:none}
.stblatt > img{display:block;width:100%;height:100%;border-radius:2px}
.stblatt .straster{position:absolute;inset:0;pointer-events:none}
.stdrauf{position:absolute;cursor:move;user-select:none;touch-action:none}
.stdrauf.sel{outline:1.4px solid var(--orange);outline-offset:2px}
.stdrauf .zg{position:absolute;right:-7px;bottom:-7px;width:12px;height:12px;border-radius:2px;
  background:var(--orange);border:1.5px solid #fff;cursor:nwse-resize;display:none}
.stdrauf.sel .zg{display:block}
.stdrauf .dh{position:absolute;left:50%;top:-20px;margin-left:-6px;width:12px;height:12px;
  border-radius:50%;background:var(--navy);border:1.5px solid #fff;cursor:grab;display:none}
.stdrauf.sel .dh{display:block}

/* Eigenschaften rechts */
.stf{margin-bottom:8px}
.stf > label{display:block;font-size:11px;color:var(--ink2);margin-bottom:3px}
.stf input[type=text],.stf input[type=number],.stf select{width:100%;border:1px solid var(--line);
  border-radius:7px;padding:5px 8px;font:inherit;font-size:12.5px;background:var(--bg);color:var(--ink)}
.stf.zwei{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.stf.zwei > div{min-width:0}
.stecken{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.stecken button{border:1px solid var(--line);background:var(--paper);color:var(--ink);
  border-radius:7px;padding:5px;font:inherit;font-size:11.5px;cursor:pointer}
.stecken button:hover{border-color:var(--orange)}
.stleer{color:var(--ink2);font-size:12px;padding:16px 4px;text-align:center;line-height:1.6}
.stfarben{display:flex;gap:6px;flex-wrap:wrap}
.stfb{width:25px;height:25px;border-radius:50%;border:2px solid transparent;cursor:pointer}
.stfb.on{border-color:var(--ink)}
.sttipp{font-size:11px;color:var(--ink2);margin-top:9px;line-height:1.5}

/* Designer im Fenster */
.dsg{display:grid;grid-template-columns:170px minmax(0,1fr) 262px;min-height:520px}
.dsg > div{padding:11px;overflow:auto}
.dsg .dmitte{background:var(--mute-row);display:flex;flex-direction:column;align-items:center;gap:11px}
.dsg .dlinks{border-right:1px solid var(--line)}
.dsg .drechts{border-left:1px solid var(--line)}
.dwz{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.dwz button{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;
  padding:9px 4px;font:inherit;font-size:11px;cursor:pointer;display:flex;flex-direction:column;
  align-items:center;gap:3px}
.dwz button:hover{border-color:var(--orange)}
.dwz button .i{font-size:17px;line-height:1}
.dlein{position:relative;background:#fff;box-shadow:0 3px 16px rgba(0,0,0,.18);border-radius:3px;
  touch-action:none}
.dlein .straster{position:absolute;inset:0;pointer-events:none}
.dliste{max-height:170px;overflow:auto;border:1px solid var(--line);border-radius:8px}
.dliste button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);
  background:transparent;color:inherit;font:inherit;font-size:11.5px;padding:5px 8px;cursor:pointer}
.dliste button:last-child{border-bottom:0}
.dliste button.on{background:var(--orange-soft);font-weight:700}
.dvorl{display:flex;flex-direction:column;gap:6px}
.dvorl button{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;
  padding:7px 9px;font:inherit;font-size:12px;cursor:pointer;text-align:left}
.dvorl button small{display:block;color:var(--ink2);font-size:11px}

/* Am schmalen Bildschirm untereinander – der Beleg zuerst. */
@media (max-width:1100px){
  .stmz{grid-template-columns:1fr}
  .stmz .stbuehne{order:-1}
  .dsg{grid-template-columns:1fr}
  .dsg .dlinks{border-right:0;border-bottom:1px solid var(--line)}
  .dsg .drechts{border-left:0;border-top:1px solid var(--line)}
}
.dlg.stdlg{width:min(1180px,96vw);max-width:none;padding:0}
.dlg.stfdlg{width:min(420px,94vw)}
/* v2.88.0: Original oder gestempelte Kopie – die Wahl steht direkt in der Belegzeile. */
.fasswahl{border:1px solid var(--line);border-radius:6px;padding:3px 5px;font:inherit;font-size:11.5px;
  background:var(--paper);color:var(--ink);max-width:120px}

/* ---------------------------------------------------------------- Rechnungen aus Mail (v2.89.0)
   Die Herkunftszeile steht über den gelesenen Feldern. Blau (--sek) statt orange: Orange ist in
   dieser App die Farbe für „du musst etwas tun"; die Herkunft ist nur eine Auskunft. */
.soz.post{background:var(--sek);color:var(--navy-ink)}
.soher{display:flex;align-items:center;gap:4px 9px;flex-wrap:wrap;margin:9px 12px 0;
  background:var(--sek);border-radius:7px;padding:4px 10px;font-size:12px;color:var(--ink)}
.soher .pf{font-weight:700;white-space:nowrap}
.soher .tr{white-space:nowrap}
.soher a{color:var(--navy-ink);white-space:nowrap}
.sohernix{background:var(--warn-soft);border:1px solid var(--line);border-left:3px solid var(--orange);
  border-radius:0 7px 7px 0;padding:5px 10px;font-size:12px;margin:7px 12px 0;line-height:1.5}
.solinks i{font-style:italic;opacity:.92}

/* Die Kachel auf der Startseite – sie steht nur da, wenn wirklich etwas aus Mail im Eingang liegt. */
.kpi.post{border-color:var(--orange);background:var(--orange-soft)}
.kpi.post b{color:var(--orange-tief)}
.kpi.post{border-left-color:var(--orange);cursor:pointer}
.kpi.post:hover{border-color:var(--orange-tief)}

/* ---------------------------------------------------------------- Fortschrittsleiste (v2.91.0)
   Aus fünf Zählkacheln wurde eine Leiste: ein Balken für den Fortschritt und daneben Knöpfe,
   die die Aufstellung filtern. Der Unterschied zu vorher ist nicht die Fläche, sondern dass
   man von der Zahl aus WEITERKOMMT. */
.fortschritt{display:flex;align-items:center;gap:11px;flex:1 1 100%;min-width:0}
/* Die Leiste bekommt eine eigene Zeile – sonst quetscht sie sich neben die Geldkacheln
   und bricht dabei in vier Stücke. Oben der Fortschritt mit seinen Wegen, darunter das Geld. */
.fs-titel{font-size:13px;color:var(--navy-ink);white-space:nowrap}
.fs-balken{flex:1 1 auto;min-width:80px;max-width:420px;height:11px;border-radius:6px;background:var(--mute-row);
  overflow:hidden;display:flex;border:1px solid var(--line)}
.fs-balken i{display:block;height:100%}
.fs-balken i.ok{background:var(--ok)}
.fs-balken i.offen{background:var(--warn)}
.fs-balken i.fehlt{background:var(--bad)}
.fs-balken.leer{background:repeating-linear-gradient(135deg,var(--mute-row),var(--mute-row) 5px,var(--paper) 5px,var(--paper) 10px)}
.fs-text{font-size:13px;white-space:nowrap}
.fs-k{padding:4px 10px;font-size:12.5px;white-space:nowrap;border-color:var(--warn);color:var(--warn-ink);
  background:var(--warn-soft)}
.fs-k.on{background:var(--orange-tief);border-color:var(--orange-tief);color:#fff;font-weight:700}
.fs-k.nw{border-color:var(--bad);color:var(--bad-ink);background:var(--bad-soft)}
.fs-k.rf{border-color:var(--sek-linie);color:var(--navy-ink);background:var(--sek)}
/* Ein Reiter ohne Zeilen ist nicht „fertig“, sondern leer – blass statt mit Haken. */
.tab.leer{border-color:var(--line);color:var(--ink2);font-weight:normal}
.cnt.leer{background:var(--mute-row);color:var(--ink2)}
@media (max-width:900px){
  .fortschritt{gap:8px;flex-wrap:wrap}
  .fs-balken{min-width:90px}
  .fs-titel{display:none}
}
/* v2.91.0: Offene Monate außerhalb des laufenden Quartals – sonst sieht man sie gar nicht. */
.mlandere{background:var(--warn-soft);border:1px solid var(--line);border-left:4px solid var(--warn);
  border-radius:0 8px 8px 0;padding:8px 12px;margin-top:8px;font-size:12.5px}
.mlandere a{color:var(--navy-ink);font-weight:700;text-decoration:none;white-space:nowrap}
.mlandere a:hover{text-decoration:underline}
.mlandere a span{font-weight:400;color:var(--warn-ink)}

/* ===== v2.92.0 · Sichtwahl „Gewinn“ / „Firmenkonto“ ==========================
   Zwei Knöpfe statt zweier Häkchen. Der gewählte Knopf ist gefüllt, damit auf
   einen Blick klar ist, welche Zahl gerade auf dem Schirm steht. */
.sichtwahl{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;
  background:var(--paper);vertical-align:middle}
.sichtwahl button{border:0;background:transparent;color:var(--ink);font:inherit;font-size:12.5px;
  padding:6px 12px;cursor:pointer;white-space:nowrap;line-height:1.3}
.sichtwahl button + button{border-left:1px solid var(--line)}
.sichtwahl button:hover{background:var(--orange-soft)}
.sichtwahl button.on{background:var(--navy);color:#fff;font-weight:700}
.sichtwahl button.on:hover{background:var(--navy)}
.sichtwahl button:focus-visible{outline:2px solid var(--orange);outline-offset:-2px}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .sichtwahl button.on{background:#3B6BBF} }
:root[data-theme="dark"] .sichtwahl button.on{background:#3B6BBF}
/* der erklärende Halbsatz unter der Tabelle – nie eine Zahl ohne ihre Lesart */
.sichtnote{font-size:11.5px;color:var(--ink2);margin-top:8px}
/* gesperrte SVS-Linie in der Kontosicht (v2.92.0) – sichtbar, aber ausgegraut */
.jlinien label.aus{opacity:.45;cursor:not-allowed}

/* ===== v2.93.0 · Warteliste „Wartet auf Zuordnung" =========================
   Eine Liste über drei Körbe. Die Quelle steht links als Symbol, weil beim
   Zuordnen zwei verschiedene Dinge passieren: eine Datei aus dem Eingang wird
   verschoben, ein DMS-Dokument bleibt liegen. Das muss man vorher sehen. */
.wtkopf{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:9px}
.wtkopf .chip{border:1px solid var(--line);border-radius:14px;padding:3px 11px;font-size:12px;
  background:var(--paper);white-space:nowrap;cursor:pointer;color:var(--ink)}
.wtkopf .chip i{font-style:normal;font-weight:800;opacity:.65;margin-left:3px}
.wtkopf .chip:hover{background:var(--orange-soft)}
.wtkopf .chip.on{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:700}
.wtkopf .chip.on i{opacity:.85}
.wtkopf .chip.on:hover{background:var(--navy)}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .wtkopf .chip.on{background:#3B6BBF;border-color:#3B6BBF} }
:root[data-theme="dark"] .wtkopf .chip.on{background:#3B6BBF;border-color:#3B6BBF}
.wtkopf input[type=search]{border:1px solid var(--line);border-radius:7px;padding:5px 9px;
  font:inherit;font-size:12.5px;background:var(--paper);color:var(--ink);min-width:200px}
.wtliste{max-height:52vh;overflow:auto;border:1px solid var(--line);border-radius:9px;
  background:var(--paper)}
.wtz{display:grid;grid-template-columns:34px 1fr 96px 118px 112px;gap:9px;align-items:center;
  padding:8px 11px;border-bottom:1px solid var(--line)}
.wtz:last-child{border-bottom:0}
.wtz.gruen{background:var(--ok-soft)}
.wtz .q{font-size:18px;text-align:center}
.wtz .t b{display:block;font-size:12.5px;word-break:break-all}
.wtz .t small{display:block;color:var(--ink2);font-size:11px}
.wtz .t small.wtw{color:var(--ok-ink);font-weight:700}
.wtz .vb{font-size:12px;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink2)}
.wtz .tr{text-align:right}
.wtz .kn{text-align:right;white-space:nowrap}
.wtz .kn .auge{text-decoration:none;font-size:15px;margin-right:5px}
.wtm{display:inline-block;font-size:11px;font-weight:800;border-radius:11px;padding:1px 8px;
  white-space:nowrap}
.wtm.gruen{background:var(--ok);color:#fff}
.wtm.gelb{background:var(--warn-soft);color:var(--warn-ink);border:1px solid var(--warn)}
.wtm.grau{color:var(--ink2)}
@media(max-width:700px){
  .wtz{grid-template-columns:28px 1fr 92px}
  .wtz .vb,.wtz .tr{display:none}
}
/* Zähler auf den Kacheln im Beleg-Wähler (v2.93.0) */
.weg b .wzahl{display:inline-block;background:var(--navy);color:#fff;border-radius:11px;
  font-size:11px;font-weight:800;padding:1px 8px;margin-left:5px;vertical-align:1px}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .weg b .wzahl{background:#3B6BBF} }
:root[data-theme="dark"] .weg b .wzahl{background:#3B6BBF}
.weg.leer{opacity:.55}
.weg.neu{border-color:var(--ok)}

/* ===== v2.94.0 · Komplettansicht: sieben Spalten statt zehn ==================
   Die Spalte „Ordner" ist weg (sie wiederholte die Gruppenzeile), Gewerbe,
   Kategorie und Steuermerkmale stehen zusammen als „Zuordnung". Der gewonnene
   Platz geht an Partner und Belegnummer – die beiden, in denen abgeschnitten wurde. */
.k-nr{width:16%} .k-dat{width:7%} .k-amt{width:11%}
.k-zu{width:19%} .k-bel{width:13%} .k-st{width:9%}
td.zuord{font-size:12px;white-space:normal}
td.zuord .zpunkt{color:var(--ink2);opacity:.6;margin:0 1px}
td.zuord .ztag{font-size:11px;border:1px solid var(--line);border-radius:4px;padding:0 5px;
  color:var(--ink2);white-space:nowrap}
td.zuord .bad{font-weight:700}
@media(max-width:1100px){ .k-nr{width:18%} .k-zu{width:17%} }

/* Zeilenfarben im Benutzermenü (v2.94.0) – sie standen bis v2.93.0 fünfmal in der
   Monatsansicht, einmal je Reiter. .zebraBtn oben bleibt für ältere Ansichten stehen. */
.umenu .zebwahl{display:flex;gap:9px;align-items:center;padding:7px 14px;font-size:13px;
  cursor:pointer;color:var(--ink)}
.umenu .zebwahl:hover{background:var(--orange-soft)}
.umenu .zebwahl input{margin:0;width:15px;height:15px;accent-color:var(--navy)}
/* Link im Erzeugen-Menü (v2.94.0) – sieht aus wie die Labels darüber, ist aber ein Link */
.expmenue .emlink{display:block;padding:6px 12px;text-decoration:none;color:var(--ink)}
.expmenue .emlink:hover{background:var(--orange-soft)}
.expmenue .emlink b{display:block;font-size:12.5px}
.expmenue .emlink small{display:block;color:var(--ink2);font-size:11.5px}

/* ===== v2.94.0 · Ordner-Baum: Werkzeuge beruhigen ==========================
   WARUM: Jede Zeile trägt vier Werkzeuge (＋ ▲ ▼ 🗑). Bei elf Ordnern sind das 44
   Knöpfe, die gleich laut sind wie die Ordnerpfade – und die Pfade sind das,
   worum es hier geht.

   WARUM blass statt weg: Werkzeuge, die erst beim Darüberfahren erscheinen,
   lassen die Zeile springen und sind mit der Tastatur schwer zu finden. Blass
   heißt: sichtbar genug, dass man weiß, dass es sie gibt – leise genug, dass die
   Pfade die Seite beherrschen. Sie behalten ihren Platz, nichts verschiebt sich.
   :focus-within deckt die Tastatur ab: wer mit Tab hineingeht, sieht sie voll. */
.ed-row .ed-akt{opacity:.3; transition:opacity .12s ease-out}
.ed-row:hover .ed-akt,
.ed-row:focus-within .ed-akt{opacity:1}
/* Wer „weniger Bewegung" eingestellt hat, bekommt sie durchgehend sichtbar –
   ein Aufblenden beim Überfahren ist für manche Menschen anstrengend. */
@media (prefers-reduced-motion: reduce){
  .ed-row .ed-akt{opacity:1; transition:none}
}

/* v2.94.0 – befunden beim Vermessen für das Aufräumen: Am Handy in der Rechner-Ansicht
   scrollte die GANZE Seite quer statt nur die Tabelle. Ursache: `.mmain` ist ein Gitterfeld
   und hat voreingestellt `min-width:auto`, dehnt sich also auf die Breite seines breitesten
   Kindes – der Belegtabelle. Das `min-width:0` dafür stand nur in der Regel ab 1001 px.
   Unterhalb bekommt es die Tabelle jetzt ebenso, damit sie in ihrem eigenen Rahmen rollt
   und Kopfzeile, Reiter und Leisten an ihrem Platz bleiben. */
.msplit > .mmain{min-width:0}
.mmain .wrap{max-width:100%}

/* v2.96.0 – Pfadprüfung direkt unter dem Eingangsordner-Feld */
.pfadpruef{margin-top:6px;font-size:12px;border-radius:7px;padding:6px 10px;
  border:1px solid var(--line)}
.pfadpruef.ok{background:var(--ok-soft);color:var(--ok-ink)}
.pfadpruef.weg{background:var(--bad-soft);color:var(--bad-ink)}
.pfadpruef b{display:inline-block;margin-right:5px}

/* ===== v2.96.0 · Stand der Vorarbeit unter der Warte-Kachel ================
   Die Zahl oben bleibt, was sie war. Der Balken sagt nur, ob der Wächter mit
   dem Eingang schon durch ist – damit man weiß, ob sich das Hineinschauen
   jetzt schon lohnt. */
.wbalken{display:flex;height:7px;border-radius:4px;overflow:hidden;margin-top:7px;
  background:var(--mute)}
.wbalken i{display:block;min-width:2px}
.wbalken i.f{background:var(--ok)}
.wbalken i.l{background:var(--orange)}
.wbalken i.u{background:var(--warn)}
.wbalken i.d{background:var(--einlage)}
.wbalken i.n{background:var(--ink2);opacity:.45}
.wlegende{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--ink2);margin-top:5px}
.wlegende span{display:flex;gap:4px;align-items:center;white-space:nowrap}
.wlegende i{width:8px;height:8px;border-radius:2px;display:inline-block;flex:none}
.wlegende i.f{background:var(--ok)} .wlegende i.l{background:var(--orange)}
.wlegende i.u{background:var(--warn)} .wlegende i.d{background:var(--einlage)}
.wlegende i.n{background:var(--ink2);opacity:.45}

/* v2.96.0 – Statuszeile des Wächters im Sortierer */
.wzeile{display:flex;gap:9px;align-items:center;flex-wrap:wrap;font-size:12.5px;
  border:1px solid var(--line);border-radius:9px;padding:8px 12px;margin:0 0 12px;
  background:var(--ok-soft)}
.wzeile.arbeitet{background:var(--orange-soft)}
.wzeile .puls{width:9px;height:9px;border-radius:50%;background:var(--ok);flex:none}
.wzeile.arbeitet .puls{background:var(--orange);animation:wpuls 1.4s ease-in-out infinite}
@keyframes wpuls{0%,100%{opacity:1}50%{opacity:.25}}
/* Die beiden Knöpfe in dieser Zeile werden am Handy mit dem Daumen getroffen – die allgemeine
   Höhe für „klein“ (26 px) ist dafür zu knapp. */
.wzeile .btn{min-height:32px;display:inline-flex;align-items:center}
@media (prefers-reduced-motion: reduce){ .wzeile.arbeitet .puls{animation:none} }

/* v2.96.0 – der Wächter in der Statusleiste unten. Dezent und nur, wenn er etwas zu sagen hat. */
.wpunkt{display:inline-flex;gap:6px;align-items:center;background:var(--orange-soft);
  border:1px solid var(--orange);border-radius:12px;padding:1px 9px;font-size:11px;
  color:var(--orange-tief);text-decoration:none;white-space:nowrap;margin-left:8px}
.wpunkt:hover{background:var(--orange);color:#fff}

/* v2.97.0: Untergrenze für Schrift – ein <small> in einem schon kleinen Text fiel auf 9,6 px. */
small{font-size:max(11px,.85em)}

/* ===== v2.98.0 · Sprungleiste der Auswertung – bleibt unter dem Kopf stehen ===== */
.jspring{position:sticky;top:var(--kopfh,80px);z-index:30;display:flex;gap:4px;align-items:center;flex-wrap:wrap;
  background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:4px 8px;margin:0 0 12px}
.jspring a{color:var(--ink2);text-decoration:none;font-size:12.5px;font-weight:600;padding:5px 10px;border-radius:6px;border-bottom:2px solid transparent}
.jspring a:hover{background:var(--mute-row);color:var(--ink)}
.jspring a.on{color:var(--navy-ink);border-bottom-color:var(--orange)}
.jspring a.hoch{margin-left:auto;font-weight:400}
@media (max-width:760px){.jspring{top:0;gap:0}.jspring a{padding:7px 8px;font-size:12px}.jspring a.hoch{display:none}}

/* ===== v2.98.0 · Nachweise als fünfte Zählerkachel ===== */
.nwbtn.stat{margin-left:0;flex-direction:column;align-items:flex-start;gap:0;padding:8px 14px;min-width:130px;border-width:1px;border-left:4px solid var(--line)}
.nwbtn.stat #nwN{font-size:20px;font-variant-numeric:tabular-nums;color:var(--navy-ink)}
.nwbtn.stat #nwN.ok{color:var(--ok-ink)}.nwbtn.stat #nwN.fehlt{color:var(--warn-ink)}
.nwbtn.stat.nwfehlt{border-color:var(--line);border-left-color:var(--warn)}
.nwbtn.stat .lab{font-weight:normal;font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.06em;display:flex;gap:6px;align-items:center}
.nwbtn.stat .dots i{width:7px;height:7px}
.nwbtn.stat .sub{display:none}
.nwbtn.stat .pop{left:0;right:auto;top:calc(100% + 8px)}.nwbtn.stat .pop::before{left:28px;right:auto}
.nwbtn:not(.stat) #nwN{display:none}

/* ===== v2.98.0 · Kopfzeile: Mehr-Menü und „zuletzt“ ===== */
.umenu.mehr{min-width:300px}
.umenu.mehr .mt{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink2);padding:8px 14px 2px}
.umenu.mehr .mt:first-child{padding-top:4px}
.zuletzt{display:inline-flex;align-items:center;gap:4px;margin-left:6px;font-size:12px;white-space:nowrap}
.zuletzt i{font-style:normal;color:rgba(255,255,255,.6);margin-right:2px}
.zuletzt a{color:#fff;text-decoration:none;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:2px 9px}
.zuletzt a:hover{background:var(--orange);border-color:var(--orange)}
@media (max-width:1500px){.zuletzt{display:none}}
/* v2.98.0: unter 1400 px weichen Name im Benutzerknopf und der Schriftzug „UVA-Ablage“ im Pfad – so bleibt
   auch die Monatsseite mit Jahr-Wahl und zwei Handlungsknöpfen einzeilig. */
@media (max-width:1560px){header .user .uname{display:none}header .crumb .crumb-app{display:none}header .btn.ghost .pfeil{margin-left:0}}

/* v2.98.1: drei Variablen wurden benutzt, aber nie definiert – der Browser ließ die Eigenschaft dann
   einfach weg (--karte: kein Kartenhintergrund, --mute: kein Balkenhintergrund, --ink3: Textfarbe geerbt). */
:root{--ink3:var(--ink2);--karte:var(--paper);--mute:var(--mute-row)}

/* v2.98.2: Zusatz (IGE/RC/AFA) in der Komplettansicht – vorher .ztag = Tageskachel der Arbeitszeit */
.zusatztag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;padding:1px 7px;border-radius:999px;border:1px solid var(--line);color:var(--ink2);background:var(--paper);vertical-align:middle}

/* ===== v2.99.0 · Abgleich mit den Vormonaten ===== */
.abglz{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:4px 0;background:var(--paper)}
.abglz.fix{border-left:3px solid var(--ok)}
.abglk{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:4px;font-size:13.5px}
.abglv{display:grid;grid-template-columns:20px 120px minmax(60px,auto) 18px minmax(60px,auto) 1fr;gap:8px;align-items:center;padding:4px 0;font-size:13px;cursor:pointer}
.abglv .f{color:var(--ink2);font-size:11.5px;text-transform:uppercase;letter-spacing:.05em}
.abglv .ist{color:var(--bad-ink);text-decoration:line-through}
.abglv .soll{font-weight:700;color:var(--ok-ink)}
.abglv .pf{color:var(--ink2)}
.abglv small{color:var(--ink2);font-size:11.5px}
.abglv input{width:16px;height:16px;accent-color:var(--navy)}
#abglBtn .rfcnt{margin-left:4px}
@media (max-width:760px){.abglv{grid-template-columns:20px 1fr;gap:4px 8px}.abglv .pf,.abglv .f{display:none}}

/* ===== v2.100.0 · Info aus den Vormonaten ===== */
.zuord .infogrp{flex:1;min-width:170px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.zuord .infogrp .info{flex:1 1 140px;min-width:120px}
.zuord .infogrp .wchip{flex:0 1 auto;min-width:0}
.wchip{font:inherit;font-size:11.5px;border:1px dashed var(--orange);background:var(--orange-soft);color:var(--orange-ink);border-radius:999px;padding:2px 9px;cursor:pointer;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}
.wchip:hover{background:var(--orange);color:#fff;border-style:solid}
.wchip.nurfirma{border-color:var(--line);background:var(--paper);color:var(--ink2)}
.btn.klein.jinfo{padding:2px 7px;font-size:12px}

/* ===== v2.102.0 · Private Ablage (MODUS=privat) =====================================
   Eine eigene Farbwelt, damit man immer weiß, wo man ist: Lila statt Navy. Gesetzt wird das über
   die Variablen auf body.privat – die ESISO-Instanz hat diese Klasse nie. */
/* v2.109.0: Farben „G · Himmelblau hell“ statt Lila – Karl, 31.10.2026: „denke dir eine andere farbschema aus
   das gefällt mir nicht“, 01.11.2026: „mache es im blauton“ → „g“ (Mockup_Privat_Blau.html). Heller,
   himmelblauer Kopf, kräftiges Blau nur als Akzent (Knöpfe, Zahlen, Auswahl); Orange bleibt für den Eingang.
   Bewusst kein Navy: die Firmen-Ablage ist navy, Privat muss sich auf einen Blick unterscheiden. */
/* v2.111.0: helle Ansicht eine Stufe dunkler – Karl, 01.11.2026: „das blau bei heller ansicht bisschen dunkler“ */
body.privat{--navy:#1F5AB0;--navy-ink:#1F5AB0;--plum:#1F5AB0;--plum-soft:#DDEAFA;
  --pv-kopf:#CFE0F6;--pv-kopf-ink:#174580;--pv-kopf-linie:#A9C4EA;--pv-th:#DCE8F8;--pv-th-ink:#1F5AB0;--pv-knopf:#1F5AB0}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) body.privat{--navy:#2F5FA8;--navy-ink:#9CC3F5;--plum:#9CC3F5;--plum-soft:#1E2A3D;
  --pv-kopf:#1E2A3D;--pv-kopf-ink:#CFE0F8;--pv-kopf-linie:#33435E;--pv-th:#202C40;--pv-th-ink:#9CC3F5;--pv-knopf:#2F6FCF}}
:root[data-theme="dark"] body.privat{--navy:#2F5FA8;--navy-ink:#9CC3F5;--plum:#9CC3F5;--plum-soft:#1E2A3D;
  --pv-kopf:#1E2A3D;--pv-kopf-ink:#CFE0F8;--pv-kopf-linie:#33435E;--pv-th:#202C40;--pv-th-ink:#9CC3F5;--pv-knopf:#2F6FCF}
body.privat header{background:var(--pv-kopf);color:var(--pv-kopf-ink);box-shadow:0 1px 0 var(--pv-kopf-linie),0 2px 8px rgba(29,78,143,.08)}
body.privat header a.logo,body.privat header .btn.ghost,body.privat header .imp{color:var(--pv-kopf-ink)}
body.privat header .btn.ghost,body.privat header .imp,body.privat header .btn.ghost .kuerzel{border-color:var(--pv-kopf-linie)}
body.privat header .btn.ghost:hover,body.privat header .imp:hover{background:var(--pv-knopf);border-color:var(--pv-knopf);color:#fff}
body.privat th{background:var(--pv-th);color:var(--pv-th-ink)}
body.privat .btn.primary{background:var(--pv-knopf);border-color:var(--pv-knopf);color:#fff}
.login-body.privat{background:var(--pv-kopf)}
.pv{max-width:1100px;margin:0 auto}
.pv-kpi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:stretch;margin-bottom:14px}
.pv-kpi>div{background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:10px;padding:10px 14px}
.pv-kpi>div b{display:block;font-size:24px;color:var(--navy-ink);font-variant-numeric:tabular-nums}
.pv-kpi>div span{font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.06em}
.pv-kpi>div.o{border-left-color:var(--orange);background:var(--orange-soft)} .pv-kpi>div.o b{color:var(--orange-ink)}
.pv-hoch{display:flex;align-items:center;justify-content:center;padding:0 18px;border-radius:10px;cursor:pointer;font-weight:700;white-space:nowrap}
.pv-eingang,.pv-belege{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:14px}
.pv-eingang{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}
.pv-kopf{display:flex;gap:8px 10px;align-items:center;margin-bottom:6px;flex-wrap:wrap}.pv-kopf h3{margin:0;font-size:15px}
.pv-ez{display:flex;gap:10px;align-items:center;padding:8px 2px;border-top:1px solid var(--line)}
.pv-ez:first-child{border-top:0}
.pv-ei{flex:none;width:44px;height:44px;border-radius:8px;background:var(--plum-soft);color:var(--navy-ink);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}
.pv-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:left}
.pv-t b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-z1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-filter{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.pv-filter>input[type=search]{flex:1 1 260px;min-width:0;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--ink);font:inherit}
.pv-chips{display:flex;gap:6px;flex-wrap:wrap}
.pv-chips button{font:inherit;font-size:13px;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:999px;padding:4px 12px;cursor:pointer;display:inline-flex;gap:6px;align-items:center;min-height:30px}
.pv-chips button i{width:9px;height:9px;border-radius:50%;display:inline-block}
.pv-chips button small{color:var(--ink2);font-size:11px}
.pv-chips button.on{background:var(--navy);border-color:var(--navy);color:#fff}.pv-chips button.on small{color:#fff;opacity:.8}
.pv-kats{margin-bottom:10px}.pv-katbear{border-style:dashed!important}
.pv-gruppe{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink2);padding:12px 4px 4px;font-weight:700}
.pv-z{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto 22px;gap:12px;align-items:center;width:100%;font:inherit;color:inherit;text-align:left;
  background:transparent;border:0;border-top:1px solid var(--line);padding:10px 6px;cursor:pointer;border-radius:8px}
.pv-z:hover{background:var(--plum-soft)}
.pv-dot{width:12px;height:12px;border-radius:50%}
.pv-pills{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}
.pv-pill{font-size:11px;padding:1px 8px;border-radius:999px;background:var(--mute-row);color:var(--ink2)}
.pv-pill.ich{background:var(--plum-soft);color:var(--navy-ink);font-weight:700}
.pv-pill.tag{border:1px solid var(--line);background:transparent}
.pv-d{color:var(--ink2);font-size:13px;font-variant-numeric:tabular-nums}
.pv-b{font-weight:700;font-variant-numeric:tabular-nums;text-align:right;min-width:84px}
.pv-leer{padding:18px;color:var(--ink2);text-align:center}
.pv-mark{font-size:11px;font-weight:700;letter-spacing:.08em;padding:2px 8px;border-radius:999px;background:var(--plum-soft);color:var(--navy-ink);margin-right:8px}
.pv-dlg{width:min(1000px,96vw)}
.pv-eo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;padding:14px 18px}
.pv-prev{background:var(--bg);border:1px solid var(--line);border-radius:8px;min-height:420px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.pv-prev a{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.pv-prev img{max-width:100%;max-height:560px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.15)}
.pv-form{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px 12px;align-items:center;align-content:start}
.pv-form>label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2)}
.pv-form input[type=text],.pv-form input[type=date]{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font:inherit}
.pv-form label.pv-nurich{text-transform:none;letter-spacing:0;font-size:14px;color:var(--ink);display:flex;gap:8px;align-items:center;min-height:36px}
.pv-form label.pv-nurich input{width:20px;height:20px;accent-color:var(--navy)}
#kgText{width:100%;font:inherit;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink)}
/* v2.103.0: Private Ablage – Ansicht umschaltbar, Gruppen, Kacheln, Kategorien als Liste */
.pv-ansicht{display:flex;gap:10px;align-items:center;margin-left:auto;flex-wrap:wrap}
.pv-grp{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink2)}
.pv-grp select{font:inherit;font-size:13px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}
.pv-reg{display:flex;align-items:center;gap:4px;color:var(--ink2);font-size:12px}.pv-reg input{width:90px;accent-color:var(--navy)}
.pv-reg[hidden]{display:none}
.pv .seg{margin-left:0}
.pv-gruppe{display:flex;align-items:center;gap:8px}
.pv-gruppe:not(.pv-ak)>span{margin-left:auto;font-weight:400;text-transform:none;letter-spacing:0}
.pv-gruppe .pv-dot{width:9px;height:9px}
.pv-kacheln{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--pv-kb,180px),1fr));gap:14px;padding:6px 0 10px}
.pv-k{display:flex;flex-direction:column;padding:0;font:inherit;color:inherit;text-align:left;background:var(--bg);border:1px solid var(--line);
  border-radius:10px;overflow:hidden;cursor:pointer;transition:border-color .15s,transform .15s}
.pv-k:hover,.pv-k:focus-visible{border-color:var(--navy-ink);transform:translateY(-1px)}
.pv-kth{position:relative;aspect-ratio:3/4;background:#fff;border-bottom:1px solid var(--line);overflow:hidden;display:block}
.pv-kth img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.pv-kkat{position:absolute;left:8px;top:8px;color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;max-width:70%;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.pv-klock{position:absolute;right:8px;top:8px;background:rgba(0,0,0,.65);color:#fff;font-size:10px;padding:2px 7px;border-radius:999px}
.pv-kb{display:flex;flex-direction:column;gap:1px;padding:8px 10px 9px;min-width:0}
.pv-kb>b,.pv-kb>.grau{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv-kb>.grau{font-size:12px}
.pv-kf{display:flex;justify-content:space-between;gap:6px;font-size:12px;color:var(--ink2);margin-top:3px}.pv-kf b{color:var(--ink)}
.pv-tab{width:100%;min-width:0;border-collapse:collapse;font-size:13px;margin-top:6px;table-layout:fixed}
.pv-tab th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);font-weight:700;padding:6px 8px;border-bottom:2px solid var(--line)}
.pv-tab td{padding:5px 8px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle;overflow:hidden;text-overflow:ellipsis}
.pv-tab tbody tr:not(.pv-tgr){cursor:pointer}
.pv-tab tbody tr:not(.pv-tgr):nth-child(even){background:var(--mute-row)}
.pv-tab tbody tr:not(.pv-tgr):hover,.pv-tab tbody tr:focus-visible{background:var(--plum-soft);outline:none}
.pv-tab .pv-td-d{width:96px}.pv-tab td.pv-td-d{color:var(--ink2);font-variant-numeric:tabular-nums}
.pv-tab .pv-td-v{width:28%}
.pv-tab td.pv-td-i{color:var(--ink2)}.pv-tab .pv-td-k{width:150px}
.pv-tab .pv-td-k .pv-dot{display:inline-block;width:8px;height:8px;margin-right:6px}
.pv-tab .pv-td-x{width:52px;font-size:12px}
.pv-tab .pv-td-b{text-align:right;width:104px}.pv-tab td.pv-td-b{font-weight:700;font-variant-numeric:tabular-nums}
.pv-tab .pv-tgr td{background:transparent;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink2);font-weight:700;padding:14px 8px 5px;border-bottom:1px solid var(--line)}
.pv-tab .pv-tgr td span{font-weight:400;text-transform:none;letter-spacing:0}
.pv-tab .pv-tgr .pv-dot{display:inline-block;width:8px;height:8px;margin-right:6px}
/* v2.104.0: volle Breite, Auswahlmenüs, Baum */
body.pvbreit main{max-width:none;padding-left:18px;padding-right:18px}
body.pvbreit .pv{max-width:none}
.pv-dds{display:flex;gap:8px;flex-wrap:wrap}
.pv-dd{position:relative}
.pv-ddb{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;
  padding:7px 11px;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;min-height:34px}
.pv-ddb:hover{border-color:var(--navy-ink)}.pv-ddb.aktiv{border-color:var(--navy-ink);background:var(--plum-soft)}
.pv-pf{color:var(--ink2);font-size:11px}
.pv-ddc{display:inline-flex;gap:2px}.pv-ddc i{width:8px;height:8px;border-radius:50%;display:inline-block}
.pv-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:230px;max-height:min(70vh,460px);overflow:auto;background:var(--paper);
  border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.3);padding:6px;display:none}
.pv-dd.offen .pv-menu{display:block}
.pv-menu label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;cursor:pointer;font-size:13px;min-height:34px}
.pv-menu label:hover,.pv-menu label.on{background:var(--plum-soft)}
.pv-menu label i{width:10px;height:10px;border-radius:50%;flex:none}
.pv-menu label span{flex:1}.pv-menu label small{color:var(--ink2);font-size:11px}
.pv-menu input{accent-color:var(--navy);margin:0}
.pv-mtit{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);padding:8px 8px 2px;font-weight:700}
.pv-mtit+label{margin-top:2px}.pv-menu label+.pv-mtit{border-top:1px solid var(--line);margin-top:4px}
.pv-mfuss{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--line);margin-top:4px;padding:6px 4px 2px}
.pv-mfuss button{border:0;background:transparent;color:var(--navy-ink);font:inherit;font-size:12px;cursor:pointer;padding:4px 6px;border-radius:6px}
.pv-mfuss button:hover{background:var(--plum-soft)}
.pv-auswahl{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 6px}.pv-auswahl:empty{display:none}
.pv-marke{display:inline-flex;align-items:center;gap:6px;background:var(--plum-soft);border-radius:999px;padding:2px 4px 2px 10px;font-size:12px}
.pv-marke i{width:8px;height:8px;border-radius:50%}
.pv-marke button{border:0;background:transparent;color:var(--ink2);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:999px}
.pv-marke button:hover{background:var(--paper);color:var(--ink)}
.pv-baum{margin-top:4px}
.pv-ast.pv-a1{border-top:1px solid var(--line)}
.pv-ak{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:8px}
.pv-ak:hover{background:var(--plum-soft)}
.pv-ak .pv-tg{width:16px;color:var(--ink2);transition:transform .15s;flex:none;text-align:center}
.pv-ast.zu>.pv-ak .pv-tg{transform:rotate(-90deg)}
.pv-ast.zu>.pv-ai{display:none}
.pv-ak .pv-az{margin-left:auto;color:var(--ink2);font-size:12px;font-weight:400;text-transform:none;letter-spacing:0;white-space:nowrap}
.pv-ak .pv-az b{color:var(--ink)}
.pv-ak .pv-an{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-ak.pv-k1{padding:12px 6px;font-size:15px;font-weight:700;color:var(--ink);text-transform:none;letter-spacing:0}
.pv-ak.pv-k2{padding:8px 6px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink2);font-weight:700}
.pv-ak .pv-dot{width:9px;height:9px;flex:none}
.pv-a1.mit2>.pv-ai{margin-left:14px;border-left:2px solid var(--line);padding-left:12px;margin-bottom:8px}
.pv-ai .pv-tab{margin-top:0}
.pv-tkopf{margin-bottom:0}.pv-tkopf th{border-bottom:2px solid var(--line)}
/* In der Tabelle bleibt alles gleich breit, damit die Spalten unter dem Kopf stehen – Ebene 2 rückt nur der Kopf ein */
#pvListe[data-v=t] .pv-a1.mit2>.pv-ai{margin-left:0;border-left:0;padding-left:0}
#pvListe[data-v=t] .pv-ak.pv-k2{padding-left:26px}
/* v2.105.0: Eingangskorb */
.pv-neu{color:var(--orange-ink,#E89A3C);font-size:14px}
.pv-ez2{display:grid;grid-template-columns:58px minmax(160px,1fr) minmax(240px,1.7fr) 112px auto;gap:14px;align-items:center;padding:10px 4px;border-top:1px solid var(--line)}
.pv-eth{display:block;width:58px;height:74px;border-radius:4px;border:1px solid var(--line);background:#fff;overflow:hidden}
.pv-eth img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.pv-en{min-width:0;display:flex;flex-direction:column;gap:2px}
.pv-en b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pv-en small{color:var(--ink2);font-size:12px}
.pv-ev{min-width:0;display:flex;flex-direction:column;gap:4px}
.pv-kv1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.pv-kv2{font-size:12px;color:var(--ink2)}.pv-kv2 b{color:var(--ink)}
.pv-kkat2{display:inline-block;color:#fff;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px}
.pv-kkat2.leer{background:transparent;color:var(--ink2);border:1px dashed var(--line);font-weight:400}
.pv-quelle{font-size:11px;color:var(--ink2);border:1px solid var(--line);border-radius:999px;padding:1px 7px;white-space:nowrap}
.pv-kib{border:1px solid var(--navy-ink);color:var(--navy-ink);background:transparent;border-radius:6px;font:inherit;font-size:12px;padding:3px 9px;cursor:pointer}
.pv-kib:hover{background:var(--plum-soft)}
.pv-est{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}
.pv-est i{width:8px;height:8px;border-radius:50%;flex:none}
.pv-est.ok i{background:var(--ok)}.pv-est.pr i{background:var(--warn)}.pv-est.lauf i{background:var(--navy-ink);animation:pvBlink 1s infinite}
@keyframes pvBlink{50%{opacity:.25}}
.pv-eakt{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.pv-eakt .btn[disabled]{opacity:.45;cursor:not-allowed}
.pv-anders{background:var(--navy);border-color:var(--navy);color:#fff}
/* v2.106.0: Kategorien mit Summe, Garantie-Feld, Privat-Einstellungen */
.pv-kgz.mitsumme{grid-template-columns:18px 30px minmax(0,1fr) auto 110px 30px}
.pv-kgs{font-size:12px;color:var(--ink2);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.pv-garz[hidden]{display:none!important}
.pvs-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;grid-column:1/-1}
.pvs-kpi>div{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--bg)}
.pvs-kpi b{display:block;font-size:21px;margin-top:2px}.pvs-kpi span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.pvs-kpi small{display:block;color:var(--ink2);font-size:12px;margin-top:2px}
.pvs-ok{color:var(--ok-ink,var(--ok))}.pvs-warn{color:var(--warn-ink,var(--warn))}.pvs-bad{color:var(--bad-ink,#B3261E)}
.pvs-chips{display:flex;gap:6px;flex-wrap:wrap}
.pvs-chips label{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:13px;cursor:pointer;text-transform:none;letter-spacing:0;color:var(--ink)}
.pvs-chips label i{width:9px;height:9px;border-radius:50%}
.pvs-vorschau{border:1px dashed var(--line);border-radius:8px;padding:10px 12px;font:12px/1.6 ui-monospace,Menlo,monospace;color:var(--ink2)}
.pv-kg{display:flex;flex-direction:column;gap:6px;min-width:min(520px,80vw)}
.pv-kgz{display:grid;grid-template-columns:18px 30px minmax(0,1fr) auto 30px;gap:10px;align-items:center;padding:6px 8px;
  border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.pv-kggr{cursor:grab;color:var(--ink2);text-align:center;user-select:none}
.pv-kgfb{width:26px;height:26px;border-radius:50%;border:2px solid var(--paper);box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0}
.pv-kgz input{font:inherit;font-size:14px;background:transparent;border:1px solid transparent;border-radius:6px;padding:6px 8px;color:var(--ink);min-width:0}
.pv-kgz input:hover,.pv-kgz input:focus{border-color:var(--line);background:var(--paper);outline:none}
.pv-kgn{font-size:12px;color:var(--ink2);white-space:nowrap}
.pv-kgx{border:0;background:transparent;color:var(--ink2);font-size:15px;cursor:pointer;border-radius:6px;padding:4px;min-width:28px;min-height:28px}
.pv-kgx:hover{background:#B3261E;color:#fff}
.pv-kgpal{display:flex;gap:7px;flex-wrap:wrap;padding:2px 8px 8px 64px}
.pv-kgpal button{width:24px;height:24px;border-radius:50%;border:2px solid var(--paper);box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0}
.pv-kgpal button.on{box-shadow:0 0 0 2px var(--orange)}
.pv-kgplus{width:100%;margin-top:8px;border:1px dashed var(--line);background:transparent;color:var(--navy-ink);padding:9px;border-radius:8px;font:inherit;font-weight:700;cursor:pointer}
.pv-kgplus:hover{background:var(--plum-soft)}
@media (max-width:760px){
  .pv-kpi{grid-template-columns:repeat(3,minmax(0,1fr))}.pv-hoch{grid-column:1/-1;min-height:46px}
  .pv-kpi>div{padding:8px 10px}.pv-kpi>div b{font-size:20px}
  .pv-z{grid-template-columns:10px minmax(0,1fr) auto;gap:8px}.pv-z .pv-d,.pv-z .pv-s{display:none}
  .pv-eo{grid-template-columns:minmax(0,1fr);padding:10px}.pv-prev{min-height:200px}.pv-prev img{max-height:300px}
  body.privat header .hd-title,body.privat header .pvnav-belege,body.privat header .pvlab{display:none}
  .pv-tab .pv-td-i,.pv-tab .pv-td-x{display:none}.pv-tab .pv-td-v{width:auto}.pv-tab .pv-td-d{width:62px}.pv-tab .pv-td-k{width:30%}.pv-tab .pv-td-b{width:84px}
  .pv-tab td,.pv-tab th{padding:5px 4px}.pv-tab{font-size:12px}
  .pv-dds{width:100%}
  /* Handy: Menüs als Blatt von unten – nie halb außerhalb des Bildschirms */
  .pv-menu{position:fixed;z-index:2000;left:10px;right:10px;top:auto;bottom:10px;min-width:0;max-height:70vh;border-radius:14px;box-shadow:0 -8px 40px rgba(0,0,0,.45);padding:10px}
  .pv-menu label{min-height:44px;font-size:15px}
  .pv-a1.mit2>.pv-ai{margin-left:6px;padding-left:8px}.pv-ak.pv-k1{font-size:14px}
  body.pvbreit main{padding-left:12px;padding-right:12px}
  .pv-kopf #einInfo{flex-basis:100%;order:3}.pv-kopf>span[style]{display:none}
  .pv-ez2{grid-template-columns:48px minmax(0,1fr);gap:8px 10px}.pv-eth{width:48px;height:62px}
  .pv-ev,.pv-est,.pv-eakt{grid-column:1/-1}.pv-eakt .btn{flex:1;min-height:40px}
  .pv-kacheln{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pv-reg{display:none}.pv-ansicht{margin-left:0;width:100%;justify-content:space-between}
  .pv-kgz.mitsumme{grid-template-columns:16px 28px minmax(0,1fr) 28px}.pv-kgs{display:none}
  .pv-kgz{grid-template-columns:16px 28px minmax(0,1fr) 28px}.pv-kgn{display:none}.pv-kgpal{padding-left:8px}.pv-kg{min-width:0}
  .pv-form{grid-template-columns:minmax(0,1fr)}.pv-form>label:empty{display:none}
}
.setnav .settr{display:block;height:1px;background:var(--line);margin:6px 6px}
/* v2.107.0: Zwei-Faktor-Anmeldung */
.login-wrap.zf-breit{width:min(560px,94vw)}
.login .zf-bio{width:100%;padding:12px;font-size:15px;background:var(--navy);border-color:var(--navy)}
.zf-oder{text-align:center;color:var(--ink2);font-size:12px;margin:2px 0}
.zf-ersatz summary{cursor:pointer;color:var(--navy-ink);font-size:13px;margin:4px 0}
.zf-klein{font-size:12px;margin:0}
.zf-zurueck{font-size:12px;color:var(--navy-ink);text-align:center}
.zf-schritte{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:12px;font-size:14px}
.zf-qr{display:flex;gap:14px;align-items:center;margin-top:8px;flex-wrap:wrap}
.zf-qrbild{width:170px;height:170px;background:#fff;border-radius:8px;padding:6px;flex:none}
.zf-qrbild svg{width:100%;height:100%;display:block}
.zf-qr code,.zf-codes code{font-family:ui-monospace,Menlo,monospace;letter-spacing:.06em;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:3px 7px}
.zf-qr code{display:inline-block;max-width:100%;word-break:break-word;line-height:1.6}
.zf-breit .login form label.merken,.login form#zfForm label.merken{margin-top:10px}
.zf-zeile{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px}
.zf-zeile input{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);width:170px}
.zf-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:6px 0}
.zf-codes code{text-align:center;padding:6px}
.zf-profil{display:flex;flex-direction:column;gap:14px;min-width:0}
.zf-teil{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--bg);display:flex;flex-direction:column;gap:6px;min-width:0}
.zf-teil table{margin-top:4px;min-width:0}
.zf-ok{color:var(--ok-ink,#2E7D4F);font-weight:700}
.zf-regel{display:flex;flex-direction:column;gap:4px}
.zf-regel>label{display:flex;gap:8px;align-items:flex-start;padding:4px 0;text-transform:none;letter-spacing:0;font-size:13.5px;color:var(--ink)}
.zf-regel small{display:block;color:var(--ink2);font-size:12px}
/* v2.110.0 · Private Ablage – zusätzliche Felder (static/pvfelder.js) in Einordnen und Ändern */
.pvf-wrap{display:contents}
.pv-form select,.pvf-g select{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font:inherit}
.pvf-mehr{border:1px solid var(--line);border-radius:8px;padding:6px 10px;min-width:0}
.pvf-mehr summary{cursor:pointer;font-weight:600;color:var(--navy-ink);font-size:13px;text-transform:none;letter-spacing:0}
.pvf-g{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);gap:8px 10px;align-items:end;margin-top:8px}
.pv-form .pvf-g label,.pvf-g label{display:flex;flex-direction:column;gap:3px;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink2);min-width:0}
.pvf-g input{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font:inherit;text-transform:none;letter-spacing:0}
.pvf-t{font-size:12.5px;font-weight:600;white-space:nowrap;padding-bottom:9px;color:var(--ink)}
.pvf-rot{background:var(--bad-soft);border-radius:4px}
.pv-td-x span+span{margin-left:2px}
@media (max-width:760px){.pvf-g{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.pvf-t{grid-column:1/-1;padding:4px 0 0}.pvf-g>span:empty{display:none}}
.pl-erin{display:flex;flex-direction:column;gap:6px}
.pv-handylink{display:none}
@media (max-width:760px){.pv-handylink{display:block;text-align:center;background:var(--plum-soft);color:var(--navy-ink);border-radius:10px;padding:10px;margin-bottom:10px;font-weight:600;text-decoration:none}}
.pv-form .pvf-wrap>label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2)}
@media (max-width:760px){.pv-form .pvf-wrap>label:empty{display:none}}
#plZm,#plOrt,#plEr{font:inherit;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--paper);color:var(--ink);line-height:1.5}

/* v2.111.0: Privat-Tabelle mit wählbaren Spalten (Bezahlt mit, Original, Für wen, Status/Frist, Abgelegt von) */
.pv-tab .pv-td-v{width:20%}
.pv-tab .pv-td-k{width:130px}.pv-tab .pv-td-z{width:122px}.pv-tab .pv-td-o{width:150px}.pv-tab .pv-td-f{width:92px}
.pv-tab .pv-td-s{width:215px}.pv-tab .pv-td-a{width:96px}
.pv-liste.pv-ohne-i .pv-tab .pv-td-v{width:auto}
.pv-tab td.pv-td-s{white-space:normal;line-height:1.35;font-size:12px}
.pv-tab td.pv-td-s .pvs{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pvs-rot{color:#C0392B;font-weight:700}.pvs-or{color:#B9650F;font-weight:600}.pvs-gr{color:#1E8A4C}
.pv-pill.pvs-rot,.pv-pill.pvs-or,.pv-pill.pvs-gr{font-weight:600}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .pvs-rot{color:#FF8A7A}:root:not([data-theme="light"]) .pvs-or{color:#F5B56B}:root:not([data-theme="light"]) .pvs-gr{color:#7DD3A0}}
:root[data-theme="dark"] .pvs-rot{color:#FF8A7A}:root[data-theme="dark"] .pvs-or{color:#F5B56B}:root[data-theme="dark"] .pvs-gr{color:#7DD3A0}
@media (max-width:1250px){.pv-tab .pv-td-a{display:none}}
@media (max-width:1100px){.pv-tab .pv-td-o{display:none}}
@media (max-width:950px){.pv-tab .pv-td-z,.pv-tab .pv-td-f{display:none}}
@media (max-width:760px){.pv-tab .pv-td-s{display:none}}
