:root{--bg:#f4f7fb;--card:#fff;--text:#172033;--muted:#6b7280;--primary:#155eef;--border:#dfe5ef;--danger:#b42318;--success:#067647;--warning:#b54708;--nav:#0b1736}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--primary);text-decoration:none}.app{display:grid;grid-template-columns:235px 1fr;min-height:100vh}.nav{background:var(--nav);padding:24px 14px;color:#fff}.brand{padding:0 10px 20px;text-align:center}.brand-logo{display:block;width:100%;max-width:190px;height:auto;margin:0 auto 10px;object-fit:contain}.brand-title{font-size:13px;font-weight:700;line-height:1.2;letter-spacing:.04em;color:#dbe4f0}.nav a{display:block;color:#cbd5e1;padding:11px 12px;border-radius:9px;margin:3px 0}.nav a:hover,.nav a.active{background:#162a58;color:#fff}.nav .bottom{margin-top:25px;border-top:1px solid #29406f;padding-top:12px}.main{padding:24px 28px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:16px}.topbar h1{margin:0;font-size:26px}.topbar-user{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.user{color:var(--muted);white-space:nowrap}.logout-btn{padding:7px 11px;font-size:13px;line-height:1.2;background:#eef2f7;color:#26344d;border:1px solid #d0d5dd}.logout-btn:hover{background:#e4e9f1;color:#172033}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px;box-shadow:0 1px 2px rgba(0,0,0,.03)}.metric b{display:block;font-size:27px;margin-top:8px}.muted{color:var(--muted)}.toolbar{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-bottom:14px}.toolbar .actions{display:flex;gap:8px}.btn{display:inline-block;background:var(--primary);color:#fff;border:0;padding:9px 13px;border-radius:8px;cursor:pointer;font-weight:600}.btn.secondary{background:#eef2f7;color:#26344d}.btn.danger{background:#fee4e2;color:var(--danger)}table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:top}th{background:#f8fafc;font-size:13px;color:#475467}tr:last-child td{border-bottom:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .full{grid-column:1/-1}label{font-size:13px;font-weight:700;display:block;margin-bottom:6px}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #cfd7e4;border-radius:8px;background:#fff;font:inherit}textarea{min-height:90px}.badge{font-size:12px;background:#eef2f6;border-radius:999px;padding:4px 8px;display:inline-block}.badge.won,.badge.invoiced{background:#dcfae6;color:var(--success)}.badge.lost,.badge.cancelled{background:#fee4e2;color:var(--danger)}.badge.proposal,.badge.negotiation,.badge.quote,.badge.ordered{background:#fff0c7;color:var(--warning)}.flash{padding:10px 12px;border-radius:8px;margin:0 0 15px}.flash.success{background:#dcfae6;color:#065f46}.flash.error{background:#fee4e2;color:#991b1b}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login{width:min(420px,100%)}.login h1{text-align:center}.line-items{margin-top:15px}.line{display:grid;grid-template-columns:1.2fr 2fr .6fr .7fr .6fr auto;gap:8px;margin:8px 0;align-items:center}.totals{margin-left:auto;width:340px;max-width:100%;margin-top:20px}.totals div{display:flex;justify-content:space-between;padding:5px 0}.totals .grand{font-size:inherit;font-weight:800;border-top:1px solid var(--border);padding-top:10px}.kanban{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;overflow:auto}.kanban-col{background:#eaf0f8;border-radius:12px;padding:10px;min-height:140px}.opp-card{background:#fff;border:1px solid var(--border);border-radius:9px;padding:11px;margin:8px 0}.right{text-align:right}.nowrap{white-space:nowrap}@media(max-width:900px){.app{grid-template-columns:1fr}.nav{position:static}.nav a{display:inline-block}.main{padding:18px}.grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.line{grid-template-columns:1fr 1fr}.line .wide{grid-column:1/-1}}@media print{.nav,.topbar,.toolbar,.no-print{display:none!important}.app{display:block}.main{padding:0}body{background:#fff}.card,table{border:0;box-shadow:none}}
.badge.settled{background:#dcfae6;color:var(--success)}.badge.issued{background:#fff0c7;color:var(--warning)}.document-title{font-size:30px;font-weight:800;letter-spacing:.08em;text-align:right;margin-bottom:20px}

.nav-group{margin-top:3px}.nav-group-title{font-weight:700}.nav-sub{margin:2px 0 8px 12px;padding-left:8px;border-left:1px solid #29406f}.nav-sub a{font-size:13px;padding:8px 10px;margin:2px 0}.module-card{display:block;color:var(--text);transition:transform .12s ease,box-shadow .12s ease}.module-card:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.06)}.badge.delivered,.badge.paid,.badge.settled{background:#dcfae6;color:var(--success)}.badge.issued,.badge.sent{background:#fff0c7;color:var(--warning)}

/* v2.4 settings + configurable ERP forms */
.table-scroll{overflow-x:auto;border-radius:12px}.settings-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.document{max-width:1000px;margin:0 auto}.document-block{margin:18px 0}.document-block h3{font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:#475467;margin:0 0 8px}.document-sender{font-size:12px;color:#475467;border-bottom:1px solid var(--border);padding-bottom:10px}.document-recipient{font-size:15px;line-height:1.55}.document-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 18px}.document-meta div{display:flex;justify-content:space-between;gap:15px;border-bottom:1px dotted #d6dce7;padding:4px 0}.document-meta span{color:var(--muted)}.payment-info{display:grid;gap:5px;padding:10px 12px;background:#f8fafc;border:1px solid var(--border);border-radius:8px}.document-footer{font-size:12px;color:var(--muted);padding-top:12px;border-top:1px solid var(--border)}.sortable-blocks{display:grid;gap:9px}.sortable-block{display:grid;grid-template-columns:34px minmax(160px,1fr) auto;gap:9px;align-items:center;padding:9px;border:1px solid var(--border);background:#f8fafc;border-radius:9px}.sortable-block.dragging{opacity:.45}.drag-handle{cursor:grab;font-size:20px;text-align:center;color:#667085;user-select:none}.drag-handle:active{cursor:grabbing}.sortable-block .block-label{padding:8px}.sortable-block .visibility{margin:0;display:flex;align-items:center;gap:6px;white-space:nowrap}.sortable-block .visibility input{width:auto}.form-grid small{display:block;margin-top:5px}.document-title{break-after:avoid}.document-items{break-inside:auto}.document-items tr{break-inside:avoid}.document-block{break-inside:avoid}.block-items{break-inside:auto}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.document-meta{grid-template-columns:1fr}.sortable-block{grid-template-columns:28px 1fr}.sortable-block .visibility{grid-column:2}.table-scroll table{min-width:1050px}}
@media print{.document{max-width:none}.document-block{margin:14px 0}.document-sender{font-size:10px}.document-footer{font-size:10px}.document-title{font-size:26px}.document-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}
.document-block-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#98a2b3;margin-bottom:5px}

/* v2.4.1 form print preview */
.preview-toolbar{max-width:1000px;margin-left:auto;margin-right:auto}.preview-badge{background:#eef4ff;color:#3538cd}.module-card .actions{display:flex;gap:8px;flex-wrap:wrap}


/* v2.4.2 horizontal form layout + optional block headings */
.document-layout-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:16px;align-items:start}.document-layout-grid>.document-block{grid-column:var(--block-col,1)/span var(--block-span,12);min-width:0}.document-table-wrap{max-width:100%;overflow-x:auto}.layout-ruler{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;margin:12px 0 5px;padding:0 8px}.layout-ruler span{text-align:center;font-size:10px;color:#98a2b3}.layout-canvas{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:row;gap:10px 6px;align-items:start;padding:10px 8px 14px;border:1px dashed #b9c5d8;border-radius:10px;background:repeating-linear-gradient(90deg,rgba(21,94,239,.035) 0,rgba(21,94,239,.035) calc(8.333% - 1px),rgba(21,94,239,.10) calc(8.333% - 1px),rgba(21,94,239,.10) 8.333%)}.layout-canvas .sortable-block{grid-column:var(--editor-col,1)/span var(--editor-span,12);display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:start;min-width:0;padding:10px;border:1px solid #cfd7e4;background:#fff;border-radius:9px;box-shadow:0 1px 2px rgba(0,0,0,.04)}.layout-canvas .sortable-block.dragging{opacity:.5;outline:2px dashed #155eef}.block-editor-body{min-width:0}.block-options{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}.block-options label{margin:0}.block-options .visibility{display:flex;align-items:center;gap:5px;white-space:nowrap;font-weight:600}.block-options .visibility input{width:auto}.width-control{display:flex;align-items:center;gap:6px;white-space:nowrap}.width-control select{width:auto;padding:6px 28px 6px 8px}.horizontal-controls{display:flex;align-items:center;gap:5px}.mini-btn{border:1px solid #cfd7e4;background:#f8fafc;color:#26344d;border-radius:6px;min-width:30px;height:30px;cursor:pointer;font-weight:800}.mini-btn:disabled{opacity:.35;cursor:not-allowed}.col-indicator{font-size:12px;color:#667085;white-space:nowrap}.layout-hint{font-size:12px;margin:8px 0 0}.layout-canvas .drag-handle{padding-top:5px}.layout-canvas .block-label{min-width:0}
@media(max-width:900px){.layout-canvas{min-width:720px}.layout-ruler{min-width:720px}.form-grid>.card.full{overflow-x:auto}.document-layout-grid{column-gap:10px}}
@media print{.document-layout-grid{column-gap:12px}.document-table-wrap{overflow:visible}.document-layout-grid>.document-block{min-width:0}}

/* v2.4.3 Formularname als Block + editierbare Typografie */
.document{padding-top:1.5cm;padding-left:2cm;padding-right:2cm}
.document-layout-grid>.document-block:first-child{margin-top:0}
.document-title{font-size:inherit;font-weight:inherit;letter-spacing:.08em;text-align:inherit;margin:0;line-height:1.12}
.document-block{line-height:1.4}
.document-block h3{font-family:inherit;font-size:inherit;font-weight:700;text-align:inherit}
.document-block p,.document-block .document-recipient,.document-block .document-sender,.document-block .document-meta,.document-block .payment-info,.document-block .document-footer,.document-block table{font-family:inherit;font-size:inherit}
.font-options{display:grid;grid-template-columns:minmax(150px,1.3fr) minmax(100px,.7fr) minmax(130px,1fr) minmax(120px,1fr);gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed #d6dce7}
.font-options label{margin:0;font-size:12px;color:#475467}
.font-options select,.font-options input{margin-top:5px;padding:7px 8px}
.input-with-unit{display:grid;grid-template-columns:minmax(60px,1fr) auto;align-items:center;gap:5px}
.input-with-unit span{margin-top:5px;color:#667085}
@media(max-width:900px){.font-options{grid-template-columns:repeat(2,minmax(130px,1fr))}}
@media print{
  @page{size:A4;margin:1.5cm 2cm 1.2cm 2cm}
  .document{padding:0!important}
  .document-layout-grid>.document-block:first-child{margin-top:0}
  .document-title{font-size:inherit}
}
/* Rasterabstände statt Block-Außenabständen: nebeneinander liegende Blöcke beginnen auf gleicher Höhe. */
.document-layout-grid{row-gap:18px}
.document-layout-grid>.document-block{margin:0}
@media print{.document-layout-grid{row-gap:14px}}

/* v2.4.4 Blockanzeige + Positionsfixierung */
.layout-canvas .sortable-block.position-locked{outline:2px solid #98a2b3;outline-offset:-2px}.layout-canvas .sortable-block.position-locked .drag-handle{cursor:not-allowed;opacity:.35}.layout-canvas .sortable-block.position-locked .col-indicator::after{content:' · fixiert';font-weight:700}.block-options .width-control select[name^="block_visible"]{min-width:125px}


/* v2.4.5 Firmenlogo + Logo-Formularblock */
.logo-upload-row{display:grid;grid-template-columns:minmax(160px,260px) minmax(240px,1fr);gap:18px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:10px;background:#f8fafc}.logo-current img{display:block;max-width:220px;max-height:100px;object-fit:contain;margin-bottom:9px}.logo-current .visibility{display:flex;gap:6px;align-items:center;margin:0;font-weight:600}.logo-current .visibility input{width:auto}.document-logo{min-height:1px;display:flex;width:100%}.document-logo.logo-align-left{justify-content:flex-start}.document-logo.logo-align-center{justify-content:center}.document-logo.logo-align-right{justify-content:flex-end}.document-logo img{display:block}.logo-block-preview{min-height:56px;display:flex;align-items:center;padding:8px 10px;border:1px dashed #c7d0df;border-radius:8px;background:#fff;color:#667085;font-size:12px}.logo-block-preview img{max-width:180px;max-height:60px;object-fit:contain}.logo-size-options{display:grid;grid-template-columns:repeat(3,minmax(140px,220px));gap:10px;margin-top:10px;padding-top:10px;border-top:1px dashed #d6dce7}.logo-size-options label{margin:0;font-size:12px;color:#475467}.logo-size-options input{margin-top:5px;padding:7px 8px}.logo-size-options small{margin-top:4px}
@media(max-width:900px){.logo-upload-row{grid-template-columns:1fr}.logo-size-options{grid-template-columns:1fr}}
@media print{.document-logo img{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Logoausrichtung + aktuelle Seitenränder */
@media print{@page{size:A4;margin-top:1.5cm;margin-right:2cm;margin-bottom:1.2cm;margin-left:2cm}}

.badge.accepted{background:#dcfae6;color:var(--success)}.badge.rejected{background:#fee4e2;color:var(--danger)}.badge.expired{background:#f2f4f7;color:#667085}.badge.sent{background:#fff0c7;color:var(--warning)}

/* LES ERP 2.5.1 */
.spacer-block-preview{border:1px dashed #98a2b3;border-radius:8px;background:repeating-linear-gradient(135deg,#f8fafc,#f8fafc 8px,#eef2f6 8px,#eef2f6 16px);padding:12px;color:#667085;text-align:center;font-size:12px}
.spacer-size-options{display:flex;gap:12px;align-items:end;margin-top:10px}.spacer-size-options label{margin:0;max-width:260px}
.document-block.block-spacer{padding:0!important;margin:0!important;border:0!important;background:transparent!important;overflow:hidden}
.line.invoice-line{grid-template-columns:1.15fr 1.8fr .55fr .65fr .75fr .65fr .65fr auto}
@media(max-width:900px){.line.invoice-line{grid-template-columns:1fr 1fr}.line.invoice-line .wide{grid-column:1/-1}}

/* LES ERP 2.5.2 – erweiterter Formularbaukasten */
.form-builder-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.form-builder-actions{flex-wrap:wrap}.dynamic-block-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;padding-bottom:7px;border-bottom:1px solid #e4e7ec}.mini-btn.danger{color:#b42318;background:#fff5f5;border-color:#fecdca}.separator-block-preview{height:0;border-top:.3mm solid #000;margin:14px 0 8px}.separator-options{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-top:10px}.separator-options label{margin:0;min-width:130px}.separator-options input[type="color"]{width:64px;height:36px;padding:3px}.document-block.block-separator{padding:0!important;margin:0!important;background:transparent!important}.document-separator{width:100%;height:0;box-sizing:border-box}.document-free-text{white-space:normal;line-height:1.45}.dynamic-layout-block{border-color:#9db7e9!important;background:#fbfdff!important}
@media(max-width:900px){.form-builder-head{display:block}.form-builder-actions{margin-top:10px}.separator-options{align-items:stretch}}

/* LES ERP 2.5.7 – geometrisch feste A4-Fußzeile
   Physische A4-Unterkante -> 8 mm Leerraum -> Unterkante Fußzeile.
   Fußzeilenhöhe: 20 mm. Damit liegt ihre Oberkante exakt 28 mm über der Blattunterkante.
   Diese Maße sind fix und unabhängig von Inhalt, Blockreihenfolge und Textmenge. */
.document{
  position:relative;
  width:210mm;
  max-width:100%;
  min-height:297mm;
  margin-left:auto;
  margin-right:auto;
  padding:15mm 20mm;
}
.document-layout-grid{
  position:relative;
  min-height:267mm; /* vertikal weiterhin 15 mm; links/rechts 20 mm */
  padding-bottom:18mm; /* Footer-Unterkante liegt 7 mm unter der Inhaltsbox: 20 mm Höhe + 5 mm Schutz => 18 mm über Inhaltsbox-Unterkante */
}
.document-layout-grid>.document-block.block-footer{
  position:absolute;
  top:auto;
  bottom:-7mm; /* 15 mm Dokumentpolsterung - 7 mm = exakt 8 mm über Papierkante */
  height:20mm;
  min-height:20mm;
  max-height:20mm;
  left:var(--block-left-pct,0%);
  width:var(--block-width-pct,100%);
  overflow:hidden;
  z-index:2;
  margin:0!important;
}
@media print{
  /* 33 mm unterer Seitenrand = 8 mm physischer Abstand + 20 mm Fußzeile + 5 mm Schutzabstand.
     Der Footer wird innerhalb dieser Reservierung um 25 mm nach unten gesetzt.
     Ergebnis: Footer-Unterkante = exakt 8 mm über der physischen A4-Unterkante. */
  @page{size:A4;margin-top:1.5cm;margin-right:2cm;margin-bottom:3.3cm;margin-left:2cm}
  .document{
    position:static;
    width:auto;
    max-width:none;
    min-height:0;
    margin:0;
    padding:0!important;
  }
  .document-layout-grid{position:static;min-height:0;padding-bottom:0!important}
  .document-layout-grid>.document-block.block-footer{
    position:fixed!important;
    top:auto!important;
    bottom:-25mm!important; /* 33 mm Seitenrand - 25 mm = 8 mm physischer Abstand */
    left:var(--footer-left-mm,0mm);
    width:var(--footer-width-mm,180mm);
    height:20mm!important;
    min-height:20mm!important;
    max-height:20mm!important;
    overflow:hidden;
    z-index:20;
    margin:0!important;
  }
}


/* LES ERP 2.5.7 – Sammellieferscheine */
.collective-order-list{display:grid;gap:7px;padding:10px;border:1px solid var(--border);border-radius:9px;max-height:360px;overflow:auto;background:#f8fafc}.collective-order{align-items:center;gap:9px;padding:9px 10px;background:#fff;border:1px solid #e4e7ec;border-radius:8px;cursor:pointer}.collective-order input{width:auto;margin:0}.collective-order:hover{border-color:#98a2b3}

/* LES ERP 2.5.8 – Steuerautomatik / VIES */
.flash.warning{background:#fff0c7;color:#7a2e0e}.tax-auto-panel{padding:10px 12px;border:1px solid #d0d5dd;border-radius:8px;background:#f8fafc;color:#475467;font-size:13px}.tax-auto-panel.reverse-charge{background:#ecfdf3;border-color:#a6f4c5;color:#067647;font-weight:700}.tax-auto-panel.tax-warning{background:#fffaeb;border-color:#fedf89;color:#93370d}.tax-note{margin-top:10px;padding:9px 11px;border-left:3px solid #344054;background:#f8fafc;font-size:.92em;text-align:left}.uid-status-box{min-height:42px;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:#f8fafc}.uid-status-box small{display:block;margin-top:5px;color:var(--muted);word-break:break-word}.vat-recheck-form{margin-top:10px}.badge.valid{background:#dcfae6;color:var(--success)}.badge.invalid{background:#fee4e2;color:var(--danger)}
@media print{.tax-auto-panel{display:none!important}.tax-note{break-inside:avoid;background:transparent;border-left:1.5px solid #000}}

/* LES ERP 2.6.2 – PDF-Overlay direkt in HTML-/Dummydatenansicht */
.document.has-html-overlay{isolation:isolate;overflow:hidden}
.document.has-html-overlay>.document-layout-grid{position:relative;z-index:1}
.document-html-overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.document-html-overlay.overlay-background{z-index:0}
.document-html-overlay.overlay-foreground{z-index:30}
.document-html-overlay.overlay-repeat{background-position:left top;background-repeat:repeat-y;background-size:100% auto}
.document-html-overlay-page{position:absolute;left:0;top:calc(var(--overlay-page-index,0) * 297mm);display:block;width:100%;height:auto;max-width:none;user-select:none}
@media print{
  .document.has-html-overlay{position:relative!important;overflow:visible!important}
  /* Die HTML-Druckansicht beginnt 15 mm unterhalb und 20 mm rechts der physischen Blattkante.
     Das Overlay wird entsprechend nach außen gesetzt und deckt die komplette A4-Seite ab. */
  .document-html-overlay{top:-15mm;left:-20mm;right:auto;bottom:auto;width:210mm;height:297mm}
  .document-html-overlay.overlay-repeat{background-size:210mm 297mm;background-repeat:no-repeat}
  .document-html-overlay-page{width:210mm;height:297mm;object-fit:fill}
}

/* LES ERP 2.6.7 – Rechnungsdaten ohne gepunktete Hilfslinien */
.document.document-type-invoice .document-meta div,.document.document-type-partial_invoice .document-meta div,.document.document-type-invoice_cancel .document-meta div{border-bottom:0}

/* LES ERP 2.6.13 – verschachteltes Rechnungsmenü */
.nav-sub-group{margin:2px 0}.nav-sub-title{font-weight:700!important}.nav-sub-sub{margin:0 0 5px 10px;padding-left:8px;border-left:1px solid #29406f}.nav-sub-sub a{font-size:12px!important;padding:7px 9px!important}
.badge.active,.badge.completed{background:#dcfae6;color:var(--success)}.badge.planned,.badge.on_hold{background:#fff0c7;color:var(--warning)}

/* LES ERP 2.6.14 – Menübranding mit LE SYSTEMS Logo */
@media(max-width:900px){.brand{padding-bottom:14px}.brand-logo{max-width:180px}.brand-title{font-size:12px}}


/* LES ERP 2.6.15 – Logout direkt neben Benutzer/Rolle in der Kopfleiste */
@media(max-width:900px){.topbar{align-items:flex-start;flex-wrap:wrap}.topbar-user{margin-left:auto}.user{font-size:13px}.logout-btn{padding:6px 10px}}
