:root{
  --paper:#EEF1F4; --sheet:#FFFFFF; --ink:#1C1F24; --muted:#5F6773; --line:#D3D9E0;
  --cyan:#0087BF; --cyan-soft:#DCEFF8; --mag:#B80065; --mag-soft:#F7DDEA;
  --yel:#B98F00; --yel-soft:#FBF0C6; --ok:#2B7A4B; --ok-soft:#DDF0E4;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#14171B; --sheet:#1D2126; --ink:#E8EBEE; --muted:#9AA3AE; --line:#323840;
    --cyan:#3DB3E8; --cyan-soft:#16313F; --mag:#F0559F; --mag-soft:#3A1B2A;
    --yel:#E6C24A; --yel-soft:#36301A; --ok:#5CC487; --ok-soft:#17321F;
  }
}
:root[data-theme="dark"]{
  --paper:#14171B; --sheet:#1D2126; --ink:#E8EBEE; --muted:#9AA3AE; --line:#323840;
  --cyan:#3DB3E8; --cyan-soft:#16313F; --mag:#F0559F; --mag-soft:#3A1B2A;
  --yel:#E6C24A; --yel-soft:#36301A; --ok:#5CC487; --ok-soft:#17321F;
}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:'Archivo',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;font-size:16px;line-height:1.45}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}

.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
.side{position:sticky;top:env(safe-area-inset-top,0px);align-self:start;height:100vh;
  padding:28px 20px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:28px}
.brand{font-variation-settings:'wdth' 125;font-weight:800;font-size:28px;letter-spacing:-.01em;line-height:1}
.brand small{display:block;font-variation-settings:'wdth' 100;font-weight:500;font-size:14px;color:var(--muted);margin-top:6px;letter-spacing:0}
.side nav{display:flex;flex-direction:column;gap:2px}
.side nav a{text-decoration:none;padding:10px 12px;border-radius:8px;font-weight:550}
.side nav a.on{background:var(--sheet);box-shadow:inset 3px 0 0 var(--cyan)}
.side .foot{margin-top:auto;font-size:13px;color:var(--muted)}
.side .foot button{margin-top:8px}

main{padding:32px clamp(16px,4vw,48px) 64px;max-width:1180px;width:100%}
h1{font-variation-settings:'wdth' 118;font-weight:780;font-size:clamp(26px,4vw,38px);line-height:1.05;margin:0 0 6px;letter-spacing:-.015em}
h2{font-size:18px;font-weight:700;margin:0 0 12px}
.sub{color:var(--muted);margin:0 0 24px}
.s{color:var(--muted);font-size:14px}

.strecke{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px;margin:0 0 20px;border-radius:10px;overflow:hidden}
.stage{all:unset;cursor:pointer;background:var(--sheet);padding:12px 12px 14px;
  border-top:5px solid color-mix(in srgb,var(--cyan) var(--k),var(--line))}
