/* 18-offerten.css · Teil 18 von 19 · Offerten, Aufträge (AB), Finanzen → Übersicht. Reihenfolge der Dateien = Kaskade (index.html), nicht umsortieren. */
/* ── Offerten (hub-offer.js, view-offers.js, view-offer-catalog.js, view-offer-settings.js) ── */
.of { flex:1 0 auto; display:flex; flex-direction:column; }
/* Zweispalter (Detail, Editor, Einstellungen): fuellt genau die Hoehe von
   #viewContainer, Arbeitsspalte und Seitenpanel scrollen je fuer sich — wie
   Home/Material. Mit flex:1 0 auto wuechse es mit dem Inhalt, und die Seite
   scrollte als Ganzes (das Panel klebte dann nur und war unten nicht erreichbar). */
.of.of-2 { flex:1 1 0; min-height:0; display:grid; grid-template-columns:minmax(0,1fr) 340px; grid-template-rows:minmax(0,1fr); align-items:stretch; }
.of-main { padding:26px var(--fx) 60px; min-width:0; }
.of-side { background:#fff; border-left:1px solid var(--border); padding:26px 22px 40px; min-width:0; }
.of.of-2 > .of-main, .of.of-2 > .of-side { min-height:0; overflow-y:auto; overscroll-behavior:contain; }
.of.of-2 > .of-side { overflow-x:hidden; }
.of-side-in { position:static; }
.of-sek { margin-bottom:30px; }
.of-sek-kopf { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:0 0 10px; flex-wrap:wrap; }
.of-sek-kopf h2 { font-size:14px; font-weight:600; margin:0; color:#1F2430; }
.of-sek-kopf h2 span { color:#9A99A3; font-weight:400; margin-left:4px; }
.of-karte { background:#fff; border:1px solid var(--border); border-radius:10px; overflow:hidden; }
.of-pad { padding:18px 20px 6px; overflow:visible; }
.of-tab { width:100%; border-collapse:collapse; font-size:13.5px; }
.of-tab th { background:var(--th-bg); color:var(--muted); font-size:11.5px; font-weight:600; text-align:left; padding:9px 14px;
  border-bottom:1px solid var(--border); white-space:nowrap; }
.of-tab td { padding:9px 14px; border-bottom:1px solid #F3F1EC; vertical-align:middle; }
.of-tab tbody tr:last-child td { border-bottom:0; }
.of-tab tr[hidden] { display:none; }
.of-tab b { color:#1C1B22; font-weight:600; }
.of-tab tr.aus td, .of-tab tr.aus b { color:#9A99A3; font-weight:500; }
.of-tab .of-nix td { color:var(--muted); text-align:center; padding:16px; }
.of-num { text-align:right !important; font-variant-numeric:tabular-nums; white-space:nowrap; }
.of-akt { text-align:right; white-space:nowrap; }
.of-ib { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; border:0; border-radius:6px;
  background:none; color:var(--muted); cursor:pointer; vertical-align:middle; }
.of-ib:hover { background:#F3F1EC; color:#1C1B22; }
.of-ib.rot:hover { color:#B4232A; }
.of-ib.leer { visibility:hidden; }
.of-ib .psub-i { width:15px; height:15px; }
.of-ib.hoch .psub-i { transform:rotate(180deg); }
.of-btn { display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 12px; border:1px solid var(--border); border-radius:7px;
  background:#fff; color:#1F2430; font:inherit; font-size:13px; font-weight:500; cursor:pointer; white-space:nowrap; text-decoration:none; }
.of-btn:hover { border-color:#9A99A3; }
.of-btn:disabled { opacity:.6; cursor:default; }
.of-btn .psub-i { width:14px; height:14px; }
.of-btn.primary { background:var(--pink); border-color:var(--pink); color:#fff; }
.of-btn.dunkel { background:#1C1B22; border-color:#1C1B22; color:#fff; }
.of-btn.rot { color:#B4232A; }
.of-btn:focus-visible, .of-ib:focus-visible, .of-link:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }
.of-pill { display:inline-block; border:0; font:inherit; font-size:11.5px; font-weight:600; padding:2px 9px; border-radius:99px; white-space:nowrap; }
button.of-pill { cursor:pointer; }
.of-pill.ok { background:#E5F4EA; color:#2C7A47; }
.of-pill.aus { background:#F0EEE9; color:#8A8892; }
.of-pill.info { background:#ECEBFB; color:#3F45A8; }
.of-pill.warn { background:#FDE9EC; color:#B4232A; }
.of-pill.grau { background:#F0EEE9; color:#5A5966; }
.of-pill.amber { background:#FDF3D8; color:#8A6414; }
.of-fuss { font-size:12px; color:#9A99A3; margin:10px 0 0; max-width:90ch; line-height:1.45; }
.of-fuss code, .of-pad code { font:11.5px 'IBM Plex Mono',monospace; background:#F0EEE9; padding:1px 5px; border-radius:4px; }
.of-lead { font-size:13px; color:var(--muted); margin:0 0 12px; line-height:1.45; }
.of-hilfe { font-size:11.5px; color:#9A99A3; margin-top:4px; }
.of-nr { display:flex; align-items:center; gap:6px; }
.frm-row .of-nr input { width:84px; text-transform:uppercase; font-family:'IBM Plex Mono',monospace; }
.frm-row .of-nr select { width:auto; }
.of-nr span { font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--muted); }
.of-savebar { display:flex; justify-content:flex-end; align-items:center; gap:8px; margin:-14px 0 30px; flex-wrap:wrap; }
.of-savebar .m-msg { margin-right:auto; }
.of-frow { display:grid; grid-template-columns:1fr auto; gap:10px; margin:4px 0 6px; }
.of-frow[hidden] { display:none; }
.of-frow input { padding:7px 11px; border:1px solid var(--border); border-radius:8px; font:inherit; font-size:14px; min-width:0; }
.of-linked { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding:2px 0 10px; }
.of-linked > span:first-child { display:inline-flex; align-items:center; gap:8px; }
.of-linked .psub-i { width:16px; height:16px; color:var(--muted); }
.of-links { display:inline-flex; gap:16px; }
.of-link { font:inherit; font-size:13px; color:var(--pink); background:none; border:0; padding:0; cursor:pointer; }
.of-link.rot { color:#B4232A; }
.of-link:hover { text-decoration:underline; }
.of-note { font-size:12.5px; border-radius:8px; padding:8px 12px; margin:10px 0; line-height:1.45; }
.of-note.amber { background:#FDF3D8; color:#8A6414; }
.of-note.warn { background:#FDE9EC; color:#9F1F32; }
.of-sidehead { display:flex; justify-content:space-between; align-items:baseline; padding-bottom:12px; border-bottom:3px solid var(--pink); margin-bottom:6px; }
.of-sidehead h2 { font-size:14px; font-weight:600; margin:0; color:#1F2430; }
.of-vblock { padding:12px 0; border-bottom:1px solid #F0EEE9; font-size:13px; line-height:1.55; overflow-wrap:anywhere; }
.of-vblock small { display:block; font-size:11px; color:#9A99A3; text-transform:uppercase; letter-spacing:.04em; margin-bottom:4px; }
.of-vz { display:flex; justify-content:space-between; gap:10px; }
.of-vz b { font-weight:500; font-variant-numeric:tabular-nums; white-space:nowrap; }
.of-mono { font-family:'IBM Plex Mono',monospace; }
.of-leise { color:#9A99A3; }
.of-vz.fett { font-weight:700; background:#F3F1EC; margin:6px -8px 0; padding:7px 8px; border-radius:6px; }
.of-vz.fett b { font-weight:700; }
.of-vz.neg b { color:#B4232A; }
.of-vz.rab { font-style:italic; padding-left:12px; color:#6B6A75; }
.of-vz.trenn { border-top:1px solid #F0EEE9; margin-top:6px; padding-top:6px; }
.of-intern { background:#FAF9F6; margin:8px -10px 0; padding:12px 10px; border-radius:8px; border-bottom:0; }
.of-moco { background:#FAF9F6; margin:8px -10px 0; padding:12px 10px; border-radius:8px; border-bottom:0; }
/* Budget & Deckungsbeitrag, MOCO-Stand (hub-offer-intern.js) */
/* Je Eintrag zwei Zeilen: Beschriftung über die ganze Breite, darunter drei gleich breite Betragsspalten, die nie
   umbrechen — mit vier Spalten brach „Dienstleistungen" bei sechsstelligen Beträgen Buchstabe für Buchstabe um. */
.of-int { width:100%; border-collapse:collapse; table-layout:fixed; font-size:12.5px; margin:4px 0 8px; }
.of-int caption { caption-side:top; text-align:left; font-size:11px; color:#9A99A3; padding:0 4px 4px; }
.of-int th { text-align:left; font-weight:600; font-size:11px; color:#9A99A3; padding:3px 4px; border-bottom:1px solid #E4E1DA; }
.of-int th.of-num, .of-int td.of-num { text-align:right; }
.of-int td { padding:1px 4px 7px; font-variant-numeric:tabular-nums; vertical-align:baseline; white-space:nowrap; }
.of-int tr.lbl td { padding:8px 4px 0; font-weight:600; white-space:normal; overflow-wrap:break-word; }
.of-int tr.zahl td { border-bottom:1px solid #F0EEE9; }
.of-int td small { display:block; margin:0; font-size:11px; color:#9A99A3; text-transform:none; letter-spacing:0; }
.of-int tr.sum.lbl td { font-weight:700; border-top:1.5px solid #D8D2C9; }
.of-int tr.sum.zahl td { font-weight:700; border-bottom:0; }
.of-int tr.rab td { font-style:italic; color:#6B6A75; }
.of-int .neg { color:#B4232A; }
.of-int sup { color:#8A6414; cursor:help; }
.of-int-kap { margin-top:12px; }
.of-bar { height:8px; border-radius:99px; background:#ECEEF6; margin:4px 0 6px; overflow:hidden; }
.of-bar i { display:block; height:100%; border-radius:99px; background:#5468D9; }
.of-bar i.knapp { background:#D49A1B; }
.of-bar i.ueber { background:#E6304E; }
/* Liste */
.of-kz { display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); background:#fff; border:1px solid var(--border); border-radius:10px; margin-bottom:16px; }
.of-kz-i { padding:12px 16px; min-width:0; }
.of-kz-i + .of-kz-i { border-left:1px solid #F0EEE9; }
.of-kz-i small { display:block; font-size:11.5px; color:var(--muted); }
.of-kz-i b { display:block; font-size:22px; font-weight:600; color:#1C1B22; font-variant-numeric:tabular-nums; }
.of-kz-i span { display:block; font-size:12px; color:#9A99A3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.of-tools { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.of-tab .of-sort { cursor:pointer; user-select:none; }
.of-tab .of-sort .pfeil { font-size:9px; margin-left:3px; color:var(--navy); }
.of-liste tr.of-row { cursor:pointer; }
.of-liste tr.of-row:hover td, .of-liste tr.of-vrow:hover td { background:#FAF9F6; }
.of-liste td small { display:block; font-size:12px; color:var(--muted); }
.of-liste tr.of-vrow { cursor:pointer; }
.of-liste tr.of-vrow td { background:#FCFBF9; font-size:12.5px; padding-top:6px; padding-bottom:6px; }
.of-nrz { white-space:nowrap; }
.of-v { display:inline-block; font:600 11px 'IBM Plex Mono',monospace; background:#ECEBFB; color:#3F45A8; border-radius:5px; padding:1px 6px; }
.of-einzug { color:#9A99A3; margin:0 6px 0 4px; }
.of-vers { display:inline-flex; align-items:center; gap:3px; border:0; background:none; font:inherit; font-size:11.5px; color:var(--muted); cursor:pointer; padding:2px 4px; border-radius:5px; }
.of-vers:hover { background:#F3F1EC; color:#1C1B22; }
.of-vers .psub-i { width:12px; height:12px; transition:transform .15s; }
.of-vers[aria-expanded="true"] .psub-i { transform:rotate(180deg); }
.of-betreff { max-width:320px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* Detail: Blatt wie das PDF */
.of-blatt { background:#fff; border:1px solid var(--border); border-radius:10px; padding:40px 48px 44px; max-width:860px; color:#2A2A33; font-size:13.5px; line-height:1.5; }
.of-b-kopf { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; padding-bottom:18px; border-bottom:3px solid #E8185A; margin-bottom:26px; }
.of-b-logo { height:34px; width:auto; }
.of-b-kopf h1 { margin:0; font-size:24px; font-weight:700; color:#1C1B22; text-align:right; }
.of-b-nr { font-size:11.5px; color:#6B6A75; font-weight:600; text-align:right; }
.of-blatt h3 { color:#E8185A; font-size:15px; font-weight:700; margin:22px 0 8px; }
.of-b-2 { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.of-b-2 h3 { margin-top:0; }
.of-bf { margin-bottom:6px; }
.of-bf small { display:block; font-size:10.5px; color:#A3A2AC; margin-top:-2px; }
.of-b-betreff { margin:22px 0 4px; }
.of-b-betreff span { color:#E8185A; font-weight:700; }
.of-b-intro { margin:0 0 6px; color:#45434F; }
.of-lv { width:100%; border-collapse:collapse; font-size:13px; }
.of-lv th { background:#1E2B5E; color:#fff; text-align:left; padding:9px 10px; font-weight:600; }
.of-lv td { padding:9px 10px; vertical-align:top; }
.of-lv tbody tr:nth-child(even) td { background:#F2F2F2; }
.of-lv td i { display:block; color:#8A8892; font-size:12px; }
.of-lv tr.of-lv-kap td { background:#fff !important; color:#1E2B5E; font-weight:700; padding-top:14px; border-bottom:1px solid #E4E1DA; }
.of-b-summen { margin:20px 0 0 auto; max-width:460px; font-size:13px; }
.of-b-summen > div { display:flex; justify-content:space-between; gap:16px; padding:6px 10px; color:#6B6A75; }
.of-b-summen > div span:last-child { font-variant-numeric:tabular-nums; white-space:nowrap; }
.of-b-summen > div.fett { background:#F2F2F2; color:#1C1B22; font-weight:700; }
.of-b-summen > div.art { color:#2A2A33; }
.of-b-summen > div.rab { font-style:italic; padding-left:22px; }
.of-b-summen > div.trenn { border-top:1px solid #E4E1DA; margin-top:4px; padding-top:10px; }
.of-lv .of-mitte { text-align:center; }
.of-lv tr.of-lv-sum td { background:#fff !important; border-top:1px solid #E4E1DA; font-weight:700; text-align:right; }
/* Detail je Kapitel: Positionen nach Art mit Zwischentitel, Zebra je Art neu (Klasse z statt nth-child) */
.of-lv.of-det tbody tr td { background:#fff; }
.of-lv.of-det tbody tr.z td { background:#F2F2F2; }
/* Text zur Position: eigene Zeile über die Breite von Beschreibung bis Total, eng unter der Position (wie im PDF) */
.of-lv.of-det tbody tr.mit-text td { padding-bottom:1px; }
.of-lv.of-det tbody tr.of-lv-text td { padding-top:0; }
.of-lv.of-det tr.of-lv-text td i { font-size:12px; line-height:1.45; }
.of-lv.of-det tr.of-lv-art td { padding:16px 10px 5px; font-size:12px; font-weight:700; color:#1E2B5E; }
.of-lv.of-det tbody tr.of-lv-art:first-child td { padding-top:9px; }
.of-lv.of-det tr.of-lv-artsum td { border-top:1px solid #E4E1DA; font-size:12px; color:#6B6A75; text-align:right; }
/* Titelseite: Kapitel mit ihren Kosten je Art — ein <tbody> je Kapitel, Zebra je Gruppe */
.of-lv.of-ueb tbody:nth-of-type(odd) td { background:#fff; }
.of-lv.of-ueb tbody:nth-of-type(even) td { background:#F2F2F2; }
.of-lv.of-ueb tr.kap td { padding-bottom:3px; }
.of-lv.of-ueb tr.art td { padding-top:2px; padding-bottom:2px; font-size:12px; color:#6B6A75; }
.of-lv.of-ueb tr.art td:nth-child(2) { padding-left:24px; }
.of-lv.of-ueb tr.art:last-child td { padding-bottom:9px; }
.of-b-umbruch { position:relative; border-top:2px dashed #E4E1DA; margin:34px 0 22px; }
.of-b-umbruch span { position:absolute; right:0; top:-10px; background:#fff; padding:0 0 0 8px; font-size:10.5px; color:#A3A2AC; text-transform:uppercase; letter-spacing:.06em; }
.of-blatt h3.of-b-kap { margin:0 0 2px; font-size:17px; }
.of-b-kapnr { font-size:11px; font-weight:700; color:#8A8892; margin-bottom:10px; }
/* Eventtechnik: Termine und Lieferadresse auf der Titelseite */
.of-b-event { margin-top:18px; }
.of-b-ev { display:grid; grid-template-columns:130px minmax(0,1fr); gap:3px 10px; margin:0; font-size:13px; }
.of-b-ev dt { font-size:11.5px; font-weight:700; color:#6B6A75; }
.of-b-ev dd { margin:0; }
/* Textblöcke nach den Kapiteln (im PDF eigene Seite) */
.of-b-textb { margin:0 0 18px; }
.of-blatt h3.of-b-tbt { margin:0 0 4px; font-size:15px; }
.of-b-textb p { margin:0; font-size:13px; line-height:1.5; color:#2A2A33; }
.of-b-3 { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.of-b-3 small { display:block; font-size:11px; color:#8A8892; font-weight:700; }
.of-hist { list-style:none; margin:10px 0 0; padding:0; font-size:12.5px; }
.of-hist li { padding:5px 0; border-top:1px solid #F3F1EC; }
.of-hist li small { display:block; color:#9A99A3; }
.of-vers-l { list-style:none; margin:0 0 8px; padding:0; }
.of-vers-l li { display:flex; align-items:center; gap:6px; padding:5px 0; }
.of-vers-l li.akt .of-link { font-weight:700; color:#1C1B22; }
.of-vers-l .of-num { margin-left:auto; font-size:12.5px; }
.of-stsel { width:100%; margin-top:2px; }
.oe-h-abs { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.oe-h-abs .of-link { margin-left:auto; font-size:12px; font-weight:500; }
.oe-h-abs .of-pill { font-size:10.5px; }
.of-anh { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:5px 0; border-bottom:1px solid #F3F1EC; }
.of-anh > span:first-child { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.of-anh small { display:block; color:#9A99A3; font-size:11.5px; }
.of-anh > span:last-child { flex:none; white-space:nowrap; }
.of-upload { margin-top:10px; position:relative; overflow:hidden; }
.of-upload input[type=file] { position:absolute; inset:0; opacity:0; cursor:pointer; font-size:0; }
.of-savebar.of-savebar-in { margin:8px 0 12px; }
/* Editor */
.oe-verk { display:flex; gap:28px; flex-wrap:wrap; padding:2px 0 14px; margin-bottom:14px; border-bottom:1px solid #F0EEE9; font-size:13.5px; }
.oe-verk small { display:block; font-size:11px; color:#9A99A3; text-transform:uppercase; letter-spacing:.04em; }
.oe-2b { display:grid; grid-template-columns:1fr 1fr; gap:0 28px; }
.oe-h { font-size:12px; font-weight:700; color:#E8185A; margin:6px 0 8px; }
.oe-kap { background:#fff; border:1px solid var(--border); border-radius:10px; margin-bottom:14px; overflow:hidden; }
.oe-kap-kopf { display:flex; align-items:center; gap:8px; padding:10px 12px; border-bottom:1px solid #F0EEE9; background:#FAF9F6; }
.oe-kap-t { flex:1; min-width:0; border:1px solid transparent; background:transparent; border-radius:6px; padding:6px 8px; font:inherit; font-size:14px; font-weight:600; color:#1C1B22; }
.oe-kap-t:hover, .oe-kap-t:focus { border-color:var(--border); background:#fff; outline:none; }
.oe-kap-sum { font-variant-numeric:tabular-nums; font-size:13px; color:var(--muted); white-space:nowrap; }
/* Kapitel zuklappen: nur der Kopf bleibt (Titel, Zahl der Positionen, Summe) */
.oe-kap-tog .psub-i { transition:transform .15s; }
.oe-kap.zu .oe-kap-tog .psub-i { transform:rotate(-90deg); }
.oe-kap.zu .oe-kap-kopf { border-bottom:0; }
.oe-kap-n { font-size:12px; color:#9A99A3; white-space:nowrap; }
.oe-kap-body[hidden] { display:none; }
.oe-kapalle { font-size:12px; color:#9A99A3; white-space:nowrap; }
.oe-kapalle .of-link { font-size:12px; }
.oe-khinweis { margin:0 0 10px; padding:7px 10px; border-radius:8px; background:#FDF3D8; color:#8A6414; font-size:12.5px; }
.oe-tab { width:100%; border-collapse:collapse; font-size:13px; }
.oe-tab th { text-align:left; font-size:11px; font-weight:600; color:var(--muted); padding:7px 8px; border-bottom:1px solid #F0EEE9; white-space:nowrap; }
.oe-tab td { padding:6px 8px; border-bottom:1px solid #F6F4EF; vertical-align:top; }
.oe-tab input { width:100%; padding:6px 8px; border:1px solid var(--border); border-radius:6px; font:inherit; font-size:13px; background:#fff; min-width:0; }
.oe-tab input:focus { outline:none; border-color:var(--cyan); }
.oe-tab .oe-n { text-align:right; font-variant-numeric:tabular-nums; }
.oe-tab .oe-name { font-weight:600; }
.oe-tab .oe-detail { margin-top:0; font-style:italic; color:#6B6A75; font-size:12.5px; }
/* Zwei Zeilen je Position: der Text zur Position läuft in der zweiten Zeile über die ganze Breite */
.oe-tab tr.oe-main td { border-bottom:0; padding-bottom:3px; }
.oe-tab tr.oe-text td { padding-top:0; padding-bottom:9px; }
.oe-tab textarea.oe-detail { display:block; width:100%; min-width:0; min-height:31px; padding:6px 8px; border:1px solid var(--border); border-radius:6px;
  font:inherit; font-size:12.5px; font-style:italic; line-height:1.45; color:#6B6A75; background:#fff; resize:vertical; overflow-y:auto; field-sizing:content; }
.oe-tab textarea.oe-detail:focus { outline:none; border-color:var(--cyan); }
.oe-tab .oe-ek { background:#FAF9F6; border-style:dashed; }
.oe-pos { color:var(--muted); font-variant-numeric:tabular-nums; padding-top:12px !important; }
.oe-typ { display:block; width:max-content; margin-top:4px; font:700 9.5px 'IBM Plex Mono',monospace; padding:1px 4px; border-radius:4px; }
.oe-typ.hw { background:#ECEBFB; color:#3F45A8; }
.oe-typ.dl { background:#E5F4EA; color:#2C7A47; }
.oe-typ.sk { background:#FDF3D8; color:#8A6414; }
.oe-quelle { display:inline-block; font-size:10.5px; color:#9A99A3; margin-top:3px; }
.oe-dl { display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:6px; font-size:11.5px; color:#6B6A75; }
.oe-dl label { display:flex; align-items:center; gap:6px; }
.oe-tab .oe-dl input { width:auto; }
.oe-tab .oe-dl .oe-std { width:64px; }
.oe-tab .oe-dl .oe-moco { width:190px; }
.oe-tot { padding-top:12px !important; font-weight:600; }
.oe-tab .of-akt { padding-top:8px; }
/* Zwischentitel je Art im Editor (gleiche Gruppen wie im PDF) */
.oe-tab tr.oe-art td { padding:12px 8px 4px; font-size:11px; font-weight:700; color:#1E2B5E; text-transform:uppercase; letter-spacing:.05em; border-bottom:1px solid #F0EEE9; }
.oe-leer { padding:14px; color:var(--muted); font-size:13px; }
.oe-add { display:flex; gap:8px; flex-wrap:wrap; padding:10px 12px; border-top:1px solid #F0EEE9; }
.oe-kapneu { margin-top:2px; }
/* Textblöcke (Titel + Text ohne Preis) unter dem Leistungsverzeichnis */
.oe-tb { background:#fff; border:1px solid var(--border); border-radius:10px; margin-bottom:14px; overflow:hidden; }
.oe-tb-kopf { display:flex; align-items:center; gap:8px; padding:10px 12px; border-bottom:1px solid #F0EEE9; background:#FAF9F6; }
.oe-tb-t { flex:1; min-width:0; border:1px solid transparent; background:transparent; border-radius:6px; padding:6px 8px; font:inherit; font-size:14px; font-weight:600; color:#1C1B22; }
.oe-tb-t:hover, .oe-tb-t:focus { border-color:var(--border); background:#fff; outline:none; }
.oe-tb-text { display:block; box-sizing:border-box; width:calc(100% - 24px); margin:10px 12px 12px; min-height:62px; padding:8px 10px; border:1px solid var(--border);
  border-radius:6px; font:inherit; font-size:13px; line-height:1.45; color:#2A2A33; background:#fff; resize:vertical; overflow-y:auto; field-sizing:content; }
.oe-tb-text:focus { outline:none; border-color:var(--cyan); }
.oe-tb-leer { background:#fff; border:1px dashed var(--border); border-radius:10px; margin-bottom:10px; }
.oe-tbneu { margin-top:2px; }
/* Eventtechnik: Art im Kopf, Einsatztage, Termine, Lieferadresse */
.frm-3.oe-kopf3 { grid-template-columns:minmax(150px,1fr) minmax(0,2fr) minmax(140px,1fr); }
@media (max-width:780px){ .frm-3.oe-kopf3 { grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .frm-3.oe-kopf3 { grid-template-columns:1fr; } }
.oe-ev-tage { display:flex; align-items:flex-end; gap:14px; flex-wrap:wrap; margin-bottom:6px; }
.oe-ev-tage .frm-row { width:140px; margin:0; }
.oe-ev-tage .of-fuss { flex:1; min-width:220px; margin:0 0 8px; }
.oe-term { width:100%; border-collapse:collapse; font-size:13px; margin:0 0 8px; }
.oe-term th { text-align:left; font-size:11px; font-weight:600; color:var(--muted); padding:5px 6px; border-bottom:1px solid #F0EEE9; white-space:nowrap; }
.oe-term td { padding:4px 6px; vertical-align:middle; }
.oe-term input { width:100%; min-width:0; padding:6px 8px; border:1px solid var(--border); border-radius:6px; font:inherit; font-size:13px; background:#fff; }
.oe-term input:focus { outline:none; border-color:var(--cyan); }
.oe-term td:last-child { width:36px; }
.oe-termneu { margin:0 0 14px; }
.oe-tab .oe-tage::placeholder { color:#B5B3BC; }
.of-art { font-size:10.5px; margin-right:4px; }
.oe-hinweis { font-size:12px; color:#9A99A3; }
.oe-rabatt { display:flex; gap:8px; }
.oe-rabatt select { width:auto !important; }
.oe-akt { display:flex; justify-content:flex-end; align-items:center; gap:8px; flex-wrap:wrap; margin-top:16px; }
.oe-akt .m-msg { flex-basis:100%; text-align:right; font-size:12.5px; }
.oe-akt .m-msg:empty { display:none; }
.oe-ksuche { width:100%; margin-bottom:10px; }
.oe-kliste { display:flex; flex-direction:column; gap:6px; max-height:52vh; overflow:auto; }
.oe-ki { display:flex; justify-content:space-between; align-items:center; gap:12px; text-align:left; padding:10px 12px; border:1px solid var(--border);
  border-radius:8px; background:#fff; font:inherit; font-size:13.5px; cursor:pointer; }
.oe-ki:hover { border-color:var(--cyan); background:#FAF9F6; }
.oe-ki[hidden] { display:none; }
.oe-ki span { color:var(--muted); font-size:12.5px; white-space:nowrap; }
@media (max-width:1100px) {
  .of-kz { grid-template-columns:repeat(3, minmax(0,1fr)); }
  .of-kz-i:nth-child(4) { border-left:0; }
  .of-kz-i:nth-child(n+4) { border-top:1px solid #F0EEE9; }
}
@media (max-width:760px) {
  .oe-2b, .of-b-2, .of-b-3 { grid-template-columns:1fr; }
  .of-blatt { padding:24px 18px; }
  .oe-tab, .oe-tab tbody, .oe-tab tr, .oe-tab td { display:block; width:100%; }
  .oe-tab thead { display:none; }
  .oe-tab tr { border-bottom:1px solid #F0EEE9; padding:6px 0; }
  .oe-tab td { border:0; padding:3px 10px; }
  .oe-tab tr.oe-main { border-bottom:0; padding-bottom:0; }
  .oe-tab tr.oe-text { padding-top:0; }
  .oe-tab tr.oe-text > td:empty { display:none; }
}
@media (max-width:1100px) {
  .of.of-2 { display:block; flex:1 0 auto; min-height:auto; }
  .of.of-2 > .of-main, .of.of-2 > .of-side { overflow:visible; }
  .of-side { border-left:0; border-top:1px solid var(--border); padding:22px var(--fx) 32px; }
}
.m-actions { display:flex; gap:8px; }
@media (max-width:640px){
  .layout, .main { height:auto; }
  .content, .content > .card, #viewContainer { overflow:visible; display:block; height:auto; }
  #viewContainer.vc-liste [id$="List"] { overflow:visible; }
  .sidebar { width:100%; height:auto; position:static; flex-direction:row; align-items:center;
    padding:6px; overflow-x:auto; }
  .sidebar-logo, .brand-name { display:none; }
  .sidebar-nav { flex-direction:row; }
  .nav-group { flex-direction:row; gap:2px; }
  .nav-group + .nav-group { border-top:none; border-left:1px solid rgba(255,255,255,.14); margin:0 0 0 4px; padding:0 0 0 8px; }
  .group-label { display:none; }
  .tab { flex-direction:column; gap:2px; padding:6px 10px; border-radius:6px; white-space:normal; }
  .tab .navlabel { font-size:9.5px; }
  .tab.active { box-shadow:inset 0 -3px 0 var(--pink); }
  .layout { flex-direction:column; }
  /* `.sidebar` ist hier eine Reihe — der Nutzerblock reiht sich rechts ein
     statt unten zu haengen (dafuer bräuchte es `margin-top`, keine Zeile). */
  .sidebar-user { margin-top:0; margin-left:auto; border-top:none; padding:4px; flex:none; }
  .su-text { display:none; }
}

/* Auftragsbestaetigungen (gleiche Ansichten), Minderkosten, Finanzen → Übersicht */
.of-quelle { display:block; font-size:11px; color:var(--muted); margin-top:2px; }
.oe-tot.neg, .of-lv td.neg { color:#B4232A; }
.fu-tab .fu-row { cursor:pointer; }
.fu-doks { display:grid; gap:4px; padding:4px 0 8px; }
.fu-doks > div { display:grid; grid-template-columns:150px 120px minmax(0,1fr) auto; gap:10px; align-items:center; font-size:13px; }
.fu-doks > div > span:not(.of-pill) { color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fu-check { display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--muted); }
@media (max-width:760px) { .fu-doks > div { grid-template-columns:1fr auto; } }