.stage b{display:block;font-variation-settings:'wdth' 125;font-weight:760;font-size:30px;line-height:1}
.stage span{display:block;font-size:13px;color:var(--muted);margin-top:6px;line-height:1.2}
.stage.on{background:var(--cyan);color:#fff}
.stage.on span{color:#fff}
.stage:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}

.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}
.bar input[type=search]{flex:1 1 240px}
input,select,textarea{background:var(--sheet);border:1px solid var(--line);border-radius:8px;padding:10px 12px;min-height:44px;width:100%}
textarea{min-height:90px;resize:vertical}
.btn{cursor:pointer;border:1px solid var(--line);background:var(--sheet);border-radius:8px;padding:10px 14px;min-height:44px;font-weight:600;text-decoration:none;display:inline-block;text-align:center}
.btn.pri{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn.blue{background:var(--cyan);border-color:var(--cyan);color:#fff}
.btn.sm{min-height:34px;padding:6px 10px;font-size:14px}
.btn.ghost{background:transparent}
.btn.block{display:block;width:100%}
.pill{cursor:pointer;border:1px solid var(--line);background:transparent;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:550}
.pill.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}

.list{background:var(--sheet);border-radius:10px;overflow:hidden}
.row{display:grid;grid-template-columns:84px minmax(0,1fr) 130px 100px 150px;gap:16px;align-items:center;
  padding:14px 16px;border-top:1px solid var(--line);text-decoration:none}
.row:first-child{border-top:0}
.row:hover{background:color-mix(in srgb,var(--cyan) 5%,var(--sheet))}
.row .nr{font-variant-numeric:tabular-nums;font-weight:700}
.row .t{font-weight:600}
.row .num{font-variant-numeric:tabular-nums;font-size:14px}
.head{font-size:13px;color:var(--muted)}
.head:hover{background:transparent}
.late{color:var(--mag);font-weight:650}
.empty{padding:32px 16px;color:var(--muted)}

.chip{display:inline-block;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:600;background:var(--cyan-soft);color:var(--cyan);white-space:nowrap}
.chip.eis{background:var(--yel-soft);color:var(--yel)}
.chip.rekl{background:var(--mag-soft);color:var(--mag)}
.chip.storno{background:var(--paper);color:var(--muted);text-decoration:line-through}
.chip.fakt{background:var(--ok-soft);color:var(--ok)}
.chip.angebot{background:transparent;border:1px dashed var(--muted);color:var(--muted)}
.chip.np{background:var(--ink);color:var(--paper)}

.back{display:inline-block;margin-bottom:14px;color:var(--muted);text-decoration:none;font-weight:550}
.grid2{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:20px;align-items:start}
.card{background:var(--sheet);border-radius:10px;padding:20px}
.card + .card{margin-top:20px}
.steps{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 22px}
.steps button{cursor:pointer;border:1px solid var(--line);background:var(--sheet);border-radius:6px;padding:7px 10px;font-size:14px;font-weight:550}
.steps button.done{border-color:var(--cyan);color:var(--cyan)}
.steps button.now{background:var(--cyan);border-color:var(--cyan);color:#fff}
.steps .sep{width:1px;background:var(--line);margin:0 6px}
.steps button.side-now{background:var(--mag);border-color:var(--mag);color:#fff}
dl.facts{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0}
dl.facts dt{color:var(--muted);font-size:14px}
dl.facts dd{margin:0;font-weight:550}
.fmt{font-variation-settings:'wdth' 125;font-weight:760;font-size:34px;line-height:1;letter-spacing:-.01em;margin:4px 0 4px}
.fmt small{font-size:16px;font-weight:550;color:var(--muted);font-variation-settings:'wdth' 100;letter-spacing:0}
.besch{white-space:pre-wrap}

/* Positionen */
.poshead,.pos{display:grid;grid-template-columns:minmax(0,1fr) 96px 64px 104px 104px 40px;gap:8px;align-items:start}
.poshead{font-size:13px;color:var(--muted);padding-bottom:8px;border-bottom:1px solid var(--line)}
.pos{padding:12px 0;border-bottom:1px solid var(--line)}
.pos input,.pos textarea{min-height:38px;padding:7px 9px}
.pos .tt input{font-weight:600}
.pos textarea{min-height:40px;font-size:14px;margin-top:6px}
.pos .r,.poshead .r{text-align:right;font-variant-numeric:tabular-nums}
.pos .r input{text-align:right}
.pos .amt{padding-top:9px;font-weight:600}
.pos .unit{padding-top:9px;font-size:14px;color:var(--muted)}
.pos .lbl{display:none;font-size:12px;color:var(--muted)}
.pos .x{all:unset;cursor:pointer;width:38px;height:38px;display:grid;place-items:center;border-radius:8px;color:var(--muted);font-size:20px}
.pos .x:hover{background:var(--mag-soft);color:var(--mag)}
.pos .ro-d{font-size:14px;color:var(--muted);white-space:pre-wrap;margin-top:2px}
.sum{display:grid;grid-template-columns:1fr auto;gap:4px 24px;margin-top:14px;font-variant-numeric:tabular-nums;text-align:right}
.sum .tot{font-weight:800;font-size:20px;padding-top:6px;border-top:2px solid var(--ink)}
.addrow{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.addrow select{flex:1 1 240px}
.addrow input{flex:0 0 100px}
.lock{background:var(--ok-soft);color:var(--ok);border-radius:8px;padding:12px 14px;margin-bottom:16px;font-weight:550}
.warn{background:var(--yel-soft);color:var(--ink);border-radius:8px;padding:12px 14px;margin-bottom:16px}

.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.form label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted);font-weight:550}
.form .full{grid-column:1/-1}
.toggle{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--sheet)}
.toggle button{all:unset;cursor:pointer;padding:12px 22px;font-weight:650}
.toggle button.on{background:var(--ink);color:var(--paper)}
.toggle button:focus-visible{outline:3px solid var(--cyan);outline-offset:-3px}
fieldset{border:0;padding:0;margin:0;grid-column:1/-1}
legend{font-weight:700;font-size:16px;margin-bottom:10px;padding:0}
.wv{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px 16px;margin-bottom:16px}
.wv h3{grid-column:1/-1;font-size:14px;color:var(--muted);font-weight:600;margin:10px 0 2px}
.wv label{flex-direction:row;align-items:center;gap:10px;color:var(--ink);font-weight:500;font-size:15px;padding:6px 0;cursor:pointer}
.wv input{width:20px;min-height:20px;flex:0 0 20px}
.calc{grid-column:1/-1;background:var(--cyan-soft);border-radius:8px;padding:12px 14px;font-variant-numeric:tabular-nums}

.kat{columns:2 340px;column-gap:20px}
.kat .card{break-inside:avoid;margin:0 0 20px}
.kat table{width:100%;border-collapse:collapse}
.kat td{padding:7px 0;border-bottom:1px solid var(--line);font-size:15px}
.kat td.r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:12px}

/* Dokument */
.invoice{background:#fff;color:#1C1F24;border-radius:6px;padding:clamp(20px,5vw,56px);max-width:820px;position:relative;overflow:hidden}
.invoice .lh{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:40px}
.invoice .logo{font-variation-settings:'wdth' 125;font-weight:800;font-size:30px;line-height:1}
.invoice .from{font-size:12px;color:#5F6773;text-align:right}
.invoice .to{margin-bottom:32px}
.invoice h3{font-variation-settings:'wdth' 115;font-size:24px;margin:0 0 4px}
.invoice .meta{display:flex;gap:6px 24px;flex-wrap:wrap;font-size:14px;color:#5F6773;margin-bottom:24px}
.invoice .proj{margin:0 0 24px;white-space:pre-wrap}
.invoice table{width:100%;border-collapse:collapse}
.invoice th{font-size:13px;color:#5F6773;font-weight:550;text-align:left;padding:6px 6px 8px;border-bottom:1px solid #D3D9E0}
.invoice td{padding:9px 6px;border-bottom:1px solid #D3D9E0;vertical-align:top}
.invoice .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.invoice .pd{font-size:13px;color:#5F6773;white-space:pre-wrap;margin-top:2px}
.invoice .sum .tot{border-color:#1C1F24}
.invoice .fine{font-size:12px;color:#5F6773;margin-top:36px;border-top:1px solid #D3D9E0;padding-top:12px}
.wrap{overflow-x:auto}
.draft{position:absolute;top:38%;left:-10%;right:-10%;text-align:center;transform:rotate(-18deg);
  font-variation-settings:'wdth' 125;font-weight:800;font-size:clamp(60px,14vw,140px);color:rgba(184,0,101,.09);pointer-events:none}


/* Positionen: Druckblöcke und Leistungen */
.pb{border:1px solid var(--line);border-radius:10px;padding:14px;margin:0 0 14px}
.pb.dr{border-left:5px solid var(--cyan)}
.pb.le{border-left:5px solid var(--mag)}
.pb.fr{border-left:5px solid var(--yel)}
.ph{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.ph .no{font-weight:800;font-variant-numeric:tabular-nums;min-width:22px}
.ph input{font-weight:650;flex:1}
.ph .chip{flex:0 0 auto}
.dims{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,2fr);gap:8px;margin:8px 0}
.dims label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);font-weight:550}
.dims input,.dims select,.pb textarea{min-height:38px;padding:7px 9px}
.pb textarea{min-height:40px;font-size:14px}
.sublist{margin-top:10px}
.subt{display:flex;justify-content:space-between;gap:12px;margin-top:10px;font-weight:650;font-variant-numeric:tabular-nums}
.wvadd{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.wvadd select{flex:1 1 220px;min-height:38px;padding:7px 9px}
.addbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.chip.dr{background:var(--cyan-soft);color:var(--cyan)}
.chip.le{background:var(--mag-soft);color:var(--mag)}
.chip.fr{background:var(--yel-soft);color:var(--yel)}
.ro{font-size:14px;color:var(--muted);white-space:pre-wrap}
.invoice tr.grp td{border-bottom:0;padding-bottom:2px}
.invoice tr.sub td:first-child{padding-left:26px}
.invoice tr.sub td{font-size:14px}
@media (max-width:820px){.dims{grid-template-columns:repeat(3,minmax(0,1fr))}.dims .mt{grid-column:1/-1}}
.ke{display:grid;grid-template-columns:minmax(0,1fr) 92px 96px 40px;gap:6px;align-items:center;padding:5px 0;border-bottom:1px solid var(--line)}
.ke input,.ke select{min-height:38px;padding:6px 8px;font-size:15px}
.ke input[type=number]{text-align:right}
.ke.off{opacity:.5}
.ke .x{all:unset;cursor:pointer;width:38px;height:38px;display:grid;place-items:center;border-radius:8px;color:var(--muted);font-size:20px}
.ke .x:hover{background:var(--mag-soft);color:var(--mag)}
.ke .btn{grid-column:auto;white-space:nowrap;font-size:12px;padding:6px}
.tabs{display:none}
@media (max-width:820px){
  .app{grid-template-columns:1fr}
  .side{display:none}
  main{padding-bottom:110px}
  .tabs{display:flex;position:fixed;left:0;right:0;bottom:0;background:var(--sheet);border-top:1px solid var(--line);
    padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));z-index:10;gap:4px}
  .tabs a{flex:1;text-align:center;text-decoration:none;padding:10px 2px;font-weight:600;font-size:14px;border-radius:8px;color:var(--muted)}
  .tabs a.on{color:var(--ink);background:var(--paper)}
  .tabs a.plus{color:#fff;background:var(--cyan)}
  .strecke{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:110px;overflow-x:auto;scrollbar-width:none}
  .row{grid-template-columns:1fr auto !important;gap:4px 12px}
  .row .mid{grid-column:1/-1;grid-row:2}
  .row .fm{display:none}
  .row .tm{grid-column:1;grid-row:3}
  .row .st{grid-column:2;grid-row:1}
  .head{display:none}
  .grid2{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  .poshead{display:none}
  .pos{grid-template-columns:1fr 1fr 40px}
  .pos .tt{grid-column:1/-1}
  .pos .lbl{display:block}
  .pos .unit{display:none}
  .pos .amt{grid-column:1/3;text-align:left;padding-top:0}
  .pos .xc{grid-column:3;grid-row:2}
}
@media print{
  .side,.tabs,.noprint{display:none!important}
  body,main{background:#fff;padding:0}
  .app{display:block}
  .invoice{padding:0}
}

/* Echter Betrieb: Anmeldung, Speicheranzeige, Titelfeld */
body.out .side, body.out .tabs{display:none}
body.out .app{grid-template-columns:1fr}
.login{max-width:400px;margin:10vh auto 0;display:grid;gap:20px}
.login form{display:grid;gap:14px}
.login label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted);font-weight:550}
.err{background:var(--mag-soft);color:var(--mag);border-radius:8px;padding:10px 12px;margin:0;font-weight:550}
.sync{position:fixed;right:16px;bottom:16px;z-index:20;background:var(--ink);color:var(--paper);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600;opacity:0;pointer-events:none;transition:opacity .2s}
.sync.busy,.sync.ok,.sync.err{opacity:1}
.sync.err{background:var(--mag);color:#fff}
@media (max-width:820px){.sync{bottom:calc(76px + env(safe-area-inset-bottom,0px))}}
.h1in{font-variation-settings:'wdth' 118;font-weight:780;font-size:clamp(24px,3.6vw,34px);line-height:1.1;margin:0 0 6px;padding:6px 10px;letter-spacing:-.015em;border-color:transparent;background:transparent}
.h1in:hover,.h1in:focus{border-color:var(--line);background:var(--sheet)}
.side .who{font-weight:650;color:var(--ink)}
.steps button:disabled{cursor:default}
@media print{.sync{display:none}}

/* Kundenauswahl mit Suche */
.picker{position:relative;margin-bottom:12px}
.pick-res{display:grid;gap:2px;margin-top:4px}
.pick-res:empty{display:none}
.pick-res button{all:unset;cursor:pointer;padding:10px 12px;border-radius:8px;background:var(--paper);font-weight:550}
.pick-res button:hover,.pick-res button:focus-visible{background:var(--cyan-soft)}
.pick-res p{margin:6px 0}

/* Dokumentleiste und Lieferschein */
.docbar{display:flex;flex-wrap:wrap;gap:8px;margin:-8px 0 22px}
.docbar .btn{min-height:40px;padding:8px 14px}
.invoice .addr2{display:flex;gap:40px;flex-wrap:wrap;margin-bottom:32px}
.invoice .lbl2{font-size:12px;color:#5F6773;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.invoice td.ck{width:70px;border-bottom:1px solid #D3D9E0}
.invoice td.ck::after{content:'';display:block;width:18px;height:18px;border:1.5px solid #5F6773;border-radius:3px;margin-left:auto}
.invoice .sign{margin-top:40px;font-size:14px}
.invoice .slines{display:grid;grid-template-columns:1fr 1.4fr 1.4fr;gap:20px;margin-top:48px}
.invoice .slines span{border-top:1px solid #1C1F24;padding-top:4px;font-size:12px;color:#5F6773}

/* Katalog: Materialien */
.ke .kx{grid-column:1/-1;font-size:12px;color:var(--muted);margin:-2px 0 2px}
.kh{font-size:14px;color:var(--muted);font-weight:650;margin:16px 0 4px}
.katwide .card{margin-top:0}
.katwide .card .ke{max-width:760px}
.dims{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.5fr) minmax(0,2fr)}
@media (max-width:820px){.dims{grid-template-columns:repeat(3,minmax(0,1fr))}.dims .mt{grid-column:1/-1}}

/* Jobnummer Auftragsnummer#Jobname */
.jobid{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-12px 0 18px;font-variant-numeric:tabular-nums}
.jobid .lbl3{font-size:13px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.jobid b{font-size:20px;font-weight:750}
.jobid input{width:150px;min-height:38px;padding:6px 10px;font-size:18px;font-weight:650;font-family:ui-monospace,Menlo,Consolas,monospace}
.row .jn{font-size:12px;font-weight:600;color:var(--cyan)}
.invoice .jobbig{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:clamp(26px,5vw,40px);font-weight:800;margin:0 0 8px;letter-spacing:.02em}
.invoice .pblk{border:1.5px solid #1C1F24;border-radius:6px;padding:14px 16px;margin:14px 0;break-inside:avoid}
.invoice .pblk h4{margin:0 0 8px;font-size:17px}
.invoice .pfacts{display:flex;flex-wrap:wrap;gap:6px 20px;font-size:15px;margin-bottom:6px}
.invoice.prod h4{font-size:15px}

/* Kundenseite: Aufträge und Standorte */
.row.krow{grid-template-columns:84px minmax(0,1fr) 120px auto;text-decoration:none}
.row.krow a{text-decoration:none}
.row.krow .btn{white-space:nowrap}
.sto{display:block;text-decoration:none;padding:10px 0;border-top:1px solid var(--line);line-height:1.35}
.sto:hover b{color:var(--cyan)}
@media (max-width:820px){.row.krow{grid-template-columns:1fr auto !important}.row.krow .mid{grid-column:1/-1;grid-row:2}.row.krow .tm{grid-column:1;grid-row:3}.row.krow .btn{grid-column:2;grid-row:1}}

/* Rechnungsausgangsbuch */
.rbt{width:100%;border-collapse:collapse;font-size:15px}
.rbt th{text-align:left;font-size:13px;color:var(--muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.rbt td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.rbt .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rbt tfoot td{border-top:2px solid var(--ink);border-bottom:0}
.rbt tr.ok td{color:var(--muted)}
.rbt a{text-decoration:none}
.gb{display:flex;align-items:center;gap:8px;white-space:nowrap;cursor:pointer;font-size:14px}
.gb input{width:20px;height:20px;min-height:20px}
.mobnav{display:none;gap:8px;flex-wrap:wrap;margin:-8px 0 20px}
@media (max-width:820px){.mobnav{display:flex}}
@media print{.rbt{font-size:11px}.card{box-shadow:none}}

/* Ansprechpartner */
.kts{display:grid;gap:0;margin:8px 0 12px}
.kt{padding:10px 0;border-top:1px solid var(--line);font-size:15px;line-height:1.45}
.kt a{text-decoration:none;color:var(--cyan)}
.ktf{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:12px}
.ktf-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.ktf .x{all:unset;cursor:pointer;width:36px;height:36px;display:grid;place-items:center;border-radius:8px;color:var(--muted);font-size:20px}
.ktf .x:hover{background:var(--mag-soft);color:var(--mag)}
.ktf .form{gap:10px 14px}

/* Rechnungsliste wie bisher */
.rbsum{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.rbsum>div{background:var(--sheet);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.rbsum b{font-size:20px;font-variant-numeric:tabular-nums}
.rbt input[type=date]{width:150px;min-height:34px;padding:4px 6px;font-size:14px}
.rbt input[data-rbmail]{min-width:210px;min-height:34px;padding:4px 8px;font-size:14px}
.rbt td.noprint-inp{white-space:nowrap}
.rbt td.noprint-inp .btn{margin-left:6px}
.rbt tr.mrow td{font-weight:750;background:var(--paper);padding-top:14px}
.rbt tr.sumrow td{font-weight:650;border-bottom:2px solid var(--line)}
.rbt tr.paid td{color:var(--muted)}
.rbt .late,.rbt td.late{color:var(--mag);font-weight:600}
.ponly{display:none}
.renr{border-top:1px solid var(--line);padding-top:12px;display:grid;gap:10px}
.renr h3{margin:0;font-size:16px}
.renr label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted);font-weight:550}
@media print{.rbt input,.rbt .btn{display:none}.ponly{display:inline}}
.rbt{min-width:1180px}
.rbt td:nth-child(2){min-width:230px}
.card.wrap{padding:16px}
@media print{.rbt{min-width:0}}

/* ===== Briefbogen (wie Makom-Briefpapier, DIN A4) ===== */
.brief{--bk-l:27mm;--bk-r:20mm;position:relative;width:210mm;min-height:297mm;background:#fff;color:#141414;
  font-family:'Jost','Futura','Century Gothic','Avenir Next',system-ui,sans-serif;font-size:10pt;line-height:1.4;
  box-shadow:0 2px 14px rgba(0,0,0,.12);overflow:hidden;margin-bottom:24px}
.brief .bk-bg{position:absolute;top:0;left:0;width:210mm;height:auto;pointer-events:none;z-index:0}
.brief .bk-kopf{position:absolute;top:17mm;left:36.5mm;z-index:2}
.brief .bk-kopf img{width:46mm;height:auto;display:block}
.brief .bk-falz{position:absolute;left:0;width:5mm;border-top:.3mm solid #222;z-index:2}
.brief .bk-falz.f1{top:87mm}.brief .bk-falz.f2{top:148.5mm}.brief .bk-falz.f3{top:192mm}
.brief .bk-t{position:relative;z-index:1;width:100%;border-collapse:collapse}
.brief .bk-t>thead>tr>td,.brief .bk-t>tfoot>tr>td,.brief .bk-t>tbody>tr>td{padding:0 var(--bk-r) 0 var(--bk-l);border:0;vertical-align:top}
.brief .bk-sp-top{height:35mm}
.brief .bk-sp-bot{height:42mm}
.brief .bk-adr{height:50mm;padding-top:1mm}
.brief .bk-noadr{height:8mm}
.brief .bk-abs{font-size:7pt;color:#333;margin-bottom:4mm}
.brief .bk-an{font-size:10.5pt;line-height:1.4}
.brief .bk-fuss{position:absolute;left:var(--bk-l);right:var(--bk-r);top:288mm;transform:translateY(-100%);z-index:2;color:#222}
.brief .bk-slogan{font-size:8.6pt;letter-spacing:.42em;white-space:nowrap;margin-bottom:2.2mm}
.brief .bk-cols{display:grid;grid-template-columns:48mm 55mm 60mm;gap:0;font-size:6.6pt;line-height:1.28}
.brief .draft{z-index:3}
/* Inhalt im Briefbogen */
.brief .invoice{background:none;padding:0;max-width:none;border-radius:0;overflow:visible;color:#141414;font-family:inherit}
.brief .invoice h3{font-family:inherit;font-variation-settings:normal;font-weight:500;font-size:15pt;letter-spacing:.01em;margin:0 0 1.5mm}
.brief .invoice .meta{font-size:8.5pt;color:#444;margin-bottom:6mm;gap:1mm 6mm}
.brief .invoice .proj{font-size:9.5pt;margin-bottom:5mm}
.brief .invoice th{font-size:8pt;color:#444;font-weight:500;padding:1.5mm 1.5mm 2mm;border-bottom:.3mm solid #999}
.brief .invoice td{font-size:9.5pt;padding:2mm 1.5mm;border-bottom:.2mm solid #cfcfcf}
.brief .invoice tr.sub td{font-size:9pt}
.brief .invoice .pd{font-size:8.5pt;color:#444}
.brief .invoice .sum{font-size:9.5pt;margin-top:4mm}
.brief .invoice .sum .tot{font-size:11.5pt;font-weight:600;border-top:.4mm solid #141414;padding-top:1.5mm}
.brief .invoice .fine{font-size:8.5pt;color:#333;border-top:0;margin-top:8mm;padding-top:0}
.brief .invoice .sign{font-size:9pt;margin-top:12mm}
.brief .invoice .jobbig{font-size:26pt}
.brief .invoice .pblk{border:.35mm solid #141414;border-radius:1.5mm;padding:3mm 4mm;margin:3mm 0}
/* AGB als eigene Seite */
.brief .bk-agb{break-before:page;page-break-before:always;position:relative;z-index:5;background:#fff;box-sizing:border-box;min-height:297mm;padding:12mm 11mm 8mm 13mm;columns:2;column-gap:6mm;column-fill:balance;font-size:5.7pt;line-height:1.18;text-align:left;color:#1a1a1a}
.brief .bk-agb h4{column-span:all;font-size:9pt;font-weight:500;margin:0 0 3mm}
.brief .bk-agb h5{font-size:7pt;font-weight:600;margin:2.2mm 0 .8mm;break-after:avoid}
.brief .bk-agb p{margin:0 0 .6mm}
@media screen{.brief .bk-agb{border-top:.3mm dashed #bbb}}
.agbw{display:flex;gap:16px;flex-wrap:wrap}
@media print{
  @page{size:A4;margin:0}
  html,body{background:#fff!important}
  main{padding:0!important;max-width:none!important}
  .brief{box-shadow:none;margin:0;min-height:0;zoom:1!important;overflow:visible}
  .brief .bk-kopf,.brief .bk-fuss,.brief .bk-falz{position:fixed}
  .brief .bk-fuss{bottom:9mm;top:auto;transform:none}
  .brief .bk-agb{min-height:297mm}
  .sync{display:none}
}
.agbt{display:inline-flex;align-items:center;gap:8px;font-weight:600;cursor:pointer;padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:var(--sheet);min-height:44px}
.agbt input{width:20px;height:20px;min-height:20px}
.brief .draft.kopie{color:rgba(20,20,20,.07);letter-spacing:.08em}
.brief .draft{top:115mm;font-size:120pt}
.aplbl{display:flex;flex-direction:column;gap:6px;margin:12px 0 6px}
.apdet .kt{border-top:0;padding:6px 0 0}
.apneu{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0}
.apneu label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);font-weight:550}
.apneu input{min-height:38px;padding:6px 8px}
.ktall{margin-top:10px}.ktall summary{cursor:pointer}

/* E-Mail */
.mailov{position:fixed;inset:0;background:rgba(10,12,16,.45);z-index:50;display:grid;place-items:start center;overflow:auto;padding:calc(20px + env(safe-area-inset-top,0px)) 12px 40px}
.mailbox{background:var(--sheet);border-radius:12px;padding:20px;width:min(720px,100%);display:grid;gap:12px;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.mailbox h2{margin:0}
.mailbox label{display:flex;flex-direction:column;gap:5px;font-size:14px;color:var(--muted);font-weight:550}
.mailbox label.gb{flex-direction:row;align-items:center;color:var(--ink);font-weight:500}
.mailbox textarea{min-height:260px;font-size:15px;line-height:1.45}
.verlauf .msg{border-top:1px solid var(--line);padding:8px 0}
.verlauf .msg summary{cursor:pointer;list-style:none}
.verlauf .msg pre{white-space:pre-wrap;font-family:inherit;font-size:14px;margin:8px 0 0;background:var(--paper);padding:10px;border-radius:8px}
.verlauf .msg.ein summary b::before{content:'↘ ';color:var(--cyan)}
.verlauf .msg.aus summary b::before{content:'↗ ';color:var(--muted)}
.nf .nfz{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--line)}
.nf .nfz a{text-decoration:none;flex:1 1 260px}
.nf{margin-bottom:16px}
.vl{border-top:1px solid var(--line);padding:8px 0}.vl summary{cursor:pointer}
.brief.pdfmodus{box-shadow:none;margin:0}
.gsrows{display:grid;gap:8px}
.gsr{display:grid;grid-template-columns:minmax(0,1fr) 70px 90px 110px 38px;gap:6px;align-items:center}
.gsr input{min-height:38px;padding:6px 8px}
.gsr .x{all:unset;cursor:pointer;width:36px;height:36px;display:grid;place-items:center;border-radius:8px;color:var(--muted);font-size:20px}
@media (max-width:600px){.gsr{grid-template-columns:1fr 1fr 38px}.gsr input:first-child{grid-column:1/-1}}
.brief.pdfmodus .bk-agb{min-height:285mm}

/* Auswertungen */
.chartwrap{overflow-x:auto}
.chart{width:100%;min-width:320px;height:auto;display:block}
.chart .gl{stroke:var(--line);stroke-width:1}
.chart .ax{fill:var(--muted);font-size:11px;font-family:inherit}
.chart .bak{fill:var(--cyan)}
.chart .bvj{fill:var(--line)}
.chart .bhl{fill:var(--mag)}
.lg{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 4px 0 12px;vertical-align:middle}
.lg.bak{background:var(--cyan)}.lg.bvj{background:var(--line)}
.awt{width:100%;border-collapse:collapse;font-size:15px}
.awt th{text-align:left;font-size:13px;color:var(--muted);font-weight:600;padding:4px 6px;border-bottom:1px solid var(--line)}
.awt td{padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.awt .r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.awt a{text-decoration:none}
.plus{color:var(--ok);font-weight:650}.minus{color:var(--mag);font-weight:650}
body:not(.admin) .nuradmin{display:none}

/* Kosten und Lieferanten */
.liefz{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:0 0 8px}
.liefz label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);font-weight:550;flex:0 1 340px}
.liefz select{min-height:38px;padding:7px 9px}
.liefz .s{padding-bottom:9px}
.ksum{margin:6px 0 4px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.ksum b{font-size:18px}
.kz{display:grid;grid-template-columns:76px minmax(0,1fr) minmax(0,1.6fr) 120px 38px;gap:6px 8px;padding:10px 0;border-top:1px solid var(--line);align-items:center}
.kz select,.kz input{min-height:36px;padding:5px 8px;font-size:14px}
.kz .ktext{grid-column:1/4}
.kz .kbel{grid-column:4/6}
.kz .kpl{grid-column:4/6;font-size:12px}
.kz .kdat{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);grid-column:span 2}
.kz .kdat:last-child{grid-column:3/6}
.kz .kdat input{flex:1;min-width:0}
.kz .knet{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.kz .x{all:unset;cursor:pointer;width:36px;height:36px;display:grid;place-items:center;border-radius:8px;color:var(--muted);font-size:20px}
.kz.plan .ktyp{background:var(--sheet)}
.kz.ist .ktyp{font-weight:650}
@media (max-width:640px){.kz{grid-template-columns:70px minmax(0,1fr) 110px 36px}.kz .klief{grid-column:1/-1;grid-row:2}
  .kz .ktext,.kz .kbel,.kz .kpl,.kz .kdat,.kz .kdat:last-child{grid-column:1/-1}}
.rbt .x{all:unset;cursor:pointer;width:30px;height:30px;display:grid;place-items:center;border-radius:8px;color:var(--muted);font-size:18px}
