:root{--ink:#1d3557;--orange:#f28c28;--green:#4caf50;--bg:#f4f7fb;--line:#dbe3ee;--accent:#1d5f9a}*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:var(--bg);color:#243447}.topbar{display:flex;justify-content:space-between;align-items:center;padding:16px 28px;background:#fff;border-bottom:1px solid var(--line)}.brand{font-weight:700;color:var(--ink);font-size:20px}.brand small{font-weight:400;margin-left:10px}.topbar nav a{margin-left:18px;color:var(--ink);text-decoration:none}.container{max-width:1440px;margin:28px auto;padding:0 20px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 4px 18px rgba(29,53,87,.05);margin-bottom:20px}.button,button{background:var(--ink);color:#fff;border:0;border-radius:8px;padding:10px 15px;text-decoration:none;cursor:pointer}.button.secondary{background:#fff;color:var(--ink);border:1px solid var(--ink)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px;border-bottom:1px solid var(--line)}th{font-size:13px;color:#5c6b7a}a{color:var(--accent)}.danger{color:#a62424}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid.compact{gap:10px}.form-grid label{font-weight:600;font-size:14px}.form-grid input,.form-grid select,.form-grid textarea,.login-card input{width:100%;margin-top:6px;padding:10px;border:1px solid #bdc9d8;border-radius:7px}.form-grid textarea{min-height:90px}.wide{grid-column:1/-1}.two-col{display:grid;grid-template-columns:minmax(560px,1.05fr) minmax(560px,0.95fr);gap:24px;align-items:start}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metrics div{padding:12px;background:#f7f9fc;border-radius:9px}.metrics span{display:block;font-size:12px;color:#657383}.metrics strong{font-size:18px;color:var(--ink)}.component-svg{width:100%;height:auto;background:#fff}.empty{padding:40px;text-align:center;color:#788596}.login-wrap{min-height:100vh;display:grid;place-items:center}.login-card{width:min(420px,92vw)}.login-card label{display:block;margin:14px 0}.logo-placeholder{display:inline-block;border:2px dashed #9eacbc;border-radius:10px;padding:14px 22px;color:#657383;text-align:center}.alert{padding:10px;border-radius:8px}.alert.error{background:#fde9e9;color:#8f2020}.sheet{max-width:1000px;margin:20px auto;background:#fff;padding:35px}.sheet-head{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--ink);padding-bottom:18px}.sheet-grid{display:grid;grid-template-columns:2fr 1fr;gap:25px;margin:25px 0}.sheet footer{margin-top:25px;border-top:1px solid var(--line);padding-top:12px;color:#6d7782;font-size:12px}@media(max-width:800px){.two-col,.form-grid,.sheet-grid{grid-template-columns:1fr}.toolbar{align-items:flex-start;gap:15px}.topbar{align-items:flex-start;gap:10px}.topbar nav a{margin-left:8px}.wide{grid-column:auto}}@media print{.topbar,.no-print{display:none!important}body{background:#fff}.sheet{margin:0;max-width:none;box-shadow:none}.container{margin:0;max-width:none;padding:0}.card{box-shadow:none}}

.layer-actions{white-space:nowrap;min-width:150px}

/* Update 0.3: Drag & Drop für Schichten */
.drag-hint{margin:-4px 0 12px;color:#657383;font-size:13px}.layers-table tbody tr{transition:background .15s,opacity .15s}.layers-table tbody tr.is-dragging{opacity:.45;background:#eef3f8}.layers-table tbody tr.drag-over{outline:2px solid var(--orange);outline-offset:-2px}.drag-cell{width:42px;text-align:center}.drag-handle{width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:7px;background:#fff;color:#657383;cursor:grab;font-size:18px;line-height:1}.drag-handle:active{cursor:grabbing}.save-status{min-height:20px;margin-top:8px;font-size:13px}.save-status.saving{color:#657383}.save-status.success{color:#26753a}.save-status.error{color:#a62424}@media(max-width:800px){.layers-table{display:block;overflow-x:auto}.drag-hint{line-height:1.4}}

/* Update 0.4: stabile Griff-Sortierung und Materialschraffuren */
.layer-actions{min-width:82px}.drag-handle{touch-action:none;user-select:none}.layers-table tbody tr.sorting-active{box-shadow:0 8px 24px rgba(29,53,87,.18);background:#fff;position:relative;z-index:3}.layers-table tbody tr.sort-placeholder td{height:52px;background:#fff7ed;border:2px dashed var(--orange)}
.material-swatch{display:block;width:68px;height:30px}.pattern-preview-wrap{font-weight:600;font-size:14px}.pattern-preview-wrap span{display:block;margin-bottom:6px}.pattern-preview{height:54px;border:1px solid #9aa8b8;border-radius:7px;background-color:#ddd}.pattern-preview[data-pattern="wood"]{background-image:repeating-linear-gradient(8deg,transparent 0 8px,rgba(0,0,0,.45) 9px 10px)}.pattern-preview[data-pattern="clt"]{background-image:linear-gradient(rgba(0,0,0,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.35) 1px,transparent 1px);background-size:18px 9px}.pattern-preview[data-pattern="veneer"]{background-image:repeating-linear-gradient(0deg,transparent 0 3px,#111 4px 5px)}.pattern-preview[data-pattern="board"]{background-image:repeating-linear-gradient(45deg,transparent 0 5px,rgba(0,0,0,.5) 6px 7px),repeating-linear-gradient(-45deg,transparent 0 5px,rgba(0,0,0,.35) 6px 7px)}.pattern-preview[data-pattern="gypsum"]{background-image:repeating-linear-gradient(90deg,transparent 0 4px,#227c7d 5px 6px)}.pattern-preview[data-pattern="osb"]{background-image:repeating-linear-gradient(20deg,transparent 0 7px,rgba(70,40,10,.55) 8px 10px)}.pattern-preview[data-pattern="woodfibre"],.pattern-preview[data-pattern="insulation"]{background-image:repeating-linear-gradient(60deg,transparent 0 5px,#111 6px 7px),repeating-linear-gradient(-60deg,transparent 0 5px,#111 6px 7px)}.pattern-preview[data-pattern="cellulose"],.pattern-preview[data-pattern="woodfill"],.pattern-preview[data-pattern="gravel"],.pattern-preview[data-pattern="earth"]{background-image:radial-gradient(#111 1px,transparent 1.5px);background-size:8px 8px}.pattern-preview[data-pattern="eps"],.pattern-preview[data-pattern="xps"]{background-image:repeating-linear-gradient(45deg,transparent 0 5px,rgba(0,0,0,.6) 6px 7px),repeating-linear-gradient(-45deg,transparent 0 5px,rgba(0,0,0,.4) 6px 7px)}.pattern-preview[data-pattern="concrete"],.pattern-preview[data-pattern="screed"],.pattern-preview[data-pattern="mortar"],.pattern-preview[data-pattern="steel"]{background-image:repeating-linear-gradient(135deg,transparent 0 6px,rgba(0,0,0,.5) 7px 8px)}.pattern-preview[data-pattern="masonry"],.pattern-preview[data-pattern="sandlime"],.pattern-preview[data-pattern="brick"]{background-image:linear-gradient(rgba(0,0,0,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.45) 1px,transparent 1px);background-size:18px 9px}.pattern-preview[data-pattern="aerated"]{background-image:radial-gradient(circle,transparent 2px,rgba(0,0,0,.55) 2.5px,transparent 3px);background-size:12px 12px}.pattern-preview[data-pattern="greenroof"]{background-image:repeating-linear-gradient(70deg,transparent 0 7px,rgba(20,100,45,.7) 8px 9px)}

/* Update 0.6 */
.filter-bar{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.filter-bar label{min-width:180px;flex:1}.filter-bar button,.filter-bar .button{margin-bottom:0}.table-wrap{overflow-x:auto}.nowrap{white-space:nowrap}.muted-row{opacity:.58}.status-badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:.82rem;font-weight:700;background:#e8edf3;color:var(--ink)}.status-freigegeben,.status-active{background:#dff4e4;color:#17662d}.status-geprüft{background:#e5efff;color:#174b8a}.status-entwurf{background:#fff0d8;color:#8a5100}.status-archiviert,.status-archived{background:#ececec;color:#666}.checkbox-label{display:flex;align-items:center;gap:8px}.checkbox-label input{width:auto}.layer-actions{white-space:nowrap}

/* Update 0.7: erweiterte Baustoffdarstellung */
.color-row{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:8px;margin-top:6px}.color-row input{margin-top:0!important}.color-row input[type=color]{height:42px;padding:3px}.current-pattern{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--soft-bg)}.material-swatch-html{display:inline-block;border:1px solid #555;background-repeat:repeat;background-position:center;vertical-align:middle}.pattern-preview{position:relative;background-repeat:repeat}.pattern-preview::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:var(--pattern-opacity,1)}.form-grid small{font-weight:400;color:#657383}.pattern-preview-wrap{align-self:end}
/* BMC 022.159 (Nutzerauftrag 29.07.2026, Schraffur-Katalog-Raster mit Hover-Vorschau als Ergaenzung zum normalen Dropdown) */
.pattern-catalog{margin-top:10px;border:1px solid var(--line);border-radius:9px;padding:10px 14px;background:var(--soft-bg)}.pattern-catalog summary{cursor:pointer;font-weight:700;color:var(--accent)}.pattern-catalog .field-help{margin:8px 0}.pattern-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:10px;margin-top:8px}.pattern-catalog-item{display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:6px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;text-align:left;font:inherit}.pattern-catalog-item:hover,.pattern-catalog-item:focus-visible{border-color:var(--accent);outline:none}.pattern-catalog-item.is-active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.pattern-catalog-item small{font-size:11px;line-height:1.25;color:#475569}.pattern-catalog-swatch{height:40px;border-radius:5px;border:1px solid #9aa8b8;background-color:#ddd}

.warning-card{border-left:4px solid #d97706}.warning-card h2{margin-bottom:.5rem}.warning-card ul{margin:.3rem 0 0;padding-left:1.2rem}.warning-card li{margin:.25rem 0}.metrics>div:nth-last-child(-n+2){background:#f7fafc}.field-help,.form-grid small{display:block;margin-top:5px;color:#657383;font-weight:400}.metrics>div strong{line-height:1.25}

.surface-note{padding:.75rem 1rem;border-radius:.6rem;background:#eef4f8;color:var(--ink);font-size:.92rem}.readonly-field{background:#f3f5f7;color:#4a5568}


/* Update 1.3 – Temperaturverlauf */
.temperature-chart{width:100%;height:auto;display:block;background:#fff;border:1px solid #d7dde5;border-radius:8px}
.temp-grid{stroke:#e7ebf0;stroke-width:1}.temp-layer-line{stroke:#c8d0da;stroke-width:1;stroke-dasharray:3 4}
.temp-axis-line{stroke:#455468;stroke-width:1.2}.temp-axis,.temp-layer-label,.temp-legend{font-size:11px;fill:#405166}
.temp-path-a,.temp-path-b{fill:none;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.temp-path-a{stroke:var(--ink)}.temp-path-b{stroke:#d97706;stroke-dasharray:8 5}
.print-temperature{margin:18px 0}.print-temperature h2{margin-bottom:8px}
@media print{.temperature-chart{break-inside:avoid}.print-temperature{break-inside:avoid}}


/* Update 1.4.2 – Glaser */
.grid.cols-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.eb-risk{padding:12px;border-radius:9px}.eb-risk.yes{background:#fef3f2;color:#b42318}.eb-risk.no{background:#ecfdf3;color:#027a48}.muted{color:#657383}.print-temperature .card{padding:0;border:0;box-shadow:none}.print-temperature .grid.cols-4{margin-bottom:10px}@media(max-width:900px){.grid.cols-4{grid-template-columns:1fr 1fr}}@media(max-width:640px){.grid.cols-4{grid-template-columns:1fr}}


/* V2.2.1 print layout */
.print-view .container{max-width:1100px}
.sheet{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px}
.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:16px;border-bottom:2px solid var(--line);margin-bottom:18px}
.sheet-head h1{margin:0 0 6px 0;color:var(--ink)}
.print-meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 18px 0}
.print-meta-card{background:var(--soft-bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.print-meta-card span{display:block;font-size:12px;color:var(--muted-2);margin-bottom:4px}
.print-meta-card strong{font-size:15px;color:var(--ink)}
.print-section{margin-top:18px}
.print-section h2{margin:0 0 10px 0;color:var(--ink);font-size:20px}
.print-cond-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.print-cond-grid>div{background:var(--soft-bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.print-method-note{margin-top:18px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--soft-bg);font-size:13px;color:#475569}
.print-view .card{box-shadow:none}
.print-view .print-section .card{padding:0;border:0;box-shadow:none}
.print-view .print-section .glaser-monthly-block .table,
.print-view .print-section table{font-size:12px}
@media print{
  body.print-view{background:#fff}
  .topbar,.no-print{display:none!important}
  .container{max-width:none;margin:0;padding:0}
  .sheet{border:0;border-radius:0;padding:0}
  .print-meta-grid,.print-cond-grid{break-inside:avoid}
  .print-section{break-inside:avoid}
}


/* V2.3.1 moisture report */
.mr-report h2{margin-bottom:10px}
.mr-report .mr-subsection{margin-top:16px}
.mr-report .mr-subsection h3{margin:0 0 8px 0;font-size:18px;color:var(--ink)}
.mr-option-list{display:flex;flex-direction:column;gap:6px;font-size:14px;margin-bottom:12px}
.mr-result-line{margin:10px 0 14px 0}
.mr-badge{display:inline-block;padding:6px 12px;border-radius:999px;font-weight:700;font-size:13px}
.mr-ok{background:#dcfce7;color:#166534}
.mr-warn{background:#fef3c7;color:#92400e}
.mr-bad{background:#fee2e2;color:#991b1b}
.mr-inline-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.mr-inline-grid>div{background:var(--soft-bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.mr-report .mr-monthly-snippet .card{padding:0;border:0;box-shadow:none}
.mr-report.mr-print{page-break-inside:avoid}


/* V2.3.2 moisture report refinements */
.mr-report{margin-top:18px}
.mr-report h2{margin-bottom:10px}
.mr-report .mr-subsection{margin-top:16px}
.mr-report .mr-subsection h3{margin:0 0 8px 0;font-size:18px;color:var(--ink)}
.mr-option-list{display:flex;flex-direction:column;gap:6px;font-size:14px;margin-bottom:12px}
.mr-result-line{margin:10px 0 14px 0}
.mr-badge{display:inline-block;padding:6px 12px;border-radius:999px;font-weight:700;font-size:13px}
.mr-ok{background:#dcfce7;color:#166534}
.mr-warn{background:#fef3c7;color:#92400e}
.mr-bad{background:#fee2e2;color:#991b1b}
.mr-neutral{background:#e2e8f0;color:var(--headline)}
.mr-inline-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.mr-inline-grid>div{background:var(--soft-bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.mr-report .mr-monthly-snippet .card{padding:0;border:0;box-shadow:none}
.mr-report.mr-print{page-break-inside:avoid}
@media (max-width: 900px){.mr-inline-grid{grid-template-columns:repeat(2,1fr)}}


/* V2.3.3 declutter moisture report */
.mr-topline{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.mr-topline-left,.mr-topline-right{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.mr-method{font-size:12px;color:var(--muted-2)}
.mr-summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}
.mr-kpi{background:var(--soft-bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.mr-kpi span{display:block;font-size:12px;color:var(--muted-2);margin-bottom:4px}
.mr-kpi strong{font-size:17px;color:var(--ink)}
.mr-two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.mr-panel{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}
.mr-panel h3{margin:0 0 10px 0;font-size:18px;color:var(--ink)}
.mr-inline-line{font-size:14px;color:#334155;margin-bottom:8px}
.mr-inline-grid.small{grid-template-columns:repeat(2,1fr);margin-top:10px}
.mr-inline-grid.small>div span,.mr-inline-grid>div span{display:block;font-size:12px;color:var(--muted-2);margin-bottom:4px}
.mr-inline-grid.small>div strong,.mr-inline-grid>div strong{font-size:15px;color:var(--ink)}
.mr-details{margin-top:12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.mr-details summary{cursor:pointer;list-style:none;padding:12px 14px;font-weight:700;color:var(--ink)}
.mr-details summary::-webkit-details-marker{display:none}
.mr-details-body{padding:0 14px 14px 14px}
.mr-method-note{margin-top:14px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft-bg);font-size:13px;color:#475569}
@media (max-width: 1100px){.mr-summary-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width: 900px){.mr-two-col,.mr-summary-grid{grid-template-columns:1fr 1fr}}
@media (max-width: 640px){.mr-two-col,.mr-summary-grid,.mr-inline-grid,.mr-inline-grid.small{grid-template-columns:1fr}}


/* V2.4.1 visual polish for data sheet, cards and sketches */
:root{
  --sheet-bg:#ffffff;
  --soft-bg:#f8fafc;
  --soft-bg-2:#f1f5f9;
  --soft-line:#dbe4ef;
  --headline:#0f172a;
  --muted-2:#64748b;
}

.card{
  border-radius:14px;
}

.metrics{
  gap:10px;
}
.metrics > div{
  background:var(--soft-bg);
  border:1px solid var(--soft-line);
  border-radius:12px;
  padding:12px 14px;
}
.metrics > div span{
  color:var(--muted-2);
  font-size:12px;
  display:block;
  margin-bottom:4px;
}
.metrics > div strong{
  color:var(--headline);
  font-size:18px;
  line-height:1.2;
}

/* BMC 022.50 (Nutzerauftrag 24.07.2026): Label/Wert-Paare in der Projekt-Kennzahlenleiste
   (Gebaeudeklasse/Schallschutzniveau/Energiestandard/Sichtbarkeit) hatten keinerlei CSS und
   liefen dadurch ohne Abstand/Zeilenumbruch ineinander ("GebaeudeklasseGK 3"). Label und Wert
   bekommen dieselbe Block-Darstellung wie bei .metrics (Label klein/grau oben, Wert fett
   darunter). */
.project-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
.project-meta-grid > div{background:var(--soft-bg,#f7f9fc);border:1px solid var(--soft-line,var(--line));border-radius:12px;padding:12px 14px}
.project-meta-grid > div span{color:var(--muted-2,#657383);font-size:12px;display:block;margin-bottom:4px}
.project-meta-grid > div strong{color:var(--headline,var(--ink));font-size:16px;line-height:1.2}

.table-wrap table,
.print-view table{
  border-collapse:separate;
  border-spacing:0;
}
.table-wrap thead th,
.print-view thead th{
  background:var(--soft-bg-2);
  color:var(--headline);
  position:sticky;
  top:0;
}
.table-wrap tbody tr:nth-child(even){
  background:#fbfdff;
}
.table-wrap td,
.table-wrap th,
.print-view td,
.print-view th{
  border-bottom:1px solid #e7edf4;
}

.layers-table td,
.layers-table th{
  vertical-align:top;
}

.sheet{
  background:var(--sheet-bg);
  box-shadow:0 10px 30px rgba(15,23,42,.06);
}
.sheet-head{
  padding-bottom:18px;
}
.sheet-head p{
  margin:0;
  color:var(--muted-2);
}
.logo-placeholder{
  border-radius:12px;
  background:linear-gradient(135deg,var(--soft-bg),#eef2f7);
  border:1px dashed #cbd5e1;
  min-width:120px;
}

.sheet-grid > div:first-child{
  background:#fff;
  border:1px solid var(--soft-line);
  border-radius:12px;
  padding:10px;
}

.print-section{
  margin-top:22px;
  padding-top:8px;
}
.print-section h2{
  padding-bottom:8px;
  border-bottom:1px solid #e7edf4;
}

.print-meta-grid{
  margin-top:4px;
}
.print-meta-card{
  background:var(--soft-bg);
  border:1px solid var(--soft-line);
}
.print-meta-card strong{
  line-height:1.25;
}

.print-cond-grid > div{
  background:var(--soft-bg);
  border:1px solid var(--soft-line);
}

.print-view .glaser-monthly-block .table,
.print-view .mr-report .table{
  font-size:11.5px;
}

.print-view .mr-summary-grid{
  grid-template-columns:repeat(5,1fr);
}
.print-view .mr-two-col{
  grid-template-columns:1fr 1fr;
}

.print-view .mr-details{
  border-color:var(--soft-line);
}
.print-view .mr-details summary{
  background:var(--soft-bg);
  border-radius:10px;
}
.print-view .mr-details[open] summary{
  border-bottom:1px solid var(--soft-line);
  border-radius:10px 10px 0 0;
}

.pattern-preview,
.current-pattern{
  border-radius:12px;
}

@media (max-width: 1000px){
  .sheet-grid,
  .print-meta-grid,
  .print-cond-grid{
    grid-template-columns:1fr 1fr !important;
  }
}
@media (max-width: 720px){
  .sheet-grid,
  .print-meta-grid,
  .print-cond-grid,
  .mr-summary-grid,
  .mr-two-col{
    grid-template-columns:1fr !important;
  }
}


/* V2.7.4 layout fix */
.layers-table th,.layers-table td{padding:9px 8px;vertical-align:top}
.layers-table th:nth-child(1),.layers-table td:nth-child(1){width:34px}
.layers-table th:nth-child(2),.layers-table td:nth-child(2){width:30px}
.layers-table th:nth-child(4),.layers-table td:nth-child(4){width:54px}
.layers-table th:nth-child(5),.layers-table td:nth-child(5){width:58px}
.layers-table th:nth-child(6),.layers-table td:nth-child(6){width:58px}
.layers-table th:nth-child(7),.layers-table td:nth-child(7){width:68px}
.layers-table th:nth-child(8),.layers-table td:nth-child(8){width:86px}
.mini-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:5px;width:15px;height:15px;border-radius:999px;color:#fff;font-size:10px;font-weight:800;line-height:15px;vertical-align:middle}
.mini-badge-static{background:#2563eb}
.mini-badge-lca{background:#65a30d}
.component-svg{display:block;width:100%;max-width:100%;height:auto}
@media (max-width:1180px){.two-col{grid-template-columns:1fr}}


/* V2.7.5: Bauteilskizze größer darstellen */
.container, main, .wrap{max-width:1440px}
.two-col{grid-template-columns:minmax(560px,1.05fr) minmax(560px,0.95fr);gap:24px;align-items:start}
.component-svg{width:100%;min-height:310px}
.card:has(.component-svg){overflow:visible}
@media (max-width:1180px){
  .two-col{grid-template-columns:1fr}
  .component-svg{min-height:360px}
}


/* V2.7.6: Skizze ruhiger und größer */
.card:has(.component-svg){padding-bottom:18px}
.component-svg{width:100%;min-height:340px}
@media (max-width:1180px){
  .component-svg{min-height:390px}
}


/* V2.7.8: Zurück zur rechten Spalte, keine Vollbreite */
.two-col > aside{
  display:block;
}
.component-svg{
  width:100%;
  max-width:100%;
  min-height:340px;
}
@media (max-width:1180px){
  .two-col{grid-template-columns:1fr}
  .component-svg{min-height:360px}
}


/* V2.7.9: Schichtformular ruhiger und kompakter */
.form-grid.compact .checkbox-label{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:8px 10px;
  border:1px solid #d8e3ef;
  border-radius:8px;
  background:var(--soft-bg);
}
.form-grid.compact .checkbox-label input{
  width:auto;
  margin:0;
}
.form-grid.compact .checkbox-label:has(input:checked){
  background:#eef6ff;
  border-color:#b8cbe0;
}
.metrics strong{
  word-break:normal;
}


/* V2.8.1: Datenblatt/Print aufräumen */
.print-layer-table{
  width:100%;
  table-layout:fixed;
}
.print-layer-table th,
.print-layer-table td{
  padding:7px 6px;
  font-size:12px;
  vertical-align:top;
}
.print-layer-table th:nth-child(1),
.print-layer-table td:nth-child(1){width:34px}
.print-layer-table th:nth-child(2),
.print-layer-table td:nth-child(2){width:auto}
.print-layer-table th:nth-child(3),
.print-layer-table td:nth-child(3){width:58px}
.print-layer-table th:nth-child(4),
.print-layer-table td:nth-child(4){width:68px}
.print-layer-table th:nth-child(5),
.print-layer-table td:nth-child(5){width:54px}
.print-layer-table th:nth-child(6),
.print-layer-table td:nth-child(6){width:54px}
.print-layer-table th:nth-child(7),
.print-layer-table td:nth-child(7){width:78px}
.print-layer-table th:nth-child(8),
.print-layer-table td:nth-child(8){width:66px}
.print-legend{
  margin:0 0 8px;
  font-size:12px;
  color:#475569;
}
.print-badge-muted{
  display:inline-block;
  margin-left:4px;
  padding:1px 5px;
  border-radius:999px;
  background:var(--soft-bg-2);
  color:#475569;
  font-weight:600;
  font-size:11px;
}
.sheet-grid .component-svg{
  min-height:0;
}
@media print{
  .sheet{max-width:none;margin:0;padding:18mm 14mm}
  .print-layer-table th,
  .print-layer-table td{font-size:10.5px;padding:4px 4px}
  .mini-badge{width:12px;height:12px;font-size:8px;line-height:12px}
  .print-badge-muted{font-size:9px;padding:1px 4px}
}


/* V2.8.2: BP-aus Kennzeichnung auch in der Bauteileingabe */
.mini-badge-muted{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:5px;
  padding:1px 6px;
  min-width:auto;
  height:16px;
  border-radius:999px;
  background:var(--soft-bg-2);
  color:#475569;
  border:1px solid #cbd5e1;
  font-size:10px;
  font-weight:700;
  line-height:14px;
  vertical-align:middle;
  white-space:nowrap;
}
.input-hint{
  margin-left:4px;
  color:var(--muted-2);
  font-weight:500;
}


/* V2.8.3: Hinweis Eingaberichtung innen nach außen */
.input-direction-note{
  margin:8px 0 10px;
  padding:9px 11px;
  border-left:4px solid var(--accent);
  background:#f1f7fc;
  color:#1f3b57;
  border-radius:8px;
  font-size:14px;
}
.input-direction-note.small{
  margin-top:0;
  font-size:13px;
}


/* V2.8.6: Plausibilitätsprüfung */
.plausibility-card ul{
  margin:0;
  padding-left:18px;
}
.plausibility-card li{
  margin:6px 0;
  font-size:14px;
}
.plausibility-item-ok{color:#166534}
.plausibility-item-info{color:#334155}
.plausibility-item-warn{color:#92400e}
.plausibility-warn{
  border-left:4px solid #f59e0b;
}
.plausibility-ok{
  border-left:4px solid #22c55e;
}


/* V2.8.7: Plausibilitätsprüfung nur am Bildschirm */
.print-view .plausibility-card{
  display:none !important;
}
@media print{
  .plausibility-card,
  .screen-only{
    display:none !important;
  }
}


/* V3.0.0 Rettungsstand: Drag&Drop wie im funktionierenden Altstand */
.drag-handle{
  touch-action:none;
  cursor:grab;
  user-select:none;
}
.sorting-active{
  opacity:.55;
  background:#eef6ff;
}
.sort-placeholder td{
  height:40px;
  padding:0 !important;
  border:2px dashed #7aa7d9 !important;
  background:#f1f7fc;
}


/* V3.0.2: Inline-Maus-Drag ohne HTML5-Drag und ohne externe JS-Abhängigkeit */
.drag-handle{
  touch-action:none;
  cursor:grab;
  user-select:none;
}
.drag-handle:hover{
  color:var(--accent);
}
.sorting-active{
  background:#eef6ff !important;
}
.drag-source-hidden{
  opacity:.18;
}
.sort-placeholder td{
  height:42px;
  padding:0 !important;
  border:2px dashed #7aa7d9 !important;
  background:#f1f7fc;
}
.drag-ghost{
  position:fixed;
  z-index:9999;
  pointer-events:none;
  opacity:.9;
  background:#fff;
  box-shadow:0 12px 28px rgba(15,23,42,.18);
  border-radius:8px;
}
.is-layer-sorting{
  cursor:grabbing;
  user-select:none;
}


/* V3.0.3: Hover-Einfügen, ohne Drag&Drop-Logik zu verändern */
.insert-layer-row td{
  padding:0;
  border-bottom:0;
  height:0;
}
.insert-layer-button{
  display:block;
  width:100%;
  text-align:center;
  opacity:0;
  transform:translateY(-6px);
  text-decoration:none;
  border-radius:999px;
  background:#eaf3fb;
  color:var(--accent);
  font-weight:700;
  padding:6px 10px;
  margin:0;
  transition:opacity .16s ease, transform .16s ease, background .16s ease;
}
.layers-table tr[data-layer-id]:hover + .insert-layer-row .insert-layer-button,
.insert-layer-row:hover .insert-layer-button,
.insert-layer-button:focus{
  opacity:1;
  transform:translateY(0);
}
.insert-layer-button:hover{
  background:#dbeafe;
}
.is-layer-sorting .insert-layer-button{
  opacity:0 !important;
  pointer-events:none !important;
}
.insert-position-note{
  padding:9px 11px;
  border-left:4px solid var(--accent);
  background:#eef6ff;
  color:#1f3b57;
  border-radius:8px;
}
.insert-position-note a{
  float:right;
  font-weight:700;
}


/* V3.0.4: Neue Schicht als Popup */
.layer-add-toolbar{
  margin-top:14px;
  display:flex;
  justify-content:flex-start;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.layer-dialog{
  width:min(920px, calc(100vw - 28px));
  max-height:calc(100vh - 40px);
  border:0;
  border-radius:18px;
  padding:0;
  box-shadow:0 24px 70px rgba(15,23,42,.28);
  overflow:auto;
}
.layer-dialog::backdrop{
  background:rgba(15,23,42,.38);
  backdrop-filter:blur(2px);
}
.dialog-head{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 18px;
  border-bottom:1px solid #e5e7eb;
  background:#fff;
}
.dialog-close{
  border:0;
  background:var(--soft-bg-2);
  color:#334155;
  border-radius:999px;
  width:34px;
  height:34px;
  font-size:22px;
  line-height:1;
  cursor:pointer;
}
.dialog-close:hover{
  background:#e2e8f0;
}
.layer-dialog h3,
.layer-dialog .input-direction-note,
.layer-dialog form{
  margin-left:18px;
  margin-right:18px;
}
.layer-dialog form{
  padding-bottom:8px;
}
.dialog-actions{
  display:flex;
  justify-content:flex-end;
  padding:0 18px 18px;
}
.layer-dialog .insert-position-note[hidden]{
  display:none;
}
@media (max-width: 720px){
  .layer-dialog{
    width:calc(100vw - 16px);
  }
}


/* V3.0.5: Hover-Einfügen als Overlay ohne Zeilenhöhen-Veränderung */
.insert-layer-row{
  height:0 !important;
}
.insert-layer-row td{
  height:0 !important;
  min-height:0 !important;
  padding:0 !important;
  border:0 !important;
  line-height:0 !important;
  position:relative;
  overflow:visible;
}
.insert-layer-button{
  position:absolute;
  z-index:20;
  top:-17px;
  left:50%;
  width:auto;
  min-width:190px;
  transform:translate(-50%, -3px);
  opacity:0;
  pointer-events:none;
  line-height:1.2;
  padding:6px 14px;
  box-shadow:0 8px 20px rgba(15,23,42,.12);
}
.layers-table tr[data-layer-id]:hover + .insert-layer-row .insert-layer-button,
.insert-layer-row:hover .insert-layer-button,
.insert-layer-button:focus,
.insert-layer-button:hover{
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%, 0);
}
.is-layer-sorting .insert-layer-button{
  opacity:0 !important;
  pointer-events:none !important;
}


/* V3.0.6: Schicht bearbeiten als Popup */
.layer-edit-dialog{
  width:min(980px, calc(100vw - 28px));
  height:min(760px, calc(100vh - 36px));
}
.layer-edit-frame{
  display:block;
  width:100%;
  height:calc(100% - 63px);
  border:0;
  background:#fff;
}
.layer-edit-popup-link{
  color:var(--accent);
}


/* V3.0.7: Bearbeiten-Popup ohne App-Kopfzeile */
.layer-edit-frame{
  background:#f6f9fc;
}
body:has(.layer-edit-form){
  background:#f6f9fc;
}
.layer-edit-form{
  margin:18px;
}
body:has(.layer-edit-form) .topbar{
  display:none !important;
}
body:has(.layer-edit-form) h1{
  margin-top:0;
}


/* V3.0.8d: Feuchteschutz sichtbar und Hinweis in Stammdaten */
.form-section-title{
  margin-top:8px;
  padding:12px 14px;
  border-left:4px solid var(--accent);
  background:#eef6ff;
  border-radius:10px;
}
.form-section-title h3{
  margin:0 0 4px;
  color:var(--headline);
  font-size:1.05rem;
}
.form-section-title p{
  margin:0;
  color:#475569;
  font-size:.92rem;
}
.warning-card code{
  background:var(--soft-bg-2);
  padding:2px 5px;
  border-radius:5px;
}


/* V3.0.9: Feuchteschutz in der Bauteilansicht aufklappbar */
.collapsible-card{
  display:block;
  background:#fff;
  border:1px solid var(--soft-line);
  border-radius:16px;
  box-shadow:0 10px 28px rgba(15,23,42,.06);
  margin:16px 0;
  overflow:hidden;
}
.collapsible-card summary{
  list-style:none;
  cursor:pointer;
  padding:18px 20px;
  font-weight:800;
  font-size:1.18rem;
  color:#1f334b;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.collapsible-card summary::-webkit-details-marker{
  display:none;
}
.collapsible-card summary::after{
  content:'aufklappen';
  font-size:.82rem;
  font-weight:700;
  color:var(--accent);
  background:#eaf3fb;
  border-radius:999px;
  padding:5px 10px;
}
.collapsible-card[open] summary{
  border-bottom:1px solid #e5edf6;
}
.collapsible-card[open] summary::after{
  content:'zuklappen';
}
.collapsible-content{
  padding:0 16px 16px;
}
.collapsible-content > .card{
  margin:0;
  border:0;
  box-shadow:none;
  padding:0;
}
.collapsible-content > .card > h2:first-child{
  display:none;
}
.collapsible-content .grid{
  margin-top:12px;
}


/* V3.1.0: Baustoffbibliothek – übersichtlichere Verwaltung */
.material-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:14px 0 18px;
}
.summary-card{
  background:var(--sheet-bg);
  border:1px solid var(--soft-line);
  border-radius:16px;
  padding:15px 16px;
  box-shadow:0 8px 22px rgba(15,23,42,.05);
}
.summary-card span{
  display:block;
  color:var(--muted-2);
  font-size:.85rem;
}
.summary-card strong{
  display:block;
  margin-top:4px;
  color:var(--headline);
  font-size:1.8rem;
  line-height:1;
}
.summary-card small{
  color:var(--muted-2);
}
/* BMC 022.85: die alte einzelne "align-items:end"-Regel hier wirkte bisher folgenlos (ohne
   display:flex), wurde deshalb entfernt statt (mit widerspruechlichem Ergebnis) stehen gelassen -
   sie haette mit dem neuen display:flex;flex-direction:column unten dafuer gesorgt, dass das
   Formular quer zur Spalte rechtsbuendig statt ueber die volle Breite ausgerichtet wird. */
/* BMC 022.85 (RC1-Punkte 4+7+13, Nutzerauftrag 25.07.2026: "Filterbereich schoener gestalten...
   aber auf allen Seiten gleich halten"): gemeinsame Basis-Optik fuer ALLE .filter-bar-Formulare
   (Bauteiluebersicht, Projekte, Aenderungsprotokoll, RW2023-Neuaufbau, LCA & B4-Zuordnung,
   Nutzungsdauer-Zuordnung, QNG, OEKOBAUDAT usw.) UND fuer die Baustoffe-Werkzeugleiste, die bisher
   praktisch ungestylt war (die einzige vorhandene Regel oben liefert ohne display:flex gar keine
   Wirkung). Dieselbe helle Flaeche, dieselben abgerundeten Eingabefelder, dieselbe kleine
   Beschriftung ueberall - bewusst NUR auf den Filterbereich selbst begrenzt (keine globale
   input/select-Aenderung), damit alle anderen Formulare der Anwendung unangetastet bleiben. */
.filter-bar,.material-filter-bar{background:var(--soft-bg);border:1px solid var(--soft-line);border-radius:12px;padding:16px 18px;box-shadow:none}
.material-filter-bar{display:flex;flex-direction:column;align-items:stretch;gap:14px}
.material-filter-main{display:flex;gap:14px 16px;flex-wrap:wrap;align-items:end}
.material-filter-main .material-filter-search{flex:2;min-width:240px}
.filter-bar label,.material-filter-main label,.material-filter-advanced label{display:flex;flex-direction:column;gap:5px;min-width:180px;flex:1;font-size:12px;font-weight:700;color:#5c6b7a;text-transform:uppercase;letter-spacing:.03em}
.filter-bar input,.filter-bar select,.material-filter-main input,.material-filter-main select,.material-filter-advanced select{font-family:inherit;font-size:14px;font-weight:400;text-transform:none;letter-spacing:normal;color:#243447;padding:9px 11px;border:1px solid var(--soft-line);border-radius:8px;background:#fff;min-height:38px}
.filter-bar input:focus,.filter-bar select:focus,.material-filter-main input:focus,.material-filter-main select:focus,.material-filter-advanced select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.filter-bar button,.filter-bar .button,.material-filter-actions button,.material-filter-actions .button{align-self:end}
.material-filter-advanced{border-top:1px solid var(--soft-line);padding-top:12px}
.material-filter-advanced summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--accent);list-style:none;display:inline-block}
.material-filter-advanced summary::-webkit-details-marker{display:none}
.material-filter-advanced summary::before{content:'▸';display:inline-block;margin-right:6px;transition:transform .15s ease}
.material-filter-advanced[open] summary::before{transform:rotate(90deg)}
.material-filter-advanced>div{display:flex;gap:14px 16px;flex-wrap:wrap;margin-top:12px}
.material-filter-actions{display:flex;gap:10px}
.material-origin-switch{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--soft-bg);border:1px solid var(--soft-line);box-shadow:none}
.material-origin-switch>div{display:flex;flex-wrap:wrap;gap:8px}
.material-category-strip{background:var(--soft-bg);border:1px solid var(--soft-line);box-shadow:none}
.origin-tab{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--soft-line);border-radius:999px;padding:6px 12px;text-decoration:none;background:#fff;color:#24415f;font-size:.9rem}
.origin-tab b{min-width:22px;text-align:center;border-radius:999px;background:#e5edf6;color:#1f334b;font-weight:700;padding:1px 6px}
.origin-tab.active{background:#eaf3fb;border-color:#9fc5e8;color:#0f4f85}
.origin-tab.active b{background:#d7e9fb;color:#0f4f85}
/* BMC 022.86: die Herkunftsgruppen-Karten (.material-origin-group) starten jetzt eingeklappt
   (siehe index.php) - dadurch ist die Kopfzeile (Icon/Titel/Beschreibung/Anzahl) staendig
   sichtbar und bekommt hier erstmals eigenes CSS statt der bisherigen, unformatierten
   Standarddarstellung (vorher ohnehin kaum auffaellig, da die aufgeklappte Tabelle direkt
   darunter folgte). */
.material-origin-group>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:2px;cursor:pointer;list-style:none}
.material-origin-group>summary::-webkit-details-marker{display:none}
.material-origin-group>summary::before{content:'▸';display:inline-block;margin-right:10px;transition:transform .15s ease;color:#5c6b7a}
.material-origin-group[open]>summary::before{transform:rotate(90deg)}
.material-origin-group>summary>div{display:flex;align-items:center;gap:10px}
.material-origin-group>summary>div>span{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.origin-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:var(--soft-bg);color:var(--accent);font-weight:700;flex:none}
.origin-group-count{font-size:.85rem;color:#5c6b7a;white-space:nowrap}
.material-category-strip{
  display:flex;
  gap:14px;
  align-items:flex-start;
  flex-wrap:wrap;
}
.material-category-strip > strong{
  color:#1f334b;
  padding-top:6px;
}
.material-category-strip > div{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.category-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--soft-line);
  border-radius:999px;
  padding:6px 10px;
  text-decoration:none;
  background:var(--soft-bg);
  color:#24415f;
  font-size:.9rem;
}
.category-pill span{
  min-width:22px;
  text-align:center;
  border-radius:999px;
  background:#e5edf6;
  color:#1f334b;
  font-weight:700;
  padding:1px 6px;
}
.category-pill.active{
  background:#eaf3fb;
  border-color:#9fc5e8;
  color:#0f4f85;
}
.material-table th,
.material-table td{
  vertical-align:middle;
}
/* BMC 022.96: "Diese Schicht nicht übernehmen"-Option im PDF-Import - deaktivierte Zeile
   optisch klar als ausgeschlossen erkennbar machen. */
.eecon-assignment-table tr.pdf-layer-skipped{opacity:.42}
.eecon-assignment-table .pdf-skip-layer{font-size:12px;color:#64748b;margin-top:2px}
.material-preview-cell{
  width:140px;
}
.material-preview-cell .material-swatch-html{
  border-radius:12px;
  border:1px solid #94a3b8;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.45);
}
.material-name-cell strong{
  display:block;
  color:var(--headline);
  font-size:1rem;
}
.material-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:5px;
}
.material-meta span{
  display:inline-flex;
  border-radius:999px;
  background:#eef6ff;
  color:#24415f;
  padding:3px 8px;
  font-size:.78rem;
}
.material-source{
  display:block;
  margin-top:6px;
  color:var(--muted-2);
}
.material-values{
  min-width:170px;
}
.material-values span{
  display:inline-flex;
  margin:2px 8px 2px 0;
  color:#475569;
  white-space:nowrap;
}
.material-values strong{
  color:var(--headline);
}
.material-pattern-info strong{
  display:block;
  color:var(--headline);
}
.material-pattern-info small{
  display:block;
  color:var(--muted-2);
  margin-top:3px;
}
.material-actions{
  display:flex;
  gap:6px;
  justify-content:flex-end;
  flex-wrap:wrap;
}
.button.tiny{
  padding:6px 9px;
  font-size:.82rem;
  line-height:1.1;
}
@media(max-width:900px){
  .material-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .material-preview-cell{width:auto;}
  .material-actions{justify-content:flex-start;}
}
@media(max-width:620px){
  .material-summary-grid{grid-template-columns:1fr;}
}


/* V3.1.1: Baustoff bearbeiten übersichtlicher */
.material-edit-form{
  row-gap:18px;
}
.material-status-check{
  align-self:end;
  min-height:42px;
}
.material-preview-panel{
  display:grid;
  grid-template-columns:minmax(180px,260px) 1fr;
  gap:18px;
  align-items:center;
  border:1px solid var(--soft-line);
  background:var(--soft-bg);
  border-radius:16px;
  padding:16px;
}
.material-preview-panel strong{
  display:block;
  color:var(--headline);
  font-size:1.05rem;
}
.material-preview-panel small{
  display:block;
  color:var(--muted-2);
  margin-top:4px;
}
.material-edit-preview{
  width:100%;
  height:72px;
  border-radius:14px;
  border:1px solid #94a3b8;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.45);
}
.form-actions-sticky{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  border-top:1px solid #e5edf6;
  padding-top:16px;
}
@media(max-width:760px){
  .material-preview-panel{
    grid-template-columns:1fr;
  }
  .material-edit-preview{
    height:58px;
  }
  .form-actions-sticky{
    justify-content:flex-start;
  }
}


/* V3.1.2: Standarddarstellung je Baustoffkategorie */
.material-style-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.material-style-title > div{
  min-width:0;
}
.material-style-title .button{
  white-space:nowrap;
}
.material-style-title .button:disabled{
  opacity:.55;
  cursor:not-allowed;
}
@media(max-width:760px){
  .material-style-title{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* V3.1.3: Baustoff-Verwendung anzeigen */
.material-summary-grid{
  grid-template-columns:repeat(6,minmax(0,1fr));
}
.usage-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 9px;
  font-size:.82rem;
  font-weight:700;
  white-space:nowrap;
}
.usage-badge.used{
  color:#0f4f85;
  background:#eaf3fb;
  border:1px solid #bfdbfe;
}
.usage-badge.unused{
  color:var(--muted-2);
  background:var(--soft-bg-2);
  border:1px solid #e2e8f0;
}
.material-usage-note{
  margin:.35rem 0 0;
  color:#475569;
}
.material-usage-note strong{
  color:var(--headline);
}
@media(max-width:1200px){
  .material-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:700px){
  .material-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:520px){
  .material-summary-grid{grid-template-columns:1fr;}
}


/* V3.1.4: Baustoff-Datenprüfung */
.material-summary-grid{
  grid-template-columns:repeat(8,minmax(0,1fr));
}
.material-quality-cell{
  min-width:120px;
}
.material-quality-cell small{
  display:block;
  margin-top:4px;
  color:var(--muted-2);
  line-height:1.25;
}
.quality-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 9px;
  font-size:.82rem;
  font-weight:800;
  white-space:nowrap;
}
.quality-ok{
  color:#166534;
  background:#dcfce7;
  border:1px solid #bbf7d0;
}
.quality-info{
  color:#92400e;
  background:#fef3c7;
  border:1px solid #fde68a;
}
.quality-warn{
  color:#991b1b;
  background:#fee2e2;
  border:1px solid #fecaca;
}
.material-quality-note{
  margin:.35rem 0 0;
  display:inline-block;
  color:#991b1b;
  background:#fee2e2;
  border:1px solid #fecaca;
  border-radius:999px;
  padding:4px 10px;
  font-weight:700;
}
@media(max-width:1400px){
  .material-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media(max-width:800px){
  .material-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:520px){
  .material-summary-grid{grid-template-columns:1fr;}
}


/* V3.1.5: geprüfte Basisbaustoffe sperren */
.lock-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 9px;
  font-size:.82rem;
  font-weight:800;
  color:#7c2d12;
  background:#ffedd5;
  border:1px solid #fed7aa;
  white-space:nowrap;
}
.lock-badge::before{
  content:'🔒';
  margin-right:5px;
  font-size:.78rem;
}
.lock-badge.open{
  color:#166534;
  background:#dcfce7;
  border-color:#bbf7d0;
}
.lock-badge.open::before{
  content:'';
  margin:0;
}
.material-lock-note{
  margin:.35rem 0 0;
  display:inline-block;
  color:#7c2d12;
  background:#ffedd5;
  border:1px solid #fed7aa;
  border-radius:999px;
  padding:4px 10px;
  font-weight:700;
}
.material-lock-check{
  align-self:end;
}
.toolbar-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.wide-reset{
  display:contents;
  border:0;
  margin:0;
  padding:0;
}
.locked-material-form fieldset[disabled]{
  opacity:.72;
}
.locked-material-form input,
.locked-material-form select,
.locked-material-form textarea{
  cursor:not-allowed;
}
.alert.info{
  border:1px solid #bfdbfe;
  background:#eff6ff;
  color:#1e3a8a;
}
@media(max-width:760px){
  .toolbar-actions{
    justify-content:flex-start;
  }
}


/* V3.1.6: Schraffurabstand und Drehung */
.material-pattern-info small{display:block}
.pattern-preview{--pattern-angle:0deg}


/* V3.1.7: Kleine Vorschau direkt an der Schraffurauswahl */
.pattern-select-preview-wrap{display:flex;flex-direction:column;gap:8px;margin:-4px 0 4px}
.pattern-select-preview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.pattern-select-preview-head strong{font-size:13px;color:var(--text);line-height:1.2}
.pattern-select-preview-head small{font-size:12px;color:var(--muted-2);line-height:1.2}
.pattern-select-preview{height:46px;border:1px solid #9aa8b8;border-radius:10px;background-color:#ddd}


/* V3.1.8: Baustoffvorschau in Schicht-Auswahl */
.material-select-wrap select{
  margin-bottom:8px;
}
/* BMC 022.165 (Nutzerauftrag: "die Schraffurvorschau kann weg"): .material-inline-swatch
   (Farb-/Schraffurmuster-Quadrat) entfernt - updateMaterialPreview() (app.js) rendert dieses
   Quadrat nicht mehr, daher jetzt einspaltiges Layout statt Quadrat+Info nebeneinander. */
.material-inline-preview{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  align-items:center;
  border:1px solid var(--soft-line);
  border-radius:12px;
  background:var(--soft-bg);
  padding:9px;
}
.material-inline-info strong{
  display:block;
  color:var(--headline);
  font-size:.94rem;
  line-height:1.2;
}
.material-inline-info small{
  display:block;
  color:var(--muted-2);
  margin-top:2px;
}
.material-inline-values{
  display:flex;
  flex-wrap:wrap;
  gap:4px 8px;
  margin-top:5px;
  color:#475569;
  font-size:.82rem;
}
.material-inline-badges{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:6px;
}
.material-inline-badges .status-badge,
.material-inline-badges .lock-badge{
  font-size:.72rem;
  padding:3px 7px;
}
.material-inline-empty{
  grid-column:1/-1;
  color:var(--muted-2);
  font-size:.88rem;
}
@media(max-width:620px){
  .material-inline-preview{
    grid-template-columns:1fr;
  }
}


/* V3.1.9: Suche in der Baustoffauswahl der Schichten */
.material-select-search{
  width:100%;
  margin:0 0 8px 0;
  padding:10px 12px;
  border:1px solid #cbd5e1;
  border-radius:10px;
  background:#fff;
  color:var(--headline);
  font-size:.94rem;
}
.material-select-search:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(29,95,154,.12);
}
.material-select-counter{
  display:block;
  min-height:18px;
  margin:4px 0 8px;
  color:var(--muted-2);
  font-size:.8rem;
}


/* V3.2.0: Baustoffbibliothek CSV-Export */
.toolbar .toolbar-actions{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
}
@media(max-width:720px){
  .toolbar .toolbar-actions{
    justify-content:flex-start;
  }
}


/* V3.2.1: Baustoff CSV-Import */
.import-card code{
  background:var(--soft-bg-2);
  border-radius:5px;
  padding:2px 5px;
}
.import-summary.material-summary-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.import-actions{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
}
.alert.success{
  border:1px solid #bbf7d0;
  background:#dcfce7;
  color:#166534;
}
@media(max-width:760px){
  .import-summary.material-summary-grid{
    grid-template-columns:1fr;
  }
  .import-actions{
    justify-content:flex-start;
    flex-wrap:wrap;
  }
}


/* V3.2.2: CSV-Importvorlage */
.import-hint{
  margin-top:10px;
  padding:10px 12px;
  border:1px solid #bfdbfe;
  border-radius:10px;
  background:#eff6ff;
  color:#1e3a8a;
}


/* V3.2.3: Dubletten-Erkennung */
.duplicate-badge{
  display:inline-flex;
  align-items:center;
  margin-left:8px;
  border-radius:999px;
  padding:3px 8px;
  font-size:.72rem;
  font-weight:800;
  color:#92400e;
  background:#fef3c7;
  border:1px solid #fde68a;
  vertical-align:middle;
}


/* V3.2.4: Baustoff-Verwendungsdetails */
.usage-link{
  text-decoration:none;
}
.usage-link:hover{
  filter:brightness(.96);
  text-decoration:underline;
}
.material-usage-head{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  flex-wrap:wrap;
}
.material-usage-title{
  display:flex;
  gap:16px;
  align-items:center;
}
.material-usage-title h2{
  margin:0 0 4px;
}
.material-usage-title p{
  margin:0;
  color:var(--muted-2);
}
.material-usage-stats{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.material-usage-stats>div{
  min-width:120px;
  border:1px solid var(--soft-line);
  border-radius:12px;
  background:var(--soft-bg);
  padding:10px 12px;
}
.material-usage-stats span{
  display:block;
  color:var(--muted-2);
  font-size:.78rem;
}
.material-usage-stats strong{
  display:block;
  color:var(--headline);
  font-size:1.2rem;
  margin-top:2px;
}
.material-usage-list{
  display:grid;
  gap:14px;
}
.material-usage-component-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.material-usage-component-head h2{
  margin:0 0 4px;
  font-size:1.15rem;
}
.material-usage-component-head p{
  margin:0;
  color:var(--muted-2);
}
.material-usage-table th,
.material-usage-table td{
  white-space:nowrap;
}
@media(max-width:720px){
  .material-usage-head,
  .material-usage-title{
    align-items:flex-start;
  }
  .material-usage-title{
    flex-direction:column;
  }
  .material-usage-stats{
    width:100%;
  }
  .material-usage-stats>div{
    flex:1;
  }
}


/* V3.2.5: Dubletten-Detailprüfung */
.duplicate-group-list{
  display:grid;
  gap:14px;
}
.duplicate-group-card{
  overflow:hidden;
}
.color-collision-anchor-form{background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin-bottom:12px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.color-collision-anchor-options{display:flex;gap:14px;flex-wrap:wrap}
.color-collision-anchor-option{gap:6px;font-weight:normal}
.color-collision-anchor-row{background:#f4f8ff}
.color-collision-anchor-badge{background:#e5efff;color:#174b8a}
.color-collision-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* BMC 022.119: durchsuchbares Auswahlfeld statt Radiobutton-Wand fuer grosse Farbkollisions-Gruppen */
.color-collision-anchor-search-wrap{display:flex;flex-direction:column;gap:4px;min-width:260px}
.collision-anchor-search{padding:5px 8px;border:1px solid var(--line);border-radius:6px;font-size:.9em}
.collision-anchor-select{padding:5px 8px;border:1px solid var(--line);border-radius:6px;max-width:420px}
/* BMC 022.120: echte Muster/Schraffur-Vorschau (statt flachem Farbkaestchen) fuer die
   vorgeschlagene Farbe - zeigt vorab, ob Farbe+Schraffur zusammenpassen. */
.color-collision-suggestion-preview{display:inline-flex;flex-direction:column;align-items:center;gap:2px}
.color-collision-suggestion-hex{color:var(--muted-2);font-family:monospace}
.duplicate-group-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.duplicate-group-head h2{
  margin:0 0 4px;
  font-size:1.1rem;
}
.duplicate-group-head p{
  margin:0;
  color:var(--muted-2);
}
.duplicate-table td{
  vertical-align:top;
}
.duplicate-table .lock-badge{
  margin-top:6px;
}
@media(max-width:760px){
  .duplicate-group-head{
    align-items:flex-start;
  }
}


/* V3.2.6: Baustoffe zusammenführen */
.duplicate-merge-form{
  display:grid;
  grid-template-columns:1.1fr 1fr 1fr auto auto;
  gap:10px;
  align-items:end;
  margin-top:14px;
  padding:12px;
  border:1px solid var(--soft-line);
  border-radius:12px;
  background:var(--soft-bg);
}
.duplicate-merge-form>strong{
  align-self:center;
  color:var(--headline);
}
.duplicate-merge-form label{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:.84rem;
  color:#475569;
}
.duplicate-merge-form select{
  min-width:180px;
}
.duplicate-merge-check{
  flex-direction:row!important;
  align-items:center;
  gap:6px!important;
  color:#334155!important;
}
@media(max-width:1050px){
  .duplicate-merge-form{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:680px){
  .duplicate-merge-form{
    grid-template-columns:1fr;
  }
  .duplicate-merge-form select{
    min-width:0;
    width:100%;
  }
}


/* V3.2.7: Baustoffbibliothek aufräumen */
.cleanup-info{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
}
.cleanup-info h2{
  margin:0 0 6px;
}
.cleanup-info p{
  margin:0;
  color:#475569;
  max-width:820px;
}
.cleanup-info form{
  margin:0;
}
.cleanup-info button[disabled]{
  opacity:.55;
  cursor:not-allowed;
}
.cleanup-table td{
  vertical-align:top;
}
@media(max-width:760px){
  .cleanup-info{
    align-items:flex-start;
  }
}


/* V3.2.9: Änderungsprotokoll */
.change-log-table{
  width:100%;
  border-collapse:collapse;
}
.change-log-table th,
.change-log-table td{
  padding:10px 12px;
  border-bottom:1px solid #e2e8f0;
  vertical-align:top;
  text-align:left;
}
.change-log-table th{
  color:#475569;
  font-size:.82rem;
  background:var(--soft-bg);
}
.change-action{
  display:inline-flex;
  border-radius:999px;
  background:#e0f2fe;
  color:#075985;
  padding:4px 9px;
  font-size:.78rem;
  font-weight:800;
}
/* BMC 022.87 (RC1-Punkt 18): Farbcodierung der Aktion nach change_log_action_kind() -
   .change-action bleibt die Basis (Form/Groesse), die Kind-Klasse liefert nur die Farbe. */
.change-action--create{
  background:#dcfce7;
  color:#166534;
}
.change-action--update{
  background:#e0f2fe;
  color:#075985;
}
.change-action--delete{
  background:#fee2e2;
  color:#991b1b;
}
.change-action--auth{
  background:#ede9fe;
  color:#5b21b6;
}
.change-details summary{
  cursor:pointer;
  color:var(--accent);
  font-weight:700;
}
.change-details pre{
  max-width:520px;
  overflow:auto;
  border:1px solid var(--soft-line);
  border-radius:10px;
  background:var(--soft-bg);
  padding:10px;
  white-space:pre-wrap;
}


/* V3.3.0: Protokoll filtern/exportieren */
.change-log-filter{
  display:grid;
  grid-template-columns:2fr 1fr 150px 150px auto auto;
  gap:10px;
  align-items:end;
}
.change-log-filter label{
  display:flex;
  flex-direction:column;
  gap:4px;
  color:#475569;
  font-size:.84rem;
}
.change-log-summary{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.change-log-summary>div{
  min-width:150px;
  border:1px solid var(--soft-line);
  border-radius:12px;
  background:var(--soft-bg);
  padding:10px 12px;
}
.change-log-summary span,
.change-log-summary small{
  display:block;
  color:var(--muted-2);
}
.change-log-summary strong{
  display:block;
  font-size:1.25rem;
  margin:2px 0;
  color:var(--headline);
}
@media(max-width:960px){
  .change-log-filter{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:620px){
  .change-log-filter{
    grid-template-columns:1fr;
  }
}


/* V3.3.1: Systemstatus */
.system-summary.material-summary-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.system-check-table{
  width:100%;
  border-collapse:collapse;
}
.system-check-table th,
.system-check-table td{
  padding:10px 12px;
  border-bottom:1px solid #e2e8f0;
  text-align:left;
  vertical-align:top;
}
.system-check-table th{
  color:#475569;
  font-size:.82rem;
  background:var(--soft-bg);
}
.system-check{
  display:inline-flex;
  border-radius:999px;
  padding:4px 9px;
  font-size:.78rem;
  font-weight:800;
}
.system-check.ok{
  color:#166534;
  background:#dcfce7;
  border:1px solid #bbf7d0;
}
.system-check.warn{
  color:#92400e;
  background:#fef3c7;
  border:1px solid #fde68a;
}
.system-maintenance p{
  color:#475569;
}
.alert.warning{
  border:1px solid #fde68a;
  background:#fef3c7;
  color:#92400e;
}
@media(max-width:860px){
  .system-summary.material-summary-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:560px){
  .system-summary.material-summary-grid{
    grid-template-columns:1fr;
  }
}


/* V3.3.2: JSON-Datensicherung */
.system-backup-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}
.system-backup-card h2{
  margin:0 0 6px;
}
.system-backup-card p{
  margin:0;
  max-width:820px;
  color:#475569;
}
@media(max-width:720px){
  .system-backup-card{
    align-items:flex-start;
  }
}


/* V3.3.3: Bauteil-JSON-Export */
.toolbar .toolbar-actions a{
  white-space:nowrap;
}


/* V3.3.5: Benutzerrollen */
.users-table{
  width:100%;
  border-collapse:collapse;
}
.users-table th,
.users-table td{
  padding:10px 12px;
  border-bottom:1px solid #e2e8f0;
  text-align:left;
}
.role-badge,
.user-self-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:4px 9px;
  font-size:.76rem;
  font-weight:800;
}
.role-admin{
  background:#dbeafe;
  color:#1e40af;
  border:1px solid #bfdbfe;
}
.role-editor{
  background:#dcfce7;
  color:#166534;
  border:1px solid #bbf7d0;
}
.user-self-badge{
  margin-left:8px;
  background:var(--soft-bg-2);
  color:#475569;
  border:1px solid #cbd5e1;
}
.role-info p{
  color:#475569;
  margin:.35rem 0;
}


/* V3.3.6: Rollenabhängiges Menü */
.nav-role{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:4px 9px;
  font-size:.74rem;
  font-weight:800;
  background:var(--soft-bg-2);
  color:#475569;
  border:1px solid #cbd5e1;
}
.nav-role-admin{
  background:#dbeafe;
  color:#1e40af;
  border-color:#bfdbfe;
}
.nav-role-editor{
  background:#dcfce7;
  color:#166534;
  border-color:#bbf7d0;
}


/* V3.3.7: Mein Konto */
.account-card{
  display:grid;
  gap:18px;
}
.account-profile-head{
  display:flex;
  gap:14px;
  align-items:center;
  border-bottom:1px solid #e2e8f0;
  padding-bottom:14px;
}
.account-avatar{
  width:54px;
  height:54px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:var(--ink);
  color:#fff;
  font-size:1.5rem;
  font-weight:900;
}
.account-profile-head h2{
  margin:0 0 4px;
}
.account-profile-head p{
  margin:0;
  color:var(--muted-2);
}
.account-form .form-section-title{
  margin-top:4px;
}


/* V3.3.8: Benutzer aktiv/inaktiv */
.user-status-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:4px 9px;
  font-size:.76rem;
  font-weight:800;
}
.user-status-badge.active{
  background:#dcfce7;
  color:#166534;
  border:1px solid #bbf7d0;
}
.user-status-badge.inactive{
  background:#fee2e2;
  color:#991b1b;
  border:1px solid #fecaca;
}
.user-inactive-row{
  opacity:.72;
}
.user-inactive-row td{
  background:var(--soft-bg);
}


/* V3.3.9: Letzte Anmeldung */
.account-last-login{
  margin:.35rem 0 0;
  color:var(--muted-2);
  font-size:.9rem;
}
.users-table .muted{
  color:#94a3b8;
}


/* V3.4.0: Protokoll mit Benutzerbezug */
.change-log-table .muted{
  color:#94a3b8;
}


/* V3.4.1: Protokoll-Auswertung */
.log-activity-board{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)) 1.3fr 1.3fr;
  gap:12px;
  align-items:stretch;
}
.log-stat{
  border:1px solid #e2e8f0;
  background:var(--soft-bg);
  border-radius:14px;
  padding:12px;
}
.log-stat span{
  display:block;
  color:var(--muted-2);
  font-size:.82rem;
  font-weight:800;
  margin-bottom:4px;
}
.log-stat strong{
  font-size:1.55rem;
  color:var(--headline);
}
.log-stat small{
  color:var(--muted-2);
}
.log-stat ul{
  margin:6px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:4px;
}
.log-stat li{
  color:#475569;
  font-size:.88rem;
}
.log-stat li strong{
  font-size:.95rem;
  color:var(--ink);
  margin-right:6px;
}
@media(max-width:1100px){
  .log-activity-board{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:620px){
  .log-activity-board{
    grid-template-columns:1fr;
  }
}


/* BMC 022.89: Protokollgroesse-Karte (Kuerzen/Archivieren/Wiederherstellen) im Admincenter-Protokoll */
.change-log-size-card{}
.change-log-size-head{
  margin-bottom:14px;
}
.change-log-size-head p.small{
  margin:4px 0 0;
  color:var(--muted-2);
  font-size:.88rem;
}
.change-log-size-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:14px;
}
.change-log-size-grid>div{
  border:1px solid #e2e8f0;
  background:var(--soft-bg);
  border-radius:14px;
  padding:12px;
}
.change-log-size-grid span{
  display:block;
  color:var(--muted-2);
  font-size:.82rem;
  font-weight:800;
  margin-bottom:4px;
}
.change-log-size-grid strong{
  font-size:1.55rem;
  color:var(--headline);
  margin-right:8px;
}
.change-log-size-grid small{
  color:var(--muted-2);
}
.change-log-size-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
}
.change-log-size-actions form{
  margin:0;
}
@media(max-width:620px){
  .change-log-size-grid{
    grid-template-columns:1fr;
  }
}


/* V3.4.2: Protokoll-Objektlinks */
.change-object-link{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:3px 8px;
  background:#eff6ff;
  border:1px solid #bfdbfe;
  color:#1d4ed8;
  font-weight:800;
  text-decoration:none;
  font-size:.82rem;
}
.change-object-link:hover{
  background:#dbeafe;
}


/* V3.4.3: Letzte Änderungen am Objekt */
.recent-changes-card{
  margin-bottom:18px;
}
.recent-changes-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin-bottom:8px;
}
.recent-changes-head h2{
  margin:0;
}
.recent-changes-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:8px;
}
.recent-changes-list li{
  display:flex;
  justify-content:space-between;
  gap:12px;
  border:1px solid #e2e8f0;
  background:var(--soft-bg);
  border-radius:12px;
  padding:9px 11px;
}
.recent-changes-list strong{
  display:block;
  color:var(--headline);
}
.recent-changes-list span{
  display:block;
  color:#475569;
  font-size:.88rem;
}
.recent-changes-list small{
  color:var(--muted-2);
  white-space:nowrap;
}
@media(max-width:720px){
  .recent-changes-list li{
    display:block;
  }
  .recent-changes-list small{
    display:block;
    margin-top:4px;
  }
}


/* V3.4.4: Protokoll Objekt-ID Filter */
.change-log-filter input[type="number"]{
  min-width:110px;
}


/* V3.4.5: Dashboard Arbeitsübersicht */
.dashboard-activity{
  margin-bottom:18px;
}
.dashboard-activity-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:12px;
}
.dashboard-activity-head h2{
  margin:0 0 4px;
}
.dashboard-activity-head p{
  margin:0;
  color:var(--muted-2);
}
.dashboard-stat-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:12px;
}
.dashboard-stat{
  border:1px solid #e2e8f0;
  background:var(--soft-bg);
  border-radius:14px;
  padding:12px;
}
.dashboard-stat span{
  display:block;
  color:var(--muted-2);
  font-size:.82rem;
  font-weight:800;
  margin-bottom:4px;
}
.dashboard-stat strong{
  color:var(--headline);
  font-size:1.45rem;
}
.dashboard-change-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}
.dashboard-change-list li{
  display:flex;
  justify-content:space-between;
  gap:12px;
  border-top:1px solid #e2e8f0;
  padding-top:8px;
}
.dashboard-change-list strong{
  display:block;
  color:var(--headline);
}
.dashboard-change-list span{
  display:block;
  color:#475569;
  font-size:.88rem;
}
.dashboard-change-list small{
  color:var(--muted-2);
  white-space:nowrap;
}
.dashboard-change-list a{
  color:#1d4ed8;
  font-weight:800;
  text-decoration:none;
}
@media(max-width:820px){
  .dashboard-stat-grid{
    grid-template-columns:1fr;
  }
  .dashboard-change-list li{
    display:block;
  }
  .dashboard-change-list small{
    display:block;
    margin-top:4px;
    white-space:normal;
  }
}

/* BMC 022.81 (Nutzerauftrag 25.07.2026, RC1-Startseite): Schnelleinstiege und
   "zuletzt bearbeitete Projekte" auf der neuen Startseite (`case 'dashboard':`) - orientiert
   sich optisch an den bestehenden .dashboard-*-Regeln oben (Arbeitsuebersicht, BMC 021.xx). */
.dashboard-quicklinks{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:10px;
  margin-bottom:18px;
}
.dashboard-quicklink{
  display:block;
  border:1px solid #e2e8f0;
  background:var(--soft-bg);
  border-radius:14px;
  padding:14px 16px;
  text-decoration:none;
  color:inherit;
  transition:border-color .15s ease,background .15s ease;
}
.dashboard-quicklink:hover{
  border-color:var(--accent);
  background:#eaf3fb;
}
.dashboard-quicklink strong{
  display:block;
  color:var(--headline);
  font-size:1.05rem;
  margin-bottom:2px;
}
.dashboard-quicklink small{
  display:block;
  color:var(--muted-2);
}
.dashboard-recent-projects{
  margin-bottom:18px;
}
.dashboard-recent-projects h2{
  margin:0 0 12px;
}
.dashboard-project-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}
.dashboard-project-list li{
  border-top:1px solid #e2e8f0;
  padding-top:8px;
}
.dashboard-project-list a{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:baseline;
  color:inherit;
  text-decoration:none;
}
.dashboard-project-list strong{
  color:var(--headline);
}
.dashboard-project-list small{
  color:var(--muted-2);
  white-space:nowrap;
}
@media(max-width:820px){
  .dashboard-project-list a{
    display:block;
  }
  .dashboard-project-list small{
    display:block;
    margin-top:2px;
  }
}

/* V3.5.0 – Bauteilvergleich und Ökobilanz / CO2 */
.lca-summary-card{border-left:4px solid #2f855a}.lca-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.lca-card-head h2{margin:0 0 4px}.lca-card-head p{margin:0;color:var(--muted-2)}.lca-coverage{display:inline-block;padding:5px 10px;border-radius:999px;font-weight:700;font-size:12px;white-space:nowrap}.lca-coverage-ok{background:#dcfce7;color:#166534}.lca-coverage-warn{background:#fef3c7;color:#92400e}.lca-coverage-bad{background:#fee2e2;color:#991b1b}.lca-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lca-kpi-grid>div{background:var(--soft-bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.lca-kpi-grid span{display:block;color:var(--muted-2);font-size:12px;margin-bottom:4px}.lca-kpi-grid strong{display:block;color:var(--ink);font-size:16px}.lca-warning{margin:12px 0 0;padding:10px 12px;border-radius:9px;background:#fff7ed;color:#9a3412}.lca-method-note{margin:12px 0 0;color:var(--muted-2);font-size:12px;line-height:1.45}.print-lca-section .lca-summary-card{border:0;box-shadow:none;padding:0}.print-lca-section .lca-card-head h2{display:none}
.compare-selector{display:grid;grid-template-columns:minmax(260px,1fr) 46px minmax(260px,1fr) auto;gap:14px;align-items:end}.compare-selector label{font-weight:700}.compare-selector select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #bdc9d8;border-radius:7px;background:#fff}.compare-vs{font-size:24px;text-align:center;padding-bottom:9px;color:var(--ink)}.compare-empty{padding:48px;text-align:center}.compare-report{max-width:1400px;margin:0 auto}.compare-report-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:20px 0}.compare-report-head span{font-size:12px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.06em}.compare-report-head h1{margin:5px 0 0;color:var(--ink)}.compare-report-head h1 small{font-size:.55em;color:var(--muted-2);font-weight:400;margin:0 8px}.compare-component-heads,.compare-two-col,.compare-lca-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.compare-component-heads{margin-bottom:18px}.compare-component-heads>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.compare-component-heads span{display:block;font-size:12px;font-weight:700;text-transform:uppercase;color:var(--muted-2)}.compare-component-heads h2{margin:5px 0}.compare-component-heads p{margin:0 0 6px;color:var(--muted-2)}.compare-metrics th:first-child{min-width:190px}.compare-metrics td,.compare-metrics th{vertical-align:middle}.compare-metrics tbody tr.compare-a-better{background:#f0fdf4}.compare-metrics tbody tr.compare-b-better{background:#eff6ff}.compare-metrics tbody tr.compare-neutral{background:#fff}.compare-lca-grid{margin-bottom:18px}.compare-lca-grid .card{margin:0}.compare-co2-value{font-size:28px;font-weight:800;color:var(--ink);margin:10px 0}.co2-bar-track{height:14px;background:#e2e8f0;border-radius:999px;overflow:hidden}.co2-bar{height:100%;background:#b45309;border-radius:999px}.co2-bar.negative{background:#15803d}.compare-conclusion{text-align:center}.compare-conclusion strong{font-size:30px;color:var(--ink)}.compare-conclusion p{margin-bottom:0}.compare-two-col>div>.card,.compare-layers>.card{height:100%;margin:0}.compare-layers small{display:block;color:var(--muted-2);margin-top:3px}.compare-print-footer{margin-top:24px;border-top:1px solid var(--line);padding-top:10px;color:var(--muted-2);font-size:12px}
/* BMC 022.140 - Feuchteschutz-Kachel entfernt (dazugehoerige .compare-moisture-Regel war nur fuer
   diese Kachel da, jetzt totes CSS und entfernt). Neuer druckbarer Weg ohne zweiten Tab: ein
   einziger Button ruft compareReportPrint() auf derselben Seite auf; .print-only zeigt Inhalte,
   die nur im Ausdruck/PDF erscheinen sollen (z. B. den Fusszeilen-Hinweis), auf dem Bildschirm
   aber nicht. */
.print-only{display:none}
@media print{.print-only{display:block}}
@media(max-width:900px){.compare-selector{grid-template-columns:1fr}.compare-vs{transform:rotate(90deg);padding:0}.compare-component-heads,.compare-two-col,.compare-lca-grid{grid-template-columns:1fr}.lca-card-head{flex-direction:column}.lca-kpi-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.lca-kpi-grid{grid-template-columns:1fr}.compare-report-head{flex-direction:column}}
/* BMC 022.141 - Vergleichsbalken je Kennwert-Zeile ("lass uns grafiken einbauen das macht es
   anschaulicher"). Farben Blau (A) / Orange (B) mit dem dataviz-Skill-Validierungsscript geprueft
   (CVD-sicher unterscheidbar, kontrastsicher) - bewusst NICHT die bestehenden Akzentfarben der
   App, da deren Orange im Kontrast-Check gewarnt hatte. Eigener Massstab je ZEILE, Zeilen sind
   untereinander nicht vergleichbar (siehe Kommentar bei compare_metric_row() in functions.php).
   Die bestehende Gruen/Blau-Zeilenfarbe fuer "Vorteil" bleibt zusaetzlich als Zeilenhintergrund
   erhalten, wird durch die Balken nicht ersetzt. */
.compare-bar-legend{display:flex;align-items:center;gap:18px;margin:0 0 12px;font-size:13px;color:var(--ink)}
.compare-bar-legend span{display:inline-flex;align-items:center;gap:6px}
.compare-bar-swatch{width:12px;height:12px;border-radius:3px;display:inline-block}
.compare-bar-swatch.a{background:#2a78d6}
.compare-bar-swatch.b{background:#eb6834}
.compare-metrics td .compare-bar-track{display:block;height:7px;background:#eef2f7;border-radius:4px;overflow:hidden;margin-bottom:3px}
.compare-metrics td .compare-bar-fill{display:block;height:100%;border-radius:4px}
.compare-metrics td .compare-bar-fill.a{background:#2a78d6}
.compare-metrics td .compare-bar-fill.b{background:#eb6834}
@media print{.compare-bar-track{background:#eef2f7 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.compare-bar-fill.a{background:#2a78d6 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.compare-bar-fill.b{background:#eb6834 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
@media print{body.compare-print{background:#fff}.compare-print .compare-report{max-width:none}.compare-print .compare-report-head{margin-top:0}.compare-print .card,.compare-print .compare-component-heads>div{box-shadow:none;break-inside:avoid}.compare-print .compare-two-col,.compare-print .compare-lca-grid,.compare-print .compare-component-heads{break-inside:avoid}.compare-print .compare-layers{break-inside:auto}.compare-print .compare-layers>.card{break-inside:avoid}.compare-print .lca-summary-card{border:1px solid var(--line);padding:14px}.compare-print .container{max-width:none;margin:0;padding:0}}

/* v3.5.4 Security: POST-Aktionen in Tabellen */
.inline-form{display:inline-block;margin:0 0 0 4px}.inline-form button{margin:0}


/* v3.5.5 – QNG-Zuordnungsvorschläge */
.qng-suggestion-panel{border:1px solid var(--line);border-radius:12px;background:var(--soft-bg);padding:14px}
.qng-suggestion-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:10px}
.qng-suggestion-head strong,.qng-suggestion-head small{display:block}.qng-suggestion-head small{margin-top:4px;color:var(--muted-2);font-weight:400}
.qng-suggestion-list{display:grid;gap:8px}.qng-suggestion-item{display:flex;justify-content:space-between;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.qng-suggestion-item strong,.qng-suggestion-item small,.qng-suggestion-item span{display:block}.qng-suggestion-item small{color:var(--muted-2);margin-top:3px}.qng-suggestion-item span{margin-top:5px;font-size:13px}
.qng-suggestion-action{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.qng-official-badge{display:inline-block!important;padding:3px 8px;border-radius:999px;background:#dcfce7;color:#166534;font-size:11px!important;font-weight:700;white-space:nowrap}
@media(max-width:800px){.qng-suggestion-head,.qng-suggestion-item{flex-direction:column;align-items:stretch}.qng-suggestion-action{justify-content:flex-start}}
/* v3.5.6 – projektbezogene LCA-Datenquellen */
.lca-source-values{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--soft-bg)}.lca-source-values h4{margin:0 0 10px}.lca-source-info{border-left:4px solid var(--ink)}

/* v3.5.7 – LCA-Transparenz und Quellenprüfung */
.material-lca-cell{min-width:155px}.lca-source-badges{display:flex;gap:5px;flex-wrap:wrap}.lca-source-badge{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:26px;padding:0 7px;border-radius:999px;font-size:11px;font-weight:800;border:1px solid var(--line)}.lca-source-badge.available{background:#dcfce7;color:#166534;border-color:#bbf7d0}.lca-source-badge.missing{background:var(--soft-bg-2);color:#94a3b8;border-color:#e2e8f0;text-decoration:line-through}.lca-missing-note{display:block;margin-top:6px;color:#b42318;font-weight:700}.component-lca-status{display:flex;align-items:center;justify-content:space-between;gap:18px;border-left:5px solid #16a34a}.component-lca-status.has-warning{border-left-color:#d97706;background:#fffbeb}.component-lca-status>div{display:flex;flex-direction:column;gap:4px}.component-lca-status span,.component-lca-status small{color:var(--muted-2)}.component-lca-status.has-warning small{color:#92400e;font-weight:700}.lca-copy-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.lca-copy-form label{font-weight:700;font-size:13px}.lca-copy-form select{display:block;min-width:180px;margin-top:5px;padding:9px;border:1px solid #bdc9d8;border-radius:7px;background:#fff}@media(max-width:900px){.component-lca-status{align-items:flex-start;flex-direction:column}.lca-copy-form{width:100%}.lca-copy-form label{flex:1}.lca-copy-form select{width:100%}}


/* BMC 022.100 – kleine QNG-Anzeige neben der bestehenden "Aktive LCA-Quelle"-Karte
   (Nutzerauftrag 26.07.2026: ÖKOBAUDAT deaktiviert, Projektstandard faellt auf QNG zurueck) */
.component-lca-status-row{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}
.component-lca-status-row .component-lca-status{flex:1;min-width:0}
.component-lca-qng-badge{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;padding:4px 11px;border-radius:999px;background:#dcfce7;color:#166534;font-size:12px;font-weight:800;border:1px solid #bbf7d0;white-space:nowrap}
@media(max-width:900px){.component-lca-status-row{flex-direction:column;align-items:stretch}}

/* v3.6.0 – Ökobilanz nach Modulen A1–A3 / C3 / C4 / D1 */
.lca-module-table{width:100%;border-collapse:collapse}
.lca-module-table th,.lca-module-table td{padding:6px 10px;border-bottom:1px solid #e2e8f0}
.lca-module-table thead th{text-align:right;font-size:.82rem;color:#475569;font-weight:600}
.lca-module-table thead th:first-child{text-align:left}
.lca-module-table tbody th{text-align:left;font-weight:600;white-space:nowrap}
.lca-module-table td{text-align:right;font-variant-numeric:tabular-nums}
.lca-module-table td.lca-na{opacity:.45}
.lca-nodata{color:#94a3b8}

/* v3.7.20 - prueffaehige LCA-Detaildokumentation */
.lca-detail-heading{margin-top:18px}.lca-detail-heading h3{margin:0 0 3px}.lca-detail-heading p{margin:0;color:var(--muted,var(--muted-2));font-size:.9rem}.lca-detail-table{font-size:.86rem;min-width:1120px}.lca-detail-table th{white-space:nowrap}.lca-detail-table td{vertical-align:top}.lca-detail-table td strong,.lca-detail-table td small{display:block}.lca-detail-table td small{margin-top:3px;color:var(--muted,var(--muted-2));line-height:1.25}.lca-detail-table td:nth-last-child(-n+4){text-align:right;white-space:nowrap}@media print{.lca-detail-wrap{overflow:visible!important}.lca-detail-table{min-width:0!important;width:100%;font-size:7.5pt;table-layout:fixed}.lca-detail-table th,.lca-detail-table td{padding:4px 3px;word-break:break-word}.lca-detail-table td:nth-last-child(-n+4){white-space:normal}.lca-detail-heading{break-before:auto;page-break-inside:avoid}.lca-detail-table tr{break-inside:avoid;page-break-inside:avoid}}

/* V3.7.24 – stabile Dialoge und Schichttabelle ohne interne Scrollleiste */
.layers-table-wrap-fixed{
  overflow:visible !important;
  max-width:none !important;
}
.layers-table-fixed{
  display:table !important;
  width:100% !important;
  min-width:0 !important;
  table-layout:fixed;
  font-size:12.5px;
}
.layers-table-fixed th,
.layers-table-fixed td{
  padding:8px 5px;
  vertical-align:top;
}
.layers-table-fixed .col-pos{width:28px}
.layers-table-fixed .col-material{width:auto}
.layers-table-fixed .col-share{width:58px}
.layers-table-fixed .col-thickness{width:68px}
.layers-table-fixed .col-lambda{width:50px}
.layers-table-fixed .col-r{width:50px}
.layers-table-fixed .col-mass{width:72px}
.layers-table-fixed .col-flags{width:54px}
.layers-table-fixed .col-actions{width:104px}
.layers-table-fixed .layer-material-cell{
  min-width:0;
  overflow:hidden;
}
.layers-table-fixed .layer-path-line,
.layers-table-fixed .layer-path-value{
  min-height:30px;
  display:flex;
  align-items:flex-start;
  line-height:1.25;
}
.layers-table-fixed .layer-path-line{
  flex-direction:column;
  justify-content:flex-start;
  min-width:0;
}
.layers-table-fixed .layer-path-line strong{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.layers-table-fixed .layer-path-label{
  display:block;
  margin-top:2px;
  color:var(--muted-2);
  line-height:1.15;
  white-space:nowrap;
}
/* BMC 022.101 (Nutzerauftrag 26.07.2026 "keine Anzeige, dass kein QNG zugeordnet ist - rechnet
   dennoch!"): deutlich sichtbarer Warnhinweis direkt in der Baustoff-Zelle der Schichtzeile,
   zusaetzlich zum bisherigen roten LCA-Knopf (dessen Tooltip allein zu leicht uebersehen wurde). */
.layer-lca-missing-inline{
  display:block;
  margin-top:4px;
  padding:2px 6px;
  border-radius:6px;
  background:#fff1f2;
  color:#b91c1c;
  font-size:.72rem;
  font-weight:700;
  line-height:1.3;
  white-space:normal;
}
.layers-table-fixed .layer-value-cell{
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.layers-table-fixed .layer-path-value{
  justify-content:flex-start;
  white-space:nowrap;
}
.layers-table-fixed .layer-flags-cell{
  text-align:center;
}
.layers-table-fixed .layer-flags{
  display:flex;
  min-height:30px;
  align-items:flex-start;
  justify-content:center;
  gap:3px;
  flex-wrap:wrap;
}
.layers-table-fixed .layer-actions{
  min-width:0;
  width:auto;
  white-space:nowrap;
  text-align:right;
}
@media(max-width:800px){
  .layers-table-wrap-fixed{overflow:visible !important}
  .layers-table-fixed{display:table !important;overflow:visible !important;font-size:11.5px}
  .layers-table-fixed th,.layers-table-fixed td{padding-left:3px;padding-right:3px}
}


/* V3.7.31: Baustoffuebersicht ohne Kennwert- und Schraffurdetails */
.material-table-wrap .material-table{min-width:0}
.material-table-wrap .material-preview-cell{width:132px}
.material-table-wrap .material-name-cell{min-width:310px}
.material-table-wrap .material-quality-cell{min-width:105px}
.material-table-wrap .material-lca-cell{min-width:118px}
.material-table-wrap .material-actions{min-width:250px}
@media(max-width:1100px){.material-table-wrap{overflow-x:auto}.material-table-wrap .material-table{min-width:980px}}


/* V3.7.32: Aktionsbuttons in der Baustoffübersicht sauber ausrichten */
.material-table-wrap .material-actions-head{
  width:210px;
  min-width:210px;
  text-align:center;
}
.material-table-wrap .material-actions{
  width:210px;
  min-width:210px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  align-content:center;
  white-space:normal;
}
.material-table-wrap .material-actions .button,
.material-table-wrap .material-actions button{
  width:100%;
  min-width:0;
  margin:0;
  padding:7px 8px;
  text-align:center;
  white-space:nowrap;
}
.material-table-wrap .material-action-form{
  display:block;
  margin:0;
}
@media(max-width:1050px){
  .material-table-wrap .material-actions-head,
  .material-table-wrap .material-actions{
    width:180px;
    min-width:180px;
  }
  .material-table-wrap .material-actions{
    grid-template-columns:1fr;
  }
}

/* V3.7.68 – Prüferrollen und Ticketsystem */
.ticket-create-link{padding:7px 10px;border-radius:8px;background:#fff7ed;color:#9a3412!important;border:1px solid #fdba74}
.ticket-dashboard-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.ticket-dashboard-head h2{margin:0}.ticket-dashboard-head p{margin:4px 0 0;color:var(--muted-2)}
.ticket-list{display:grid;gap:8px;margin-top:14px}.ticket-list-item{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit;background:#fbfdff}.ticket-list-item:hover{background:var(--soft-bg-2)}.ticket-list-item span:first-child{display:flex;flex-direction:column;gap:3px}.ticket-list-item small{color:var(--muted-2)}
.ticket-status{display:inline-flex;padding:4px 9px;border-radius:999px;background:#e2e8f0;color:#334155;font-weight:700;font-size:.78rem;white-space:nowrap}.ticket-status-neu{background:#fee2e2;color:#991b1b}.ticket-status-rueckfrage{background:#fef3c7;color:#92400e}.ticket-status-in-bearbeitung{background:#dbeafe;color:#1d4ed8}.ticket-status-erledigt{background:#dcfce7;color:#166534}
.ticket-context-box{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid #cbd5e1;border-radius:10px;background:var(--soft-bg)}.ticket-context-box code,.ticket-detail code{overflow-wrap:anywhere}
.ticket-meta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:14px}.ticket-meta span{padding:7px 10px;border-radius:8px;background:var(--soft-bg-2);color:#475569}
.ticket-status-form{display:flex;gap:12px;align-items:end}.ticket-status-form label{min-width:240px}.ticket-status-form select{width:100%;margin-top:6px;padding:10px;border:1px solid #bdc9d8;border-radius:7px}
.ticket-comments{display:grid;gap:10px;margin-bottom:16px}.ticket-comments article{padding:12px;border:1px solid var(--line);border-radius:10px;background:#fbfdff}.ticket-comments header{display:flex;justify-content:space-between;gap:12px}.ticket-comments time{color:var(--muted-2);font-size:.82rem}.ticket-comments p{margin-bottom:0}
.role-reviewer_fire,.role-reviewer_thermal,.role-reviewer_lca,.role-reviewer_acoustic{background:#ede9fe;color:#5b21b6}
@media(max-width:800px){.ticket-status-form,.ticket-dashboard-head,.ticket-list-item{align-items:stretch;flex-direction:column}.ticket-status-form label{min-width:0}}


/* V3.7.69: Letzte Änderungen auf allen Objektseiten standardmäßig eingeklappt */
.recent-changes-collapsible{
  padding:0;
  overflow:hidden;
}
.recent-changes-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:15px 18px;
  cursor:pointer;
  list-style:none;
  user-select:none;
  background:#fff;
}
.recent-changes-summary::-webkit-details-marker{display:none}
.recent-changes-summary>span{
  display:flex;
  align-items:baseline;
  gap:10px;
}
.recent-changes-summary strong{
  color:var(--headline);
  font-size:1.05rem;
}
.recent-changes-summary small{
  color:var(--muted-2);
  font-weight:500;
}
.recent-changes-summary::after{
  content:'›';
  display:inline-grid;
  place-items:center;
  width:26px;
  height:26px;
  border:1px solid #cbd5e1;
  border-radius:7px;
  color:#475569;
  font-size:20px;
  line-height:1;
  transition:transform .16s ease;
}
.recent-changes-collapsible[open] .recent-changes-summary::after{
  transform:rotate(90deg);
}
.recent-changes-collapsible[open] .recent-changes-summary{
  border-bottom:1px solid #e2e8f0;
  background:var(--soft-bg);
}
.recent-changes-body{
  padding:12px 18px 18px;
}
.recent-changes-body .recent-changes-head{
  margin-bottom:10px;
}


/* V3.7.70 – zuschaltbare Admin-Ticketfunktion */
.ticket-self-assign{padding:12px 14px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;color:#1e3a5f}
.ticket-self-assign input{width:auto;margin:0}

/* V3.7.76 – Ticket-Screenshot mit Markierungswerkzeugen */
.ticket-screenshot-editor{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--soft-bg)}
.ticket-screenshot-head{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap}
.ticket-screenshot-head strong{display:block;color:var(--ink)}
.ticket-screenshot-head small{display:block;margin-top:4px;color:var(--muted-2)}
.ticket-screenshot-actions,.ticket-drawing-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ticket-upload-button{display:inline-flex;align-items:center;cursor:pointer}
.ticket-upload-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.ticket-drawing-tools{margin-top:12px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.ticket-drawing-tools button{padding:8px 11px}
.ticket-drawing-tools button.active{background:#2563eb;color:#fff}
.ticket-drawing-tools label{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700}
.ticket-drawing-tools input[type=color]{width:36px;height:30px;padding:2px;border:1px solid #bdc9d8;border-radius:6px}
.ticket-drawing-tools input[type=range]{width:110px}
.ticket-canvas-wrap{margin-top:12px;overflow:auto;border:1px solid #94a3b8;border-radius:10px;background:var(--headline);padding:8px}
.ticket-canvas-wrap canvas{display:block;max-width:100%;height:auto;margin:auto;background:#fff;cursor:crosshair;touch-action:none}
.ticket-screenshot-status{margin:10px 0 0;color:var(--muted-2);font-size:13px}
.ticket-screenshot-view{margin:18px 0 0}
.ticket-screenshot-view img{display:block;max-width:100%;height:auto;border:1px solid #cbd5e1;border-radius:10px;background:#fff}
.ticket-screenshot-view figcaption{margin-top:6px;color:var(--muted-2);font-size:12px}
@media(max-width:700px){.ticket-screenshot-head{align-items:flex-start;flex-direction:column}.ticket-screenshot-actions{width:100%}.ticket-screenshot-actions .button{flex:1;text-align:center}.ticket-drawing-tools{align-items:flex-start}}


/* V3.7.78 – intuitiver Prüfhinweis mit Aufnahme vor dem Seitenwechsel */
.ticket-capture-busy{pointer-events:none;opacity:.72;cursor:wait!important}


/* V3.7.79: Schichten direkt anklicken und intuitiv verschieben */
.layer-row-interactive{cursor:grab;transition:background .15s ease,box-shadow .15s ease,transform .15s ease}
.layer-row-interactive:hover{background:#f2f7fc!important;box-shadow:inset 4px 0 0 var(--accent)}
.layer-row-interactive:focus{outline:2px solid #7aa7d9;outline-offset:-2px;background:#eef6ff!important}
.layer-row-interactive:active{cursor:grabbing}
.layer-row-interactive .layer-material-cell strong{color:#163a5f}
.layer-row-interactive:hover .layer-material-cell strong{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.layer-row-interactive .drag-handle{opacity:.48;transition:opacity .15s ease,background .15s ease}
.layer-row-interactive:hover .drag-handle{opacity:1;background:#eaf3fb}
.is-layer-sorting .layer-row-interactive{cursor:grabbing}

/* V3.7.80 – fachliche LCA-Zuordnungsgruppen */

/* V3.7.82 – vereinfachte direkte QNG-Zuordnung */
.qng-simple-head{display:flex;justify-content:space-between;gap:20px;align-items:end}.qng-simple-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.qng-simple-filters label{min-width:190px;font-weight:700;font-size:13px}.qng-simple-filters input,.qng-simple-filters select{display:block;width:100%;margin-top:5px;padding:9px;border:1px solid #bdc9d8;border-radius:7px}.qng-simple-progress{min-width:210px}.qng-simple-progress strong,.qng-simple-progress span{display:block}.qng-simple-progress progress{width:100%;margin-top:8px}.qng-simple-workspace{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:20px;align-items:start}.qng-simple-materials{padding:0;max-height:76vh;overflow:auto}.qng-simple-list-title{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;padding:14px 16px;background:#fff;border-bottom:1px solid var(--line)}.qng-simple-material{display:flex;justify-content:space-between;gap:10px;padding:13px 15px;border-bottom:1px solid #edf1f5;text-decoration:none;color:#243447}.qng-simple-material:hover{background:#f7fafc}.qng-simple-material.active{background:#eaf3fb;border-left:4px solid var(--accent);padding-left:11px}.qng-simple-material strong,.qng-simple-material small{display:block}.qng-simple-material small{margin-top:4px;color:var(--muted-2)}.qng-simple-status{align-self:flex-start;border-radius:999px;padding:4px 8px;font-size:11px;font-style:normal;font-weight:800;white-space:nowrap}.qng-simple-status.open{background:#fff0d8;color:#8a5100}.qng-simple-status.deferred{background:var(--soft-bg-2);color:#475569}.qng-simple-status.assigned{background:#dcfce7;color:#166534}.qng-simple-detail{min-width:0}.qng-simple-target h2,.qng-simple-current h3{margin:5px 0 12px}.qng-simple-facts,.qng-simple-values{display:flex;gap:10px;flex-wrap:wrap}.qng-simple-facts span,.qng-simple-values span{background:var(--soft-bg);border:1px solid #e2e8f0;border-radius:9px;padding:8px 10px}.qng-simple-facts b,.qng-simple-values b{display:block;font-size:11px;color:var(--muted-2);margin-bottom:2px}.qng-simple-search{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.qng-simple-search label{font-weight:700}.qng-simple-search input{width:100%;margin-top:6px;padding:10px;border:1px solid #bdc9d8;border-radius:7px}.qng-simple-search .field-help{grid-column:1/-1;margin:0}.qng-simple-candidate{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,390px);gap:18px}.qng-simple-candidate-data>strong,.qng-simple-candidate-data>small{display:block}.qng-simple-candidate-data>small{margin:5px 0 12px;color:var(--muted-2)}.qng-simple-assign{display:flex;flex-direction:column;gap:9px;padding-left:18px;border-left:1px solid #e2e8f0}.qng-simple-assign textarea{width:100%;min-height:62px;margin-top:5px;padding:8px;border:1px solid #bdc9d8;border-radius:7px}.qng-simple-pause{display:flex;gap:10px}.qng-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-2);font-weight:800}@media(max-width:1000px){.qng-simple-workspace{grid-template-columns:1fr}.qng-simple-materials{max-height:420px}.qng-simple-candidate{grid-template-columns:1fr}.qng-simple-assign{padding-left:0;border-left:0;border-top:1px solid #e2e8f0;padding-top:14px}.qng-simple-head{align-items:stretch;flex-direction:column}.qng-simple-progress{min-width:0}}

/* V3.7.83 – Familien nur zur Übersicht, Zuordnung weiterhin je Baustoff */
.qng-family-group{border-bottom:1px solid #e5edf6}
.qng-family-group>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;background:var(--soft-bg);color:var(--headline)}
.qng-family-group>summary::-webkit-details-marker{display:none}
.qng-family-group>summary:after{content:'▾';color:var(--muted-2);transition:transform .15s ease}
.qng-family-group[open]>summary:after{transform:rotate(180deg)}
.qng-family-group>summary strong,.qng-family-group>summary small{display:block}
.qng-family-group>summary small{margin-top:3px;color:var(--muted-2);font-weight:400}
.qng-family-variants{padding:4px 0 8px;background:#fff}
.qng-family-variants .qng-simple-material{padding-left:22px}

/* V3.7.84: moderne Schichtaktionen; Bearbeiten erfolgt weiterhin per Zeilenklick */
.layers-table-fixed .col-actions{width:76px}
.layers-table-fixed .layer-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:6px;
}
.layer-action-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  padding:0;
  border:1px solid #d6e0eb;
  border-radius:9px;
  background:var(--soft-bg);
  color:#36546f;
  text-decoration:none;
  box-shadow:0 1px 2px rgba(15,23,42,.05);
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease;
}
.layer-action-button svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  pointer-events:none;
}
.layer-action-button:hover{
  transform:translateY(-1px);
  box-shadow:0 3px 8px rgba(15,23,42,.10);
}
.layer-action-button:focus-visible{
  outline:2px solid #7aa7d9;
  outline-offset:2px;
}
.layer-action-copy:hover{
  border-color:#9fc2df;
  background:#edf6fd;
  color:#185b91;
}
.layer-action-delete{
  border-color:#ead6d6;
  background:#fffafa;
  color:#a53a3a;
}
.layer-action-delete:hover{
  border-color:#e3a8a8;
  background:#fff0f0;
  color:#8f2020;
}

/* V3.7.85 – hierarchische Baustoffauswahl in der Schichtbearbeitung */
.material-hierarchy-ui{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:7px;padding:12px;border:1px solid #dbe3ec;border-radius:12px;background:var(--soft-bg)}
.material-hierarchy-ui label{display:grid;gap:5px;margin:0;font-size:.78rem;font-weight:800;color:#475569}
.material-hierarchy-ui select{width:100%;min-width:0;background:#fff}
.material-hierarchy-ui .material-hierarchy-variant{grid-column:1/-1}
.material-hierarchy-ui .material-hierarchy-summary{grid-column:1/-1;margin:0;padding:8px 10px;border-radius:8px;background:#eaf1f8;color:#17375e;font-size:.8rem;font-weight:700}
.material-hierarchy-ui.is-norm .material-hierarchy-maker-label,.material-hierarchy-ui.is-custom .material-hierarchy-maker-label{display:none}
.material-hierarchy-ui.is-manufacturer .material-hierarchy-maker-label span::after{content:'Hersteller'}
.material-hierarchy-ui .material-hierarchy-maker-label>span{font-size:0}
.material-hierarchy-ui .material-hierarchy-maker-label>span::after{font-size:.78rem}
.material-hierarchy-select.hierarchy-enhanced{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;clip-path:inset(50%)!important}
@media(max-width:720px){.material-hierarchy-ui{grid-template-columns:1fr}.material-hierarchy-ui .material-hierarchy-variant,.material-hierarchy-ui .material-hierarchy-summary{grid-column:1}}

/* V3.7.88 – moderne Baustoffauswahl mit Katalogbaum */
.material-catalog-picker{margin-top:8px;border:1px solid #d8e1eb;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 8px 24px rgba(15,23,42,.06)}
.material-catalog-tools{display:flex;gap:12px;align-items:end;padding:12px;background:#f6f8fb;border-bottom:1px solid #dde5ee}
.material-catalog-search{display:grid;gap:5px;flex:1;margin:0;font-size:.76rem;font-weight:800;color:#475569}.material-catalog-search input{width:100%;background:#fff}
.material-catalog-sources{display:flex;gap:6px;flex-wrap:wrap}.material-source-tab{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:9px;padding:8px 11px;font-weight:800;cursor:pointer}.material-source-tab.is-active{background:#17375e;border-color:#17375e;color:#fff}
.material-catalog-layout{display:grid;grid-template-columns:minmax(210px,.9fr) minmax(260px,1.15fr) minmax(230px,1fr);min-height:330px;max-height:520px}
.material-catalog-layout>section,.material-catalog-layout>aside{min-width:0;padding:12px;overflow:auto}.material-catalog-results-panel,.material-catalog-detail{border-left:1px solid #e2e8f0}
.material-catalog-layout h4{margin:0 0 10px;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:#526274}.material-catalog-result-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.material-catalog-count{font-size:.75rem;color:var(--muted-2)}
.material-tree-branch{margin-bottom:3px}.material-tree-children{margin-left:14px;border-left:1px solid #dbe3ec;padding-left:5px}.material-tree-node{display:flex;align-items:center;gap:5px;width:100%;border:0;background:transparent;text-align:left;padding:5px 6px;border-radius:7px;color:#334155;cursor:pointer;font-size:.81rem}.material-tree-node:hover{background:#eef3f8}.material-tree-node.is-active{background:#dfeaf5;color:#12365f;font-weight:800}.material-tree-chevron{width:12px;color:#789;flex:0 0 12px}.material-tree-node.level-0{font-weight:800}.material-tree-node.level-3{font-size:.77rem}
.material-catalog-results{display:grid;gap:6px}.material-result-item{display:grid;gap:3px;width:100%;text-align:left;border:1px solid #dce4ed;background:#fff;border-radius:9px;padding:9px 10px;cursor:pointer}.material-result-item:hover{border-color:#9bb4ce;background:var(--soft-bg)}.material-result-item.is-selected{border-color:#2f6fa8;background:#eaf3fb;box-shadow:inset 3px 0 0 #2f6fa8}.material-result-item strong{font-size:.82rem;color:#1e293b}.material-result-item span{font-size:.73rem;color:var(--muted-2)}
.material-catalog-detail dl{display:grid;gap:0;margin:0}.material-catalog-detail dl div{display:grid;grid-template-columns:minmax(95px,.8fr) minmax(0,1.2fr);gap:10px;padding:7px 0;border-bottom:1px solid #edf1f5}.material-catalog-detail dt{font-size:.72rem;font-weight:800;color:var(--muted-2)}.material-catalog-detail dd{margin:0;font-size:.77rem;color:#1e293b;overflow-wrap:anywhere}.material-catalog-empty{font-size:.78rem;color:var(--muted-2);margin:8px 0}
.material-catalog-footer{padding:9px 12px;background:#edf3f8;border-top:1px solid #d8e1eb;color:#17375e;font-size:.76rem;overflow-wrap:anywhere}.material-hierarchy-select.hierarchy-enhanced{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;clip-path:inset(50%)!important}
@media(max-width:1050px){.material-catalog-layout{grid-template-columns:minmax(190px,.8fr) minmax(250px,1.2fr)}.material-catalog-detail{grid-column:1/-1;border-left:0!important;border-top:1px solid #e2e8f0;max-height:220px}}
@media(max-width:720px){.material-catalog-tools{display:grid}.material-catalog-layout{grid-template-columns:1fr;max-height:none}.material-catalog-results-panel,.material-catalog-detail{border-left:0!important;border-top:1px solid #e2e8f0}.material-catalog-layout>section,.material-catalog-layout>aside{max-height:300px}}

/* V3.7.89 – eingeklappter Katalogbaum und kollisionsfreies Dialoglayout */
.material-catalog-picker{display:flex;flex-direction:column;min-height:0}
.material-catalog-layout{height:min(56vh,520px);min-height:360px;max-height:none;grid-template-rows:minmax(0,1fr);overflow:hidden}
.material-catalog-layout>section,.material-catalog-layout>aside{min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain}
.material-catalog-tree-panel,.material-catalog-results-panel,.material-catalog-detail{position:relative}
.material-catalog-footer{position:relative;z-index:2;flex:0 0 auto;min-height:36px;box-sizing:border-box;background:#edf3f8}
.material-tree-chevron{display:inline-flex;align-items:center;justify-content:center;transition:transform .16s ease}
.material-tree-node.is-expanded>.material-tree-chevron{transform:rotate(90deg)}
.material-tree-node[aria-expanded="false"]+.material-tree-children{display:none}
@media(max-width:1050px){.material-catalog-layout{height:min(64vh,590px);grid-template-rows:minmax(0,1fr) minmax(150px,.55fr)}.material-catalog-detail{max-height:none!important}}
@media(max-width:720px){.material-catalog-layout{height:auto;max-height:none;grid-template-rows:none;overflow:visible}.material-catalog-layout>section,.material-catalog-layout>aside{max-height:300px;overflow:auto}}


/* V3.7.90: Akkordeon-Katalog und nur ein gemeinsamer Scrollbereich */
.material-catalog-layout{overflow:auto;overscroll-behavior:contain;align-items:start}
.material-catalog-layout>section,.material-catalog-layout>aside{overflow:visible;min-height:100%;height:auto}
.material-catalog-layout h4,.material-catalog-result-head{position:sticky;top:-12px;z-index:3;background:#fff;padding-top:12px;padding-bottom:8px}
.material-catalog-result-head h4{position:static;padding:0;margin:0}
@media(max-width:1050px){
  .material-catalog-layout{overflow:auto;grid-template-rows:auto auto}
  .material-catalog-layout>section,.material-catalog-layout>aside{overflow:visible;max-height:none!important}
}
@media(max-width:720px){
  .material-catalog-layout{overflow:visible}
  .material-catalog-layout>section,.material-catalog-layout>aside{overflow:visible;max-height:none}
}

/* V3.7.91: catalog picker layout fix - one scroll area, no overlapping panels */
.material-catalog-layout{
  display:grid;
  grid-template-columns:minmax(250px,.9fr) minmax(340px,1.35fr);
  grid-template-rows:auto auto;
  height:auto;
  min-height:0;
  max-height:none;
  overflow:visible;
  align-items:start;
}
.material-catalog-tree-panel,
.material-catalog-results-panel{
  min-width:0;
  min-height:340px;
  height:auto;
  overflow:visible;
}
.material-catalog-results-panel{
  border-left:1px solid #e2e8f0;
}
.material-catalog-detail{
  grid-column:1 / -1;
  position:relative;
  min-width:0;
  min-height:0;
  height:auto;
  max-height:none!important;
  overflow:visible;
  border-left:0!important;
  border-top:1px solid #e2e8f0;
  background:#fff;
  clear:both;
}
.material-catalog-layout>section,
.material-catalog-layout>aside{
  box-sizing:border-box;
  overflow:visible;
  min-height:0;
  height:auto;
}
.material-catalog-layout h4,
.material-catalog-result-head{
  position:static;
  top:auto;
  z-index:auto;
  padding-top:0;
}
.material-catalog-picker{
  overflow:hidden;
}
@media(max-width:820px){
  .material-catalog-layout{
    grid-template-columns:1fr;
    grid-template-rows:auto;
  }
  .material-catalog-tree-panel,
  .material-catalog-results-panel,
  .material-catalog-detail{
    grid-column:1;
    min-height:0;
    border-left:0!important;
    border-top:1px solid #e2e8f0;
  }
  .material-catalog-tree-panel{border-top:0;}
}

/* V3.7.93 – aktuelle Auswahl, kompakter Katalog und klarer Pfad-2-Aufbau */
.material-current-assignment{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px;align-items:center;padding:11px 13px;background:#eef5fb;border-bottom:1px solid #d8e3ee;color:#17375e}
.material-current-assignment>span{grid-row:1/3;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding-right:12px;border-right:1px solid #c9d8e7}
.material-current-assignment strong{font-size:.88rem;overflow-wrap:anywhere}.material-current-assignment small{font-size:.73rem;color:#526b83}
.material-result-item strong{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.material-result-item strong em{font-style:normal;font-size:.64rem;text-transform:uppercase;letter-spacing:.03em;background:#17375e;color:#fff;border-radius:999px;padding:2px 6px}
.material-tree-node.level-2 .material-tree-chevron{opacity:.35}.material-tree-node.level-2{font-weight:650}

.layer-path-mode{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 14px;border:1px solid #d9e3ed;border-radius:12px;background:#f6f8fb}
.layer-path-mode>span{font-weight:800;color:#263b50}.layer-path-mode>div{display:flex;gap:7px;flex-wrap:wrap}
.layer-path-mode button{border:1px solid #cbd7e3;background:#fff;color:#334b63;border-radius:9px;padding:8px 11px;font-weight:750;cursor:pointer}.layer-path-mode button.is-active{background:#17375e;border-color:#17375e;color:#fff}
.layer-path-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;border:1px solid #d9e3ed;border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(15,23,42,.035)}
.layer-path-panel-head{grid-column:1/-1;display:grid;gap:2px;padding-bottom:9px;border-bottom:1px solid #e8eef4}.layer-path-panel-head strong{color:#17375e;font-size:.92rem}.layer-path-panel-head small{color:var(--muted-2)}
.layer-path-panel>.wide,.layer-path-panel>label{min-width:0}.layer-path-panel .material-catalog-picker{grid-column:1/-1}
.layer-path-panel-b{background:#f9fbfd;border-style:dashed}.layer-path-panel-b[hidden]{display:none!important}.layer-path-panel-b.is-active{border-style:solid;border-color:#afc5d9}
@media(max-width:760px){.material-current-assignment{grid-template-columns:1fr}.material-current-assignment>span{grid-row:auto;border-right:0;padding-right:0}.layer-path-mode{align-items:stretch;display:grid}.layer-path-mode>div{display:grid;grid-template-columns:1fr}.layer-path-panel{grid-template-columns:1fr}.layer-path-panel-head{grid-column:1}}


/* V3.7.94 – kompakter Schalter für den optionalen Pfad B */
.layer-path-mode{display:none!important}
.layer-path-toggle{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:10px;align-items:center;padding:12px 14px;border:1px solid #d9e3ed;border-radius:12px;background:#f6f8fb;cursor:pointer;user-select:none}
.layer-path-toggle:hover{border-color:#b7c8d9;background:#f1f6fa}
.layer-path-toggle-input{position:absolute;opacity:0;pointer-events:none}
.layer-path-toggle-control{position:relative;width:42px;height:23px;border-radius:999px;background:#cbd5e1;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08);transition:background .18s ease}
.layer-path-toggle-control::after{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.25);transition:transform .18s ease}
.layer-path-toggle-input:checked+.layer-path-toggle-control{background:#17375e}
.layer-path-toggle-input:checked+.layer-path-toggle-control::after{transform:translateX(19px)}
.layer-path-toggle-input:focus-visible+.layer-path-toggle-control{outline:3px solid rgba(47,111,168,.28);outline-offset:2px}
.layer-path-toggle-copy{display:grid;gap:2px}.layer-path-toggle-copy strong{font-size:.88rem;color:#263b50}.layer-path-toggle-copy small{font-size:.73rem;color:var(--muted-2)}
.layer-path-toggle.is-active{border-color:#afc5d9;background:#eef5fb}
@media(max-width:760px){.layer-path-toggle{grid-template-columns:auto auto minmax(0,1fr);align-items:start}}

/* V3.7.95 – kompakte Baustoffauswahl ohne langes Scrollen */
.material-catalog-picker{overflow:hidden}
.material-current-assignment{grid-template-columns:auto minmax(0,1fr) auto}
.material-current-assignment>span{grid-row:1/3}
.material-catalog-toggle{grid-column:3;grid-row:1/3;align-self:center;border:1px solid #9fb5ca;background:#fff;color:#17375e;border-radius:9px;padding:8px 12px;font-weight:800;cursor:pointer;white-space:nowrap}
.material-catalog-toggle:hover{background:#f7fafc;border-color:#6f91b1}
.material-catalog-picker.is-open .material-catalog-toggle{background:#17375e;border-color:#17375e;color:#fff}
.material-catalog-body[hidden]{display:none!important}
.material-catalog-body{display:block;border-top:1px solid #d8e3ee}
.material-result-item.is-selected{order:-1;position:relative}
.material-result-item.is-selected::after{content:"aktuell zugewiesen";justify-self:start;margin-top:2px;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:#17375e}
.layer-path-panel .material-catalog-picker{margin-top:2px}
.layer-path-panel-b[hidden]{display:none!important}
@media(max-width:760px){
  .material-current-assignment{grid-template-columns:1fr}
  .material-current-assignment>span{grid-row:auto}
  .material-catalog-toggle{grid-column:1;grid-row:auto;width:100%;margin-top:7px}
}

/* V3.7.97 – rotes X zum direkten Entfernen einer optionalen Baustoffzuordnung (BMC 022.138) */
.material-catalog-remove{border:1px solid #d99a9a;background:#fff;color:#a83232;border-radius:9px;padding:8px 11px;font-weight:800;line-height:1;cursor:pointer;white-space:nowrap}
.material-catalog-remove:hover{background:#fdeaea;border-color:#c76b6b;color:#7a1f1f}
.material-catalog-remove[hidden]{display:none!important}
.material-current-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.material-current-actions .material-catalog-previous-top{width:100%}

/* V3.7.96 – verständliche Gefach-/Ständeraufteilung */
.stud-geometry-input{position:relative;padding-top:34px}
.stud-geometry-input::before{position:absolute;top:0;left:0;display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:8px;background:#eaf1f7;color:#17375e;font-weight:850;font-size:.78rem}
.stud-width-input::before{content:"B"}
.stud-spacing-input::before{content:"A"}
.stud-share-visual{grid-column:1/-1;display:grid;gap:12px;padding:14px;border:1px solid #cad8e5;border-radius:13px;background:#f8fbfd}
.stud-share-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.stud-share-heading>div{display:grid;gap:3px}.stud-share-heading strong{color:#17375e}.stud-share-heading small{color:var(--muted-2);line-height:1.35}
/* BMC 022.167 (Nutzerauftrag 29.07.2026, Mockup bestaetigt: Punkt 3 - gleiches Kopf-Muster wie
   Pfad A/B, Badge neutral "A · B" statt Pfad-spezifischer Farbe, da beide Pfade betroffen sind).
   Wichtig: nur der Kopf bekommt das Badge - der nachfolgende Editor (.stud-share-inline-editor,
   Breite/Achsabstand/Pfad B %) bleibt bewusst unveraendert schmal (Nutzerbestaetigung 29.07.2026:
   "wenn geöffnet nur noch das kleine schmale Fenster mit den notwendigen Angaben"). */
.stud-share-heading>.stud-share-heading-title{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:10px;
  align-items:center;
  gap:0;
}
.stud-share-heading-badge{
  grid-row:1/3;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:56px;
  height:26px;
  padding:0 9px;
  border-radius:999px;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.045em;
  text-transform:uppercase;
  color:#3a4a5c;
  background:#eef2f6;
  border:1px solid #d3dbe4;
}
.stud-share-heading-title strong{grid-column:2}
.stud-share-heading-title small{grid-column:2}
.stud-share-status{white-space:nowrap;padding:4px 8px;border-radius:999px;background:#e7f3ec;color:#267247;font-size:.7rem;font-weight:800}
.stud-share-bar{display:flex;height:34px;overflow:hidden;border:1px solid #afc0d0;border-radius:9px;background:#fff;box-shadow:inset 0 1px 2px rgba(15,23,42,.06)}
.stud-share-bar span{display:block;min-width:0;transition:width .18s ease}
.stud-share-bay{background:repeating-linear-gradient(135deg,#dcecf7 0,#dcecf7 8px,#edf6fb 8px,#edf6fb 16px)}
.stud-share-stud{background:repeating-linear-gradient(90deg,#b98355 0,#b98355 7px,#d1a075 7px,#d1a075 14px);border-left:2px solid #87552e}
.stud-share-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.stud-share-value{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;padding:10px 12px;border:1px solid #d9e4ed;border-radius:10px;background:#fff}
.stud-share-value>span{font-size:.76rem;font-weight:750;color:#52677b}.stud-share-value>strong{grid-row:1/3;grid-column:2;font-size:1.15rem;color:#17375e}.stud-share-value>small{font-size:.71rem;color:#718096}
.stud-share-value.is-bay{border-left:4px solid #8bb9d8}.stud-share-value.is-stud{border-left:4px solid #a96e3c}
.stud-share-explanation{margin:0;padding-top:2px;color:#52677b;font-size:.76rem;line-height:1.45}.stud-share-explanation strong{color:#263b50}
.stud-share-visual.has-error{border-color:#d9a5a5;background:#fff8f8}.stud-share-visual.has-error .stud-share-status{background:#fbe7e7;color:#a33c3c}
@media(max-width:760px){.stud-share-heading{display:grid}.stud-share-status{justify-self:start}.stud-share-values{grid-template-columns:1fr}}

/* V3.7.97 – bewusste Baustoffübernahme ohne Änderung durch Suche */
.material-current-assignment{grid-template-columns:minmax(0,1fr) auto}
.material-current-assignment>span{display:none!important}
.material-catalog-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
.material-catalog-selection{min-width:0;overflow-wrap:anywhere}
.material-catalog-apply{flex:0 0 auto;border:0;border-radius:8px;padding:8px 12px;background:#17375e;color:#fff;font-weight:800;cursor:pointer}
.material-catalog-apply:disabled{background:#c8d2dc;color:#6b7b8b;cursor:not-allowed}
.material-result-item.is-pending{border-color:#e18724;background:#fff7ed;box-shadow:inset 3px 0 0 #e18724}
.material-result-item strong em.pending{background:#e18724}
@media(max-width:760px){.material-catalog-footer{align-items:stretch;flex-direction:column}.material-catalog-apply{width:100%}}

/* V3.7.100 – Stielschicht direkt in der oberen Schichtaufteilung */
.layer-path-toggle[hidden]{display:none!important}
.stud-share-values.is-single{grid-template-columns:1fr}
.stud-share-values.is-single .is-bay{max-width:none}
.stud-layer-controls{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:2px}
.stud-layer-toggle-button{appearance:none;border:1px solid #afc3d6;border-radius:9px;background:#fff;color:#17375e;padding:9px 13px;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.stud-layer-toggle-button:hover{border-color:#6f98bc;background:#f1f7fb}
.stud-layer-toggle-button.is-active{border-color:#c8a27f;background:#fff8f1;color:#78451f}
.stud-layer-dimensions{display:grid;grid-template-columns:repeat(2,minmax(180px,240px));gap:10px;flex:1;justify-content:end}
.stud-layer-dimensions[hidden]{display:none!important}
.stud-layer-dimensions .stud-geometry-input{padding-top:0;margin:0}
.stud-layer-dimensions .stud-geometry-input::before{display:none}
.stud-layer-dimensions label{background:#fff;border:1px solid #d9e4ed;border-radius:10px;padding:9px 11px}
.stud-layer-dimensions input{margin-top:5px}
@media(max-width:760px){.stud-layer-controls{display:grid}.stud-layer-dimensions{grid-template-columns:1fr;width:100%}}

/* V3.7.108 – Verwendungs-Schalter oben in der Schichtaufteilung */
.layer-purpose-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.layer-purpose-toggle{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:9px;align-items:center;min-height:54px;padding:9px 11px;border:1px solid #cbd8e4;border-radius:10px;background:#fff;cursor:pointer;user-select:none;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}
.layer-purpose-toggle:hover{border-color:#8fa8c0;box-shadow:0 3px 10px rgba(30,64,95,.08);transform:translateY(-1px)}
.layer-purpose-toggle input{grid-row:1/3;grid-column:1;width:18px;height:18px;margin:0;accent-color:#245a8d}
.layer-purpose-title{grid-column:2;font-weight:800;color:#4b6074;line-height:1.15}
.layer-purpose-toggle small{grid-column:2;color:#7a8b9c;font-size:.7rem;line-height:1.2}
.layer-purpose-toggle.is-active{border-color:#7d9fbd;background:#edf5fb;box-shadow:inset 0 0 0 1px rgba(36,90,141,.12)}
.layer-purpose-toggle.is-active .layer-purpose-title{color:#173f69}
.layer-purpose-toggle-bp.is-active{background:#eaf3fb;border-color:#7fa9cc}
.layer-purpose-toggle-static.is-active{background:#f3edf9;border-color:#a88bc3}
.layer-purpose-toggle-lca.is-active{background:#edf7e8;border-color:#8bb67a}
@media(max-width:760px){.layer-purpose-controls{grid-template-columns:1fr}.layer-purpose-toggle{min-height:48px}}

/* V3.7.109: Aktionen im Schichtdialog direkt unter dem Dialogkopf */
.layer-edit-form > .layer-edit-top-actions {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .65rem;
  margin: -1rem -1rem .25rem;
  padding: .75rem 1rem;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid #d7e1ec;
  box-shadow: 0 5px 14px rgba(27,57,89,.08);
  backdrop-filter: blur(8px);
}
.layer-edit-form > .layer-edit-top-actions button,
.layer-edit-form > .layer-edit-top-actions .button {
  min-width: 110px;
  margin: 0;
}
/* BMC 022.166 (Nutzerauftrag 29.07.2026, "die drei wandern ebenfalls nach oben ... zu Speichern
   und Abbruch in den Farben der Schichteingabe"): S/LCA/BP-Badges lagen bisher als eigener
   Footer-Block ganz unten im Formular - sie ziehen jetzt in dieselbe angeheftete Kopfleiste wie
   Speichern/Abbrechen, gleiche Badge-Optik wie zuvor (dunkel = aktiv, hell/grau = inaktiv, siehe
   .layer-edit-flag(:has(input:checked))). */
/* BMC 022.168 (Nutzerauftrag 29.07.2026, Mockup bestaetigt): das neue Bezeichnung-Feld
   (.layer-edit-top-bezeichnung) ist jetzt das erste Kind der Leiste und waechst per flex:1 in
   die verfuegbare Breite - dadurch wandern Badges/Speichern/Abbrechen automatisch an den rechten
   Rand (kein margin-right:auto mehr auf .layer-edit-flags noetig). */
.layer-edit-top-actions > .layer-edit-top-bezeichnung {
  flex: 1 1 auto;
  min-width: 120px;
  padding: 9px 12px;
  border: 1px solid #bdc9d8;
  border-radius: 7px;
  font: inherit;
  font-size: .88rem;
  color: #243447;
  background: #fff;
}
.layer-edit-top-actions > .layer-edit-flags {
  margin-top: 0;
  margin-right: 0;
}
@media (max-width: 640px) {
  .layer-edit-form > .layer-edit-top-actions {
    justify-content: stretch;
    flex-wrap: wrap;
  }
  .layer-edit-form > .layer-edit-top-actions button,
  .layer-edit-form > .layer-edit-top-actions .button {
    flex: 1 1 0;
    min-width: 0;
    text-align: center;
  }
  .layer-edit-top-actions > .layer-edit-flags {
    margin-right: 0;
    flex: 1 1 100%;
    justify-content: center;
  }
  .layer-edit-top-actions > .layer-edit-top-bezeichnung {
    flex: 1 1 100%;
  }
}

/* V3.7.119 – kompakte, optionale LCA-Zuordnung in der Schichtbearbeitung */
.layer-lca-context-legacy{display:none!important}
.layer-lca-picker{margin-top:12px;border:1px solid #cbd8e6;border-radius:12px;background:#f8fbfe;overflow:hidden}
.layer-lca-picker-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px}
.layer-lca-picker-summary strong,.layer-lca-picker-summary small{display:block}
.layer-lca-picker-summary small{margin-top:3px;color:var(--muted-2);max-width:620px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.layer-lca-picker.has-assignment{border-color:#9ac8aa;background:#f6fcf8}
.layer-lca-picker-body{border-top:1px solid #dbe5ef;padding:14px;display:grid;gap:12px;background:#fff}
.layer-lca-current{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #c9d8e8;border-radius:10px;background:#eef5fb}
.layer-lca-current small,.layer-lca-current strong{display:block}.layer-lca-current small{color:var(--muted-2);margin-bottom:3px}
.layer-lca-search-label{font-weight:700}.layer-lca-search{display:block;width:100%;margin-top:6px;padding:10px 12px;border:1px solid #b9c9da;border-radius:8px;background:#fff}
.layer-lca-path-tabs{display:flex;gap:8px}.layer-lca-path-tab{border:1px solid #b9c9da;border-radius:8px;background:#fff;padding:8px 14px;font-weight:700;color:#334155;cursor:pointer}.layer-lca-path-tab.active{background:#173f6b;color:#fff;border-color:#173f6b}
.layer-lca-results{display:grid;gap:7px;max-height:340px;overflow:auto;padding-right:3px}
.layer-lca-result{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;text-align:left;border:1px solid #d5e0eb;border-radius:9px;background:#fff;color:#16283d;cursor:pointer}
.layer-lca-result:hover{border-color:#7ca5cf;background:#f6faff}.layer-lca-result.selected{border-color:#4f8f68;background:#edf8f1}.layer-lca-result strong,.layer-lca-result small{display:block}.layer-lca-result small{margin-top:3px;color:var(--muted-2)}.layer-lca-result em{font-style:normal;font-size:11px;font-weight:800;color:#166534;background:#dcfce7;border-radius:999px;padding:4px 8px;white-space:nowrap}
.layer-lca-empty{padding:18px;border:1px dashed #cbd5e1;border-radius:9px;color:var(--muted-2);text-align:center}.layer-lca-picker-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
@media(max-width:700px){.layer-lca-picker-summary,.layer-lca-current{align-items:stretch;flex-direction:column}.layer-lca-picker-summary .button,.layer-lca-current .button{width:100%}}


/* V3.7.121 – kompakte LCA-Suche */
.layer-lca-picker-body{gap:10px}
.layer-lca-search-label{display:block;margin:0;font-size:13px;color:#334155}
.layer-lca-search{height:42px;margin-top:5px;font-size:14px}
.layer-lca-results{display:block;max-height:300px;overflow:auto;padding:0;border:1px solid #d8e2ec;border-radius:10px;background:#fff}
.layer-lca-result-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid #e2e8f0;background:var(--soft-bg);color:#334155}
.layer-lca-result-head strong{font-size:12px}.layer-lca-result-head small{font-size:11px;color:var(--muted-2)}
.layer-lca-result{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:50px;padding:9px 12px;border:0;border-bottom:1px solid #e6edf4;border-radius:0;background:#fff;color:#16283d;box-shadow:none}
.layer-lca-result:last-child{border-bottom:0}
.layer-lca-result:hover{background:#f4f8fc;border-color:#e6edf4}
.layer-lca-result.selected{background:#edf8f1;border-color:#e6edf4}
.layer-lca-result strong{font-size:13px;line-height:1.25}.layer-lca-result small{font-size:11px;line-height:1.25}
.layer-lca-empty{border:0;border-radius:0;padding:22px 14px;background:#fff}
.layer-lca-search-hint{color:var(--muted-2)}
.layer-lca-picker-actions{padding-top:2px}
@media(max-width:700px){.layer-lca-result-head{align-items:flex-start;flex-direction:column;gap:2px}.layer-lca-results{max-height:260px}}


/* V3.7.123 – LCA-Kopf neu geordnet und beim Scrollen angeheftet */
.layer-lca-picker-body{position:relative}
.layer-lca-sticky-head{position:sticky;top:64px;z-index:12;display:grid;gap:8px;margin:-2px 0 2px;padding-bottom:4px;background:#fff}
.layer-lca-current{order:1}
.layer-lca-assigned-line{order:2;display:grid;gap:2px;padding:0 2px;color:#17375e}
.layer-lca-assigned-line small{font-size:.74rem;color:var(--muted-2)}
.layer-lca-assigned-line strong{font-size:.82rem;line-height:1.3;font-weight:800;color:#1e3a5f}
.layer-lca-search-label{position:relative;z-index:1}
@media(max-width:700px){.layer-lca-sticky-head{top:58px}}


/* V3.7.124 – gestaffelte Sticky-Köpfe für Baustoff und LCA */
.layer-lca-picker[hidden]{display:none!important}
.material-catalog-picker.is-open .material-current-assignment{
  position:sticky;
  top:64px;
  z-index:24;
  background:#eef5fb;
  box-shadow:0 5px 12px rgba(15,23,42,.08);
}
.layer-lca-picker{
  overflow:visible;
}
.layer-lca-picker-summary{
  position:sticky;
  top:132px;
  z-index:22;
  background:#f6fcf8;
  border-bottom:1px solid #dbe5ef;
  box-shadow:0 4px 10px rgba(15,23,42,.06);
}
.layer-lca-sticky-head{
  position:sticky;
  top:198px;
  z-index:21;
  margin:0;
  padding:8px 0 6px;
  background:#fff;
}
.layer-lca-assigned-line:empty{display:none}
@media(max-width:700px){
  .material-catalog-picker.is-open .material-current-assignment{top:58px}
  .layer-lca-picker-summary{top:126px}
  .layer-lca-sticky-head{top:192px}
}

/* V3.7.125 – Baustoff immer oben, LCA direkt darunter */
.layer-primary-material-sticky{
  position:sticky;
  top:64px;
  z-index:30;
  display:flex;
  align-items:center;
  min-height:58px;
  margin:0 0 10px;
  padding:10px 14px;
  border:1px solid #c9d8e8;
  border-radius:11px;
  background:rgba(238,245,251,.98);
  box-shadow:0 5px 12px rgba(15,23,42,.08);
  backdrop-filter:blur(8px);
}
.layer-primary-material-sticky small,
.layer-primary-material-sticky strong,
.layer-primary-material-sticky span{display:block}
.layer-primary-material-sticky small{margin-bottom:2px;color:var(--muted-2);font-size:.72rem}
.layer-primary-material-sticky strong{color:#17375e;font-size:.88rem;line-height:1.25}
.layer-primary-material-sticky span{margin-top:3px;color:#526b83;font-size:.73rem}

/* Der normale Baustoffkopf bleibt an seinem Platz und wird nicht zusätzlich sticky. */
.material-catalog-picker .material-current-assignment,
.material-catalog-picker.is-open .material-current-assignment{
  position:static;
  top:auto;
  z-index:auto;
  box-shadow:none;
}

/* LCA folgt unmittelbar unter dem dauerhaft sichtbaren Baustoffkopf. */
.layer-lca-picker-summary{top:132px}
.layer-lca-sticky-head{top:198px}
@media(max-width:700px){
  .layer-primary-material-sticky{top:58px}
  .layer-lca-picker-summary{top:126px}
  .layer-lca-sticky-head{top:192px}
}


/* V3.7.126 – Reihenfolge: Schichtaufteilung, Baustoffe, kompakte LCA-Zuordnung */
.layer-primary-material-sticky{display:none!important}
.layer-lca-picker{margin-top:12px}
.layer-lca-picker[hidden]{display:none!important}
.layer-lca-picker-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px}
.layer-lca-picker-summary>div{min-width:0}
.layer-lca-picker-summary .layer-lca-summary-text{white-space:normal;overflow:visible;text-overflow:clip;max-width:none;line-height:1.35}
.layer-lca-edit{flex:0 0 auto;white-space:nowrap}
.layer-lca-sticky-head{position:static;top:auto;z-index:auto;margin:0;padding:0;background:transparent}
.layer-lca-picker-body{border-top:1px solid #dbe5ef}
@media(max-width:700px){
  .layer-lca-picker-summary{align-items:stretch;flex-direction:column}
  .layer-lca-edit{width:100%}
}


/* V3.7.127 – LCA-Zuordnung direkt unter dem zugehörigen Baustoffpfad */
.layer-lca-inline{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:8px 0 12px;padding:11px 13px;border:1px solid #cbd8e4;border-radius:11px;background:#f8fbfd}
.layer-lca-inline[hidden]{display:none!important}
.layer-lca-inline.has-assignment{border-color:#9ac8aa;background:#f3fbf6}
/* BMC 022.45 (Nutzermeldung 24.07.2026): app.js setzt seit V3.7.119/BMC 022.26 pro Baustoffpfad
   die Klassen lca-status-ok/lca-status-missing auf .layer-lca-inline (statt has-assignment auf
   das Suchpanel) - dafuer gab es aber nie eine CSS-Regel, daher blieb eine nicht zugeordnete
   Schicht optisch unauffaellig (kein roter Rahmen, kein roter Button). Nachgezogen mit der im
   Programm ueblichen Rot-/Gruen-Palette (siehe .button.danger / .material-data-badge).*/
.layer-lca-inline.lca-status-ok{border-color:#9ac8aa;background:#f3fbf6}
.layer-lca-inline.lca-status-missing{border-color:#fecdd3;background:#fff1f2}
.layer-lca-inline.lca-status-missing .layer-lca-assignment-context>strong{color:#b42318}
.layer-lca-inline.lca-status-missing .layer-lca-inline-text{color:#b42318}
.layer-lca-inline.lca-status-missing .layer-lca-inline-edit{background:#fff1f2;color:#b42318;border-color:#fecdd3}
.layer-lca-inline.lca-status-missing .layer-lca-inline-edit:hover{background:#ffe4e6}
.layer-lca-inline-copy{display:grid;gap:3px;min-width:0}
.layer-lca-inline-copy strong{font-size:.82rem;color:#17375e}
.layer-lca-inline-copy small{font-size:.76rem;line-height:1.35;color:#526b83;overflow-wrap:anywhere}
.layer-lca-inline-edit{flex:0 0 auto;white-space:nowrap}
.layer-lca-search-panel{margin:0 0 14px}
.layer-lca-search-panel[hidden]{display:none!important}
.layer-lca-search-panel .layer-lca-picker-body{border-top:0}
.layer-lca-search-panel .layer-lca-sticky-head{position:sticky;top:64px;z-index:13;background:#fff;padding-bottom:8px}
@media(max-width:700px){.layer-lca-inline{align-items:stretch;flex-direction:column}.layer-lca-inline-edit{width:100%}.layer-lca-search-panel .layer-lca-sticky-head{top:58px}}


/* V3.7.128 – LCA-Zuordnung als Bestandteil des jeweiligen Baustoffblocks */
.layer-path-panel > .layer-lca-inline,
.layer-path-panel > .layer-lca-search-panel{
  grid-column:1 / -1;
  width:100%;
  max-width:none;
  box-sizing:border-box;
}
.layer-path-panel > .layer-lca-inline{
  margin:0;
}
.layer-path-panel > .layer-lca-search-panel{
  margin:0;
}


/* V3.7.129 – Pfad B beim Bearbeiten von Pfad A vorübergehend ausblenden */
.layer-edit-form.is-editing-path-a-material .layer-path-panel-b,
.layer-edit-form.is-editing-path-a-lca .layer-path-panel-b{
  display:none!important;
}

/* V3.7.131 – Schichtdicke als Information in der Schichtaufteilung */
.stud-share-heading-meta{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
/* BMC 022.168 (Nutzerauftrag 29.07.2026, "Schichtdicke direkt eingeben, kein Feld öffnen"):
   .stud-share-thickness-button/-value entfallen (Elemente existieren nicht mehr im DOM, siehe
   app.js) - ersetzt durch ein direkt editierbares Zahlenfeld plus einen separaten, nur bei
   aktivem Pfad B sichtbaren Link-Button für Breite/Achsabstand. */
.stud-share-thickness-inline{display:flex;align-items:center;gap:6px;margin:0;font-size:.76rem;font-weight:800;color:#334b63}
.stud-share-thickness-inline input{width:72px;padding:6px 8px;border:1px solid #b8cadb;border-radius:7px;background:#fff;font-size:.84rem;font-weight:700;color:#17375e}
.stud-share-thickness-inline small{font-weight:400;color:var(--muted-2)}
.stud-share-dims-toggle{border:0;background:none;padding:0;font-size:.76rem;font-weight:700;color:var(--accent);text-decoration:underline;cursor:pointer}
.stud-share-dims-toggle[hidden]{display:none!important}
.stud-share-bar,.stud-share-values{cursor:pointer}
.stud-share-inline-editor{display:grid;grid-template-columns:minmax(190px,280px) auto;gap:10px;align-items:end;padding:11px 12px;border:1px solid #b9ccdd;border-radius:10px;background:#fff}
.stud-share-inline-editor[hidden]{display:none!important}
.stud-share-inline-editor label{display:grid;gap:5px;margin:0;font-size:.76rem;font-weight:800;color:#334b63}
.stud-share-inline-editor input{width:100%;margin:0;background:#fff}
.stud-share-inline-actions{display:flex;gap:8px;flex-wrap:wrap}
.stud-share-visual:not(.is-dimension-editing) .stud-layer-dimensions{display:none!important}
/* BMC 022.165 (Nutzerauftrag: "Schichtdicke ... verschwindet auch im Pfad A"): .layer-path-thickness
   (die frühere, in Pfad A eingeblendete zusätzliche Schichtdicke-Box) entfernt - app.js erzeugt
   dieses Element nicht mehr (siehe makeMaterialControl()-Entfernung), die Schichtdicke wird nur
   noch über .stud-share-thickness-field im Kopfzeilen-Editor bearbeitet. */
@media(max-width:760px){.stud-share-heading-meta{justify-content:flex-start}.stud-share-inline-editor{grid-template-columns:1fr}.stud-share-inline-actions .button{flex:1 1 auto}}


/* V3.7.132 – Schichtdicke, Breite und Achsabstand in einer Bearbeitungszeile */
.stud-share-inline-editor{
  grid-template-columns:minmax(170px,1fr) minmax(340px,2fr) auto;
  align-items:end;
}
.stud-share-inline-editor > .stud-layer-dimensions{
  display:grid;
  grid-template-columns:repeat(2,minmax(150px,1fr));
  gap:10px;
  width:100%;
  justify-content:stretch;
}
.stud-share-inline-editor > .stud-layer-dimensions[hidden]{display:none!important}
.stud-share-inline-editor > .stud-layer-dimensions label{margin:0;padding:0;border:0;background:transparent}
.stud-share-inline-editor > .stud-layer-dimensions input{width:100%;margin-top:5px}
.stud-share-inline-actions{align-self:end;white-space:nowrap}
@media(max-width:900px){
  .stud-share-inline-editor{grid-template-columns:1fr 1fr}
  .stud-share-inline-editor > .stud-layer-dimensions{grid-column:1/-1}
  .stud-share-inline-actions{grid-column:1/-1}
}
@media(max-width:600px){
  .stud-share-inline-editor{grid-template-columns:1fr}
  .stud-share-inline-editor > .stud-layer-dimensions{grid-template-columns:1fr;grid-column:1}
  .stud-share-inline-actions{grid-column:1}
}

/* V3.7.133 – Eingabezeile ausrichten und Baustoffkopf beim Ändern anheften */
.stud-share-inline-editor{
  grid-template-columns:minmax(150px,.8fr) minmax(360px,1.7fr) auto;
  gap:12px;
  align-items:start;
}
.stud-share-inline-editor > .stud-share-thickness-field,
.stud-share-inline-editor > .stud-layer-dimensions > label{
  display:grid;
  grid-template-rows:auto 42px auto;
  align-content:start;
  gap:5px;
  min-width:0;
}
.stud-share-inline-editor > .stud-share-thickness-field input,
.stud-share-inline-editor > .stud-layer-dimensions input{
  height:42px;
  box-sizing:border-box;
  margin:0;
}
.stud-share-inline-editor > .stud-layer-dimensions{
  align-items:start;
  gap:12px;
}
.stud-share-inline-editor > .stud-layer-dimensions small{
  margin:0;
  min-height:2.5em;
  font-size:.68rem;
  line-height:1.25;
  color:var(--muted-2);
}
.stud-share-inline-actions{
  align-self:start;
  display:flex;
  align-items:center;
  gap:8px;
  padding-top:24px;
}
.stud-share-inline-actions .button{
  min-height:42px;
  margin:0;
}

/* Beim Öffnen der Baustoffauswahl bleibt der aktuelle Baustoff direkt unter
   Speichern/Abbrechen sichtbar. Beim Zurückscrollen läuft er wieder an seinen
   normalen Platz zurück (CSS sticky). */
.material-catalog-picker.is-open .material-current-assignment{
  position:sticky!important;
  top:64px!important;
  z-index:35!important;
  background:rgba(238,245,251,.98)!important;
  box-shadow:0 5px 12px rgba(15,23,42,.10)!important;
  backdrop-filter:blur(8px);
}
@media(max-width:900px){
  .stud-share-inline-editor{
    grid-template-columns:1fr 1fr;
    align-items:start;
  }
  .stud-share-inline-editor > .stud-share-thickness-field{grid-column:1}
  .stud-share-inline-editor > .stud-layer-dimensions{grid-column:1/-1}
  .stud-share-inline-actions{grid-column:2;grid-row:1;padding-top:24px;justify-content:flex-end}
}
@media(max-width:700px){
  .material-catalog-picker.is-open .material-current-assignment{top:58px!important}
}
@media(max-width:600px){
  .stud-share-inline-editor{grid-template-columns:1fr}
  .stud-share-inline-editor > .stud-share-thickness-field,
  .stud-share-inline-editor > .stud-layer-dimensions,
  .stud-share-inline-actions{grid-column:1;grid-row:auto}
  .stud-share-inline-actions{padding-top:0;justify-content:stretch}
  .stud-share-inline-actions .button{flex:1 1 0}
}

/* V3.7.135 – stabile Rücknahme der fehlerhaften Dock-Logik */
.layer-path-panel-a .layer-lca-inline-b,
.layer-path-panel-b .layer-lca-inline-a{
  display:none!important;
}


/* V3.7.136 – alte doppelte QNG-Eingabefelder vollständig ausblenden */
.layer-edit-form .legacy-qng-field-hidden,
.layer-edit-form .layer-lca-context-legacy .qng-searchable-select{
  display:none!important;
}


/* V3.7.137 – stabile angeheftete Kontextleiste ohne DOM-Verschiebungen */
.layer-selection-dock{
  position:sticky;
  top:61px;
  z-index:39;
  margin:0 -1rem .5rem;
  padding:8px 1rem;
  border-bottom:1px solid #d5e0ea;
  background:rgba(255,255,255,.98);
  box-shadow:0 5px 12px rgba(15,23,42,.09);
  backdrop-filter:blur(8px);
}
.layer-selection-dock[hidden]{display:none!important}
.layer-selection-dock .material-current-assignment,
.layer-selection-dock .layer-lca-inline{
  position:static!important;
  top:auto!important;
  z-index:auto!important;
  margin:0!important;
  width:100%;
  box-sizing:border-box;
  box-shadow:none!important;
}
.layer-selection-dock .material-current-assignment{border:1px solid #cbd9e6;border-radius:10px;background:#eef5fb}
.layer-selection-dock .layer-lca-inline{border-radius:10px}
.layer-selection-dock-copy{max-width:none}
@media(max-width:700px){
  .layer-selection-dock{top:57px;margin-left:-.75rem;margin-right:-.75rem;padding-left:.75rem;padding-right:.75rem}
}


/* V3.7.138 – keine doppelte LCA-Anzeige während der Suche */
.layer-path-panel > .layer-lca-inline.is-search-open{display:none!important}
.layer-lca-search-panel .layer-lca-sticky-head{display:none!important}
.layer-lca-search-panel .layer-lca-picker-body{padding-top:14px}


/* V3.7.139 – angeheftete LCA-Zeile trotz geöffnetem Suchmodus sichtbar */
.layer-selection-dock .layer-lca-inline.is-search-open{display:flex!important}


/* V3.7.140 – kompakte Baustoff-Kontextleiste ohne geerbte Katalogbreiten */
.layer-selection-material{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:10px;
  width:100%;
  min-width:0;
  box-sizing:border-box;
  padding:10px 12px;
  border:1px solid #cbd9e6;
  border-radius:10px;
  background:#eef5fb;
}
.layer-selection-material-info{min-width:0;display:grid;gap:3px}
.layer-selection-material-info strong{
  display:block;
  min-width:0;
  color:#17375e;
  font-size:.88rem;
  line-height:1.25;
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
}
.layer-selection-material-info small{display:block;color:#526b83;font-size:.73rem;white-space:normal}
.layer-selection-material-previous{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 8px;border:1px solid #edc27c;border-radius:8px;background:#fff7e8;color:#7a4b12;font-size:.75rem}
.layer-selection-material-previous span{min-width:0;white-space:normal;overflow-wrap:break-word}
.layer-selection-material-previous .button,.layer-selection-material-close{margin:0;white-space:nowrap}
.layer-selection-dock.is-material .material-current-assignment{display:none!important}
@media(max-width:760px){
  .layer-selection-material{grid-template-columns:1fr}
  .layer-selection-material-previous{align-items:stretch;flex-direction:column}
  .layer-selection-material-previous .button,.layer-selection-material-close{width:100%}
}


/* V3.7.141 – einfache Sticky-Logik auf den Originalzeilen, ohne Kopien */
.layer-selection-dock{display:none!important}

/* Der Katalog darf die Sticky-Zeile nicht abschneiden. */
.material-catalog-picker.is-open,
.material-catalog-picker.is-open .material-catalog-body{
  overflow:visible!important;
}

/* Originale Baustoffzeile unter der oberen Aktionsleiste anheften. */
.material-catalog-picker.is-open > .material-current-assignment{
  position:sticky!important;
  top:61px!important;
  z-index:38!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  background:rgba(238,245,251,.98)!important;
  border-bottom:1px solid #cbd9e6!important;
  box-shadow:0 5px 12px rgba(15,23,42,.10)!important;
  backdrop-filter:blur(8px);
}

/* Während der LCA-Suche bleibt die originale Zuordnungszeile sichtbar. */
.layer-path-panel > .layer-lca-inline.is-search-open{
  display:flex!important;
  position:sticky!important;
  top:61px!important;
  z-index:38!important;
  width:100%!important;
  box-sizing:border-box!important;
  margin:0!important;
  background:rgba(243,251,246,.98)!important;
  box-shadow:0 5px 12px rgba(15,23,42,.10)!important;
  backdrop-filter:blur(8px);
}

/* Die alte interne LCA-Kopfzeile bleibt ausgeblendet; es gibt nur eine Zeile. */
.layer-lca-search-panel .layer-lca-sticky-head{display:none!important}

@media(max-width:700px){
  .material-catalog-picker.is-open > .material-current-assignment,
  .layer-path-panel > .layer-lca-inline.is-search-open{
    top:57px!important;
  }
}


/* V3.7.142 – bei geöffneter LCA-Suche Baustoff oberhalb der LCA-Zeile sticky */
.material-current-assignment.is-lca-context-sticky{
  position:sticky!important;
  top:61px!important;
  z-index:39!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  background:rgba(238,245,251,.98)!important;
  border:1px solid #cbd9e6!important;
  border-radius:10px!important;
  box-shadow:0 4px 10px rgba(15,23,42,.09)!important;
  backdrop-filter:blur(8px);
}
.layer-path-panel > .layer-lca-inline.is-search-open{
  top:129px!important;
  z-index:38!important;
}
@media(max-width:700px){
  .material-current-assignment.is-lca-context-sticky{top:57px!important}
  .layer-path-panel > .layer-lca-inline.is-search-open{top:125px!important}
}


/* V3.7.143 – bei der LCA-Suche den ganzen Baustoffkopf sticky halten.
   Das innere Element allein war durch seinen kleinen Elterncontainer begrenzt. */
.material-catalog-picker.is-lca-context-sticky{
  position:sticky!important;
  top:61px!important;
  z-index:39!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  margin-top:0!important;
  background:rgba(238,245,251,.98)!important;
  border:1px solid #cbd9e6!important;
  border-radius:10px!important;
  box-shadow:0 4px 10px rgba(15,23,42,.09)!important;
  backdrop-filter:blur(8px);
}
.material-catalog-picker.is-lca-context-sticky > .material-current-assignment{
  position:relative!important;
  top:auto!important;
  z-index:auto!important;
  border-bottom:0!important;
  box-shadow:none!important;
  border-radius:10px!important;
}
/* Alte Elementklasse aus V3.7.142 neutralisieren. */
.material-current-assignment.is-lca-context-sticky{
  position:relative!important;
  top:auto!important;
  z-index:auto!important;
  box-shadow:none!important;
}
.layer-path-panel > .layer-lca-inline.is-search-open{
  top:129px!important;
}
@media(max-width:700px){
  .material-catalog-picker.is-lca-context-sticky{top:57px!important}
  .layer-path-panel > .layer-lca-inline.is-search-open{top:125px!important}
}


/* V3.7.144 – zugehörigen Baustoff direkt in der sticky LCA-Zeile anzeigen */
.layer-lca-inline-copy{display:grid;gap:7px;min-width:0}
.layer-lca-material-context{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:9px;row-gap:1px;align-items:baseline;padding-bottom:7px;border-bottom:1px solid #cfe1d4}
.layer-lca-material-context small{font-size:.7rem;font-weight:800;color:#557064;text-transform:uppercase;letter-spacing:.03em}
.layer-lca-material-context strong{min-width:0;font-size:.86rem;color:#143b2a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.layer-lca-material-context em{grid-column:2;font-style:normal;font-size:.72rem;color:#587064}
.layer-lca-assignment-context{display:grid;gap:2px;min-width:0}
.layer-lca-assignment-context>strong{font-size:.8rem;color:#17375e}
.layer-lca-assignment-context>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.layer-path-panel>.layer-lca-inline.is-search-open{min-height:92px!important;align-items:center!important}
@media(max-width:700px){
  .layer-lca-material-context{grid-template-columns:1fr}
  .layer-lca-material-context em{grid-column:1}
  .layer-lca-material-context strong,.layer-lca-assignment-context>small{white-space:normal}
}


/* V3.7.145 – getrennte sticky Zeilen für Baustoff und LCA-Zuordnung */
.layer-lca-search-panel .layer-lca-sticky-head{
  display:grid!important;
  position:sticky!important;
  top:64px!important;
  z-index:24!important;
  gap:6px!important;
  margin:0!important;
  padding:0 0 8px!important;
  background:#fff!important;
}
.layer-lca-search-panel .layer-lca-current{
  display:block!important;
  padding:10px 13px!important;
  border:1px solid #c8d8e7!important;
  border-radius:11px!important;
  background:#eef5fb!important;
  box-shadow:0 2px 7px rgba(30,64,95,.08)!important;
}
.layer-lca-sticky-material-copy{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;align-items:baseline;min-width:0}
.layer-lca-sticky-material-copy small{font-size:.7rem;font-weight:850;color:#536b82;text-transform:uppercase;letter-spacing:.035em}
.layer-lca-sticky-material-copy strong{min-width:0;font-size:.88rem;color:#17375e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.layer-lca-sticky-material-copy em{grid-column:2;font-style:normal;font-size:.73rem;color:#5a7187}
.layer-lca-search-panel .layer-lca-assigned-line{
  display:block!important;
  padding:10px 13px!important;
  border:1px solid #9ac8aa!important;
  border-radius:11px!important;
  background:#f3fbf6!important;
  box-shadow:0 2px 7px rgba(32,93,57,.07)!important;
}
.layer-lca-sticky-assignment-copy{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.layer-lca-sticky-assignment-copy>span{display:grid;gap:2px;min-width:0}
.layer-lca-sticky-assignment-copy small{font-size:.72rem;font-weight:800;color:#326347}
.layer-lca-sticky-assignment-copy strong{font-size:.8rem;color:#17375e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.layer-lca-sticky-close,.layer-lca-undo{flex:0 0 auto;white-space:nowrap}
.layer-path-panel>.layer-lca-inline.is-search-open{display:none!important}
.material-catalog-picker.is-lca-context-sticky,.material-current-assignment.is-lca-context-sticky{position:static!important;top:auto!important;z-index:auto!important}
@media(max-width:700px){
  .layer-lca-search-panel .layer-lca-sticky-head{top:58px!important}
  .layer-lca-sticky-material-copy{grid-template-columns:1fr}
  .layer-lca-sticky-material-copy em{grid-column:1}
  .layer-lca-sticky-material-copy strong,.layer-lca-sticky-assignment-copy strong{white-space:normal}
  .layer-lca-sticky-assignment-copy{align-items:stretch;flex-direction:column}
  .layer-lca-sticky-close,.layer-lca-undo{width:100%}
}

/* V3.7.148 – rein optische Pfadführung: Pfad A blau, Pfad B braun */
.layer-path-panel-a,
.layer-path-panel-b{
  position:relative;
  overflow:visible;
  padding:16px 16px 16px 22px;
  border-width:1px;
  border-style:solid;
  border-radius:15px;
  box-shadow:0 7px 20px rgba(15,23,42,.045);
}
.layer-path-panel-a{
  border-color:#b9d6ea;
  background:linear-gradient(180deg,#f8fcff 0,var(--sheet-bg) 110px);
}
.layer-path-panel-b,
.layer-path-panel-b.is-active{
  border-color:#dfbf9e;
  border-style:solid;
  background:linear-gradient(180deg,#fffaf5 0,var(--sheet-bg) 110px);
}
.layer-path-panel-a::before,
.layer-path-panel-b::before{
  content:"";
  position:absolute;
  left:-1px;
  top:14px;
  bottom:14px;
  width:6px;
  border-radius:0 8px 8px 0;
}
.layer-path-panel-a::before{background:#77b4dc}
.layer-path-panel-b::before{background:#b9783f}

.layer-path-panel-head{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:10px;
  align-items:center;
  padding:0 0 11px;
  border-bottom:1px solid #dfe9f1;
}
.layer-path-panel-b .layer-path-panel-head{border-bottom-color:#ead9c8}
.layer-path-panel-head::before{
  grid-row:1/3;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:56px;
  height:26px;
  padding:0 9px;
  border-radius:999px;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.layer-path-panel-a .layer-path-panel-head::before{
  content:"Pfad A";
  color:#16527d;
  background:#dceefa;
  border:1px solid #a9d0e9;
}
.layer-path-panel-b .layer-path-panel-head::before{
  content:"Pfad B";
  color:#7b461e;
  background:#f7e7d8;
  border:1px solid #dfba96;
}
.layer-path-panel-head strong{
  grid-column:2;
  color:#17375e;
  font-size:.95rem;
}
.layer-path-panel-b .layer-path-panel-head strong{color:#6d411f}
.layer-path-panel-head small{
  grid-column:2;
  color:#65788a;
  line-height:1.35;
}

/* Baustoffkopf und Detailkarte bilden optisch einen zusammenhängenden Pfadblock. */
.layer-path-panel-a .material-catalog-picker,
.layer-path-panel-b .material-catalog-picker{
  border-radius:12px;
  box-shadow:none;
}
.layer-path-panel-a .material-catalog-picker{border-color:#bfd8ea}
.layer-path-panel-b .material-catalog-picker{border-color:#e2c6aa}
.layer-path-panel-a .material-current-assignment{background:#edf7fd}
.layer-path-panel-b .material-current-assignment{background:#fff4ea}
.layer-path-panel-a .material-catalog-toggle{border-color:#8eb8d5;color:#164d76}
.layer-path-panel-b .material-catalog-toggle{border-color:#c99467;color:#71451f}
.layer-path-panel-b .material-catalog-picker.is-open .material-catalog-toggle{
  background:#8a552b;
  border-color:#8a552b;
}

/* LCA ist visuell eine Unterkarte des jeweiligen Baustoffs. */
.layer-path-panel > .layer-lca-inline{
  position:relative;
  margin-top:-3px!important;
  border-radius:0 0 12px 12px!important;
  border-top:0!important;
  box-shadow:none!important;
}
.layer-path-panel-a > .layer-lca-inline{
  border-color:#a9d0b5!important;
  background:linear-gradient(90deg,#f1faf4,#f8fcf9)!important;
}
.layer-path-panel-b > .layer-lca-inline{
  border-color:#cbb99f!important;
  background:linear-gradient(90deg,#fbf7ef,#fffaf5)!important;
}
.layer-path-panel > .layer-lca-inline::before{
  content:"QNG / LCA";
  position:absolute;
  top:-10px;
  left:13px;
  padding:2px 7px;
  border-radius:999px;
  background:#fff;
  border:1px solid currentColor;
  font-size:.61rem;
  font-weight:900;
  letter-spacing:.04em;
}
.layer-path-panel-a > .layer-lca-inline::before{color:#397852}
.layer-path-panel-b > .layer-lca-inline::before{color:#8a603a}

/* Die beiden Karten in der Aufteilung verwenden dieselbe Farblogik wie die Eingabeblöcke. */
.stud-share-value.is-bay{
  border-left-width:6px;
  border-color:#b9d6ea;
  border-left-color:#77b4dc;
  background:#f7fbfe;
}
.stud-share-value.is-stud{
  border-left-width:6px;
  border-color:#e2c6aa;
  border-left-color:#b9783f;
  background:#fffaf5;
}
.stud-share-value.is-bay>span::before,
.stud-share-value.is-stud>span::before{
  display:inline-flex;
  margin-right:7px;
  padding:2px 6px;
  border-radius:999px;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.035em;
  vertical-align:1px;
}
.stud-share-value.is-bay>span::before{
  content:"A";
  color:#16527d;
  background:#dceefa;
}
.stud-share-value.is-stud>span::before{
  content:"B";
  color:#7b461e;
  background:#f7e7d8;
}

/* Beim Bearbeiten wird der aktive Pfad etwas hervorgehoben, der andere bleibt lesbar. */
.layer-edit-form.is-editing-path-a-material .layer-path-panel-a,
.layer-edit-form.is-editing-path-a-lca .layer-path-panel-a{
  box-shadow:0 0 0 2px rgba(77,151,199,.20),0 10px 24px rgba(15,23,42,.07);
}
.layer-edit-form.is-editing-path-b-material .layer-path-panel-b,
.layer-edit-form.is-editing-path-b-lca .layer-path-panel-b{
  box-shadow:0 0 0 2px rgba(176,111,57,.20),0 10px 24px rgba(15,23,42,.07);
}

@media(max-width:760px){
  .layer-path-panel-a,.layer-path-panel-b{padding:14px 12px 14px 18px}
  .layer-path-panel-head{grid-template-columns:1fr}
  .layer-path-panel-head::before{grid-row:auto;justify-self:start;margin-bottom:3px}
  .layer-path-panel-head strong,.layer-path-panel-head small{grid-column:1}
}

/* V3.7.149 – LCA bleibt grün und wird mit dem Baustoff optisch verbunden */
.layer-path-panel > .layer-lca-inline{
  margin-top:18px!important;
  border:1px solid #9fcdb0!important;
  border-radius:12px!important;
  background:linear-gradient(90deg,#eff9f2,#f8fcf9)!important;
  box-shadow:0 3px 10px rgba(38,112,71,.055)!important;
}
.layer-path-panel-a > .layer-lca-inline,
.layer-path-panel-b > .layer-lca-inline{
  border-color:#9fcdb0!important;
  background:linear-gradient(90deg,#eff9f2,#f8fcf9)!important;
}
/* Zwei elastisch wirkende Verbindungslinien von der Baustoffkarte zur LCA-Unterkarte. */
.layer-path-panel > .layer-lca-inline::after{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  top:-19px;
  height:18px;
  border-left:2px solid #79b88e;
  border-right:2px solid #79b88e;
  border-top:2px solid #79b88e;
  border-radius:13px 13px 0 0;
  opacity:.9;
  pointer-events:none;
}
.layer-path-panel > .layer-lca-inline::before{
  color:#397852!important;
  z-index:1;
}
@media(max-width:760px){
  .layer-path-panel > .layer-lca-inline::after{left:12px;right:12px}
}

/* V3.7.154 – obere Aufteilung als eigene Schachtel, Pfadführung nur in den Pfadkarten */
.stud-share-visual{
  position:relative;
  overflow:hidden;
  padding:16px 16px 14px;
  border:1px solid #c9d9e8;
  border-radius:16px;
  background:linear-gradient(180deg,#f8fbfe 0%,#f5f9fc 100%);
  box-shadow:0 6px 18px rgba(15,23,42,.04);
}

.stud-share-heading{
  padding-bottom:4px;
}

.stud-share-values{
  margin-top:2px;
}

.stud-share-explanation{
  margin-top:2px;
}

/* Die seitlichen Führungen beginnen erst in der jeweiligen Pfadkarte. */
.layer-path-panel-a::before,
.layer-path-panel-b::before{
  top:16px!important;
  bottom:16px!important;
  width:4px!important;
}

/* Keine optischen Ausläufer oberhalb der Pfadkarten. */
.layer-path-panel-a,
.layer-path-panel-b{
  overflow:hidden;
}

/* Pfadkarten stärker als eigene Schachteln wahrnehmbar. */
.layer-path-panel-a{
  margin-top:0;
  border:1px solid #bfd7e8;
  border-radius:16px;
  background:#fbfdff;
  box-shadow:0 4px 12px rgba(54,110,154,.04);
}
.layer-path-panel-b,
.layer-path-panel-b.is-active{
  border:1px solid #e1c4a8;
  border-radius:16px;
  background:#fffaf5;
  box-shadow:0 4px 12px rgba(143,94,42,.04);
}

/* Kopfbereiche etwas ruhiger, damit die Trennung oben/unten klarer wird. */
.layer-path-panel-head{
  padding-bottom:10px;
  margin-bottom:2px;
}

/* LCA-Unterkarte bleibt innerhalb der Pfad-Schachtel und hängt nicht optisch an der oberen Aufteilung. */
.layer-path-panel > .layer-lca-inline{
  margin-top:16px!important;
}
.layer-path-panel > .layer-lca-inline::after{
  top:-15px!important;
  height:14px!important;
}

@media(max-width:760px){
  .stud-share-visual{padding:14px 12px}
  .layer-path-panel-a::before,
  .layer-path-panel-b::before{top:14px!important;bottom:14px!important}
}

/* V3.7.155 – automatischer oder manueller Anteil für Pfad B */
.stud-share-inline-editor{
  grid-template-columns:minmax(150px,.7fr) minmax(340px,1.45fr) minmax(210px,.9fr) auto;
}
.stud-share-manual-control{
  display:grid;
  grid-template-rows:auto 1fr;
  gap:6px;
  min-width:0;
  align-self:start;
}
.stud-share-manual-control[hidden]{display:none!important}
.stud-share-manual-toggle{
  display:flex!important;
  grid-template-rows:none!important;
  align-items:center;
  gap:8px!important;
  min-height:24px;
  margin:0!important;
  font-size:.76rem!important;
  font-weight:800;
  color:#334b63;
  cursor:pointer;
}
.stud-share-manual-toggle input{
  width:17px!important;
  height:17px!important;
  margin:0!important;
  accent-color:#17375e;
}
.stud-share-manual-field{
  display:grid!important;
  grid-template-rows:auto 42px auto!important;
  gap:5px!important;
  margin:0!important;
  padding:8px 10px!important;
  border:1px solid #d2deea!important;
  border-radius:10px!important;
  background:#f8fbfd!important;
}
.stud-share-manual-field input{
  width:100%;
  height:42px;
  margin:0!important;
  box-sizing:border-box;
}
.stud-share-manual-field input:disabled{
  background:#eef2f6;
  color:#7b8794;
}
.stud-share-manual-field small{
  margin:0;
  font-size:.68rem;
  line-height:1.25;
  color:var(--muted-2);
}
.stud-share-visual.is-manual-share{
  border-color:#d6b66f;
  background:linear-gradient(180deg,#fffdf7 0%,#f8fbfd 100%);
}
.stud-share-visual.is-manual-share .stud-share-status{
  background:#fff1c9;
  color:#805b00;
}
@media(max-width:1100px){
  .stud-share-inline-editor{grid-template-columns:1fr 1fr}
  .stud-share-inline-editor>.stud-layer-dimensions{grid-column:1/-1}
  .stud-share-manual-control{grid-column:1}
  .stud-share-inline-actions{grid-column:2;grid-row:auto;padding-top:24px;justify-content:flex-end}
}
@media(max-width:650px){
  .stud-share-inline-editor{grid-template-columns:1fr}
  .stud-share-inline-editor>.stud-share-thickness-field,
  .stud-share-inline-editor>.stud-layer-dimensions,
  .stud-share-manual-control,
  .stud-share-inline-actions{grid-column:1;grid-row:auto}
  .stud-share-inline-actions{padding-top:0;justify-content:stretch}
}

/* V3.7.156 – Sticky-Baustoff trotz Pfad-Schachtel wieder ermöglichen */
.layer-path-panel-a,
.layer-path-panel-b{
  overflow:visible!important;
}

/* Die ursprüngliche Baustoffzeile bleibt beim geöffneten Katalog unter den Aktionen stehen. */
.layer-path-panel .material-catalog-picker.is-open{
  overflow:visible!important;
}
.layer-path-panel .material-catalog-picker.is-open > .material-current-assignment{
  position:sticky!important;
  top:61px!important;
  z-index:38!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  background:rgba(238,245,251,.98)!important;
  box-shadow:0 5px 12px rgba(15,23,42,.10)!important;
  backdrop-filter:blur(8px);
}
@media(max-width:700px){
  .layer-path-panel .material-catalog-picker.is-open > .material-current-assignment{
    top:57px!important;
  }
}

/* V3.7.157 – dezentes Einfügen zwischen Schichten */
.insert-layer-button{
  top:-14px!important;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  max-width:28px!important;
  padding:0!important;
  border:1px solid #9fb9d0!important;
  border-radius:50%!important;
  background:#f7fbff!important;
  color:transparent!important;
  font-size:0!important;
  line-height:28px!important;
  box-shadow:0 3px 9px rgba(15,23,42,.11)!important;
  overflow:hidden!important;
}
.insert-layer-button::before{
  content:"+";
  display:block;
  color:var(--accent);
  font-size:20px;
  font-weight:700;
  line-height:25px;
  text-align:center;
}
.layers-table tr[data-layer-id]:hover + .insert-layer-row .insert-layer-button,
.insert-layer-row:hover .insert-layer-button,
.insert-layer-button:focus,
.insert-layer-button:hover{
  opacity:.92;
}
.insert-layer-button:hover,
.insert-layer-button:focus-visible{
  border-color:var(--accent)!important;
  background:#eaf3fb!important;
  box-shadow:0 4px 12px rgba(29,95,154,.20)!important;
}

/* V3.7.158 – Drag-&-Drop-Hinweis ausblenden */
.drag-hint{display:none!important}

/* V3.7.162 – Speichern/Abbrechen bei neuer Schicht direkt unter dem Dialogkopf */
.layer-add-top-actions{
  position:sticky;
  top:63px;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  padding:10px 18px;
  border-bottom:1px solid #d7e1ec;
  background:rgba(255,255,255,.98);
  box-shadow:0 5px 14px rgba(27,57,89,.08);
  backdrop-filter:blur(8px);
}
.layer-add-top-actions button,
.layer-add-top-actions .button{
  min-width:110px;
  margin:0;
}
@media(max-width:640px){
  .layer-add-top-actions{top:63px;justify-content:stretch}
  .layer-add-top-actions button,
  .layer-add-top-actions .button{flex:1 1 0;min-width:0}
}
.layers-table-fixed .drag-cell,
.layers-table-fixed .drag-handle{
  display:none!important;
}
.layers-table-fixed .col-material{
  width:auto!important;
}
.layers-table-fixed .layer-material-cell{
  min-width:300px;
}
.layers-table-fixed .layer-row-interactive{
  cursor:grab;
}
.layers-table-fixed .layer-row-interactive:active,
.is-layer-sorting .layers-table-fixed .layer-row-interactive{
  cursor:grabbing;
}
/* Frühere nth-child-Breiten nach Wegfall der ersten Spalte neutralisieren. */
.layers-table-fixed th:nth-child(1),
.layers-table-fixed td:nth-child(1){width:34px}
.layers-table-fixed th:nth-child(2),
.layers-table-fixed td:nth-child(2){width:auto}
@media(max-width:900px){
  .layers-table-fixed .layer-material-cell{min-width:240px}
}

/* V3.7.165 – Schichttabelle über die volle Breite, Baustoffspalte vergrößert */
.layers-table-wrap-fixed{
  display:block;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
}
.layers-table-fixed{
  width:100%!important;
  max-width:none!important;
  table-layout:fixed!important;
}

/* Kompakte Zahlen-/Aktionsspalten; der gesamte Rest gehört dem Baustoffnamen. */
.layers-table-fixed .col-pos{width:28px!important}
.layers-table-fixed .col-material{width:auto!important}
.layers-table-fixed .col-share{width:48px!important}
.layers-table-fixed .col-thickness{width:50px!important}
.layers-table-fixed .col-lambda{width:48px!important}
.layers-table-fixed .col-r{width:48px!important}
.layers-table-fixed .col-mass{width:58px!important}
.layers-table-fixed .col-flags{width:102px!important}
.layers-table-fixed .col-actions{width:78px!important}

.layers-table-fixed .layer-material-cell{
  width:auto!important;
  min-width:0!important;
  padding-left:8px!important;
  padding-right:10px!important;
}
.layers-table-fixed .layer-path-line strong{
  max-width:100%;
}
.layers-table-fixed th,
.layers-table-fixed td{
  padding-left:4px;
  padding-right:4px;
}
.layers-table-fixed th:nth-child(2),
.layers-table-fixed td:nth-child(2){
  width:auto!important;
}

@media(max-width:900px){
  .layers-table-fixed .layer-material-cell{min-width:0!important}
  .layers-table-fixed{font-size:12px}
}

/* V3.7.166 – linke Bauteilspalte wirklich verbreitern; nur Layout */
.two-col:has(> .component-editor-main){
  grid-template-columns:minmax(760px,1.55fr) minmax(360px,.65fr);
}
.two-col:has(> .component-editor-main) > .component-editor-main{
  min-width:0;
  width:100%;
}
.two-col:has(> .component-editor-main) > .component-editor-main > .card:first-child{
  width:100%;
  max-width:none;
}
.layers-table-wrap-fixed{
  width:100%!important;
  max-width:none!important;
  overflow-x:auto;
}
.layers-table-fixed{
  width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}
.layers-table-fixed .col-material{
  width:auto!important;
}
.layers-table-fixed .layer-material-cell{
  min-width:0!important;
}
/* Lange Namen dürfen den zusätzlichen Platz auch sichtbar nutzen. */
.layers-table-fixed .layer-path-line strong{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  overflow-wrap:anywhere;
}
@media(max-width:1180px){
  .two-col:has(> .component-editor-main){grid-template-columns:1fr}
}

/* V3.7.167 – Tabelle füllt die linke Karte; Restbreite gehört dem Baustoff */
.component-editor-main .layers-table-wrap-fixed{
  display:block!important;
  width:100%!important;
  min-width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.component-editor-main .layers-table-fixed{
  display:table!important;
  width:100%!important;
  min-width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  table-layout:fixed!important;
}
/* Feste Spalten zusammen ca. 412 px; der komplette Rest wird Baustoff/Pfad. */
.component-editor-main .layers-table-fixed col.col-material{
  width:calc(100% - 412px)!important;
}
.component-editor-main .layers-table-fixed .layer-material-cell{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
}
@media(max-width:900px){
  .component-editor-main .layers-table-fixed col.col-material{width:auto!important}
}

/* V3.7.168 – Schichttabelle garantiert über 100 % der Kartenbreite */
.component-editor-main > .card:first-child .layers-table-wrap-fixed{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  inline-size:100%!important;
  width:100%!important;
  max-width:none!important;
  overflow:visible!important;
}
.component-editor-main > .card:first-child .layers-table-fixed{
  display:table!important;
  inline-size:100%!important;
  width:100%!important;
  min-width:100%!important;
  max-width:100%!important;
  table-layout:fixed!important;
  margin:0!important;
}

/* Prozentuale Spaltenverteilung = 100 %. Baustoff/Pfad erhält den größten Anteil. */
.component-editor-main .layers-table-fixed col.col-pos{width:4%!important}
.component-editor-main .layers-table-fixed col.col-material{width:38%!important}
.component-editor-main .layers-table-fixed col.col-share{width:7%!important}
.component-editor-main .layers-table-fixed col.col-thickness{width:7%!important}
.component-editor-main .layers-table-fixed col.col-lambda{width:6%!important}
.component-editor-main .layers-table-fixed col.col-r{width:6%!important}
.component-editor-main .layers-table-fixed col.col-mass{width:8%!important}
.component-editor-main .layers-table-fixed col.col-flags{width:13%!important}
.component-editor-main .layers-table-fixed col.col-actions{width:11%!important}

.component-editor-main .layers-table-fixed .layer-material-cell{
  width:auto!important;
  min-width:0!important;
  white-space:normal!important;
}
.component-editor-main .layers-table-fixed .layer-path-line strong{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}

@media(max-width:900px){
  .component-editor-main .layers-table-fixed{min-width:760px!important}
}

/* V3.7.169 – Gesamtseite wieder etwas kompakter, Schichttabelle bleibt voll breit */
@media screen and (min-width:1181px){
  .container,
  main.container,
  .wrap{
    max-width:1320px!important;
  }
}

/* V3.7.170 – linke Spalte kompakter, Ergebnis-/LCA-Spalte breiter */
@media screen and (min-width:1181px){
  .two-col:has(> .component-editor-main){
    grid-template-columns:minmax(700px,1.35fr) minmax(430px,.85fr)!important;
  }
  .two-col:has(> .component-editor-main) > :not(.component-editor-main){
    min-width:0;
    width:100%;
  }
}


/* V3.7.171 – Stammdaten-Klappmenüs; Monatsreferenzklima standardmäßig geschlossen */
.masterdata-accordion{
  border:1px solid #d7e2ec;
  border-radius:12px;
  background:#fff;
  overflow:hidden;
}
.masterdata-accordion>summary,
.masterdata-subaccordion>summary{
  cursor:pointer;
  list-style:none;
  user-select:none;
}
.masterdata-accordion>summary::-webkit-details-marker,
.masterdata-subaccordion>summary::-webkit-details-marker{display:none}
.masterdata-accordion>summary{
  position:relative;
  display:flex;
  align-items:center;
  min-height:58px;
  padding:12px 44px 12px 14px;
  background:#f7fafc;
  color:#17375e;
}
.masterdata-accordion>summary::after,
.masterdata-subaccordion>summary::after{
  content:'›';
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  font-size:22px;
  color:var(--muted-2);
  transition:transform .16s ease;
}
.masterdata-accordion[open]>summary::after,
.masterdata-subaccordion[open]>summary::after{
  transform:translateY(-50%) rotate(90deg);
}
.masterdata-accordion>summary span,
.masterdata-accordion>summary strong,
.masterdata-accordion>summary small{display:block}
.masterdata-accordion>summary small{
  margin-top:3px;
  color:var(--muted-2);
  font-size:.75rem;
  font-weight:400;
}
.masterdata-accordion-body{
  display:grid;
  gap:10px;
  padding:14px;
  border-top:1px solid #e2e8f0;
}
.masterdata-accordion-body>.muted{margin:0 0 2px}
.masterdata-subaccordion{
  position:relative;
  border:1px solid #e0e8f0;
  border-radius:9px;
  background:#fff;
  overflow:hidden;
}
.masterdata-subaccordion>summary{
  position:relative;
  padding:10px 40px 10px 12px;
  background:#f9fbfd;
  color:#263b50;
}
.masterdata-subaccordion>.table-wrap{
  margin:0;
  border-top:1px solid #e5edf4;
}

/* V3.7.172 – Verwendungsart und Übergangswiderstände in der Schichteingabe */
.layer-surface-settings{
  border:1px solid #cbd8e5;
  border-radius:12px;
  background:#f8fbfd;
  overflow:hidden;
}
.layer-surface-settings>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 13px;
  cursor:pointer;
  list-style:none;
  color:#17375e;
}
.layer-surface-settings>summary::-webkit-details-marker{display:none}
.layer-surface-settings>summary::after{content:'›';font-size:1.2rem;color:var(--muted-2);transition:transform .16s ease}
.layer-surface-settings[open]>summary::after{transform:rotate(90deg)}
.layer-surface-settings>summary strong,.layer-surface-settings>summary small{display:block}
.layer-surface-settings>summary small{margin-top:2px;color:var(--muted-2);font-size:.72rem;font-weight:500}
.layer-surface-settings-body{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  padding:12px 13px 13px;
  border-top:1px solid #dbe5ee;
  background:#fff;
}
.layer-surface-settings-body label{margin:0;min-width:0}
.layer-surface-settings-body select,.layer-surface-settings-body input{width:100%;margin-top:5px}
.layer-surface-settings.is-auto .js-layer-rsi,.layer-surface-settings.is-auto .js-layer-rse{background:var(--soft-bg-2);color:#526274}
.layer-surface-note{margin:0}
.surface-settings-moved-note{padding:10px 12px;border:1px solid #d8e3ed;border-radius:10px;background:var(--soft-bg);color:var(--muted-2);font-size:.78rem}
@media(max-width:900px){.layer-surface-settings-body{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.layer-surface-settings-body{grid-template-columns:1fr}}

/* V3.7.173 – Randbedingungen direkt am Schichtaufbau */
.layers-card-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:8px;
}
.layers-card-head h2{margin-bottom:4px}
.layers-card-head .input-direction-note{margin:0}
.component-surface-form{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.component-surface-form label{
  display:grid;
  gap:4px;
  margin:0;
  min-width:190px;
  color:#526274;
  font-size:.72rem;
  font-weight:700;
}
.component-surface-form select{
  min-height:36px;
  margin:0;
  padding:6px 30px 6px 9px;
  font-size:.8rem;
}
.component-surface-form .surface-save-button{
  min-height:36px;
  padding:7px 11px;
  white-space:nowrap;
}
.layers-table-fixed .surface-resistance-row td{
  padding-top:7px;
  padding-bottom:7px;
  background:#f7fafc;
  border-top:1px solid #d8e3ed;
  border-bottom:1px solid #d8e3ed;
  color:#526274;
  vertical-align:middle;
}
.layers-table-fixed .surface-resistance-row td:first-child{
  padding-left:10px;
}
.layers-table-fixed .surface-resistance-row strong{
  display:inline-block;
  min-width:48px;
  color:#17375e;
}
.layers-table-fixed .surface-resistance-row span{
  font-size:.76rem;
}
.layers-table-fixed .surface-resistance-row td:nth-child(2){
  text-align:center;
}
.surface-resistance-input{
  width:66px!important;
  min-width:66px;
  height:30px;
  margin:0!important;
  padding:4px 6px!important;
  text-align:right;
  font-size:.8rem!important;
}
.surface-resistance-input.is-readonly{
  background:#eaf0f5;
  color:#45586b;
  cursor:default;
}
.surface-resistance-inside td{border-top:2px solid #8fb4d1!important}
.surface-resistance-outside td{border-bottom:2px solid #c9a071!important}
@media(max-width:1050px){
  .layers-card-head{align-items:stretch;flex-direction:column}
  .component-surface-form{justify-content:flex-start}
}
@media(max-width:650px){
  .component-surface-form{display:grid;grid-template-columns:1fr}
  .component-surface-form label{min-width:0}
  .component-surface-form .surface-save-button{width:100%}
}

/* V3.7.174 – kompakter Kopf und saubere Rsi/Rse-Darstellung */
.layers-card-head{align-items:flex-start;gap:14px}
.component-surface-form{display:grid;grid-template-columns:minmax(210px,1fr) minmax(150px,.72fr) auto;align-items:end;gap:6px 8px;max-width:620px}
.component-surface-form label{min-width:0}
.component-surface-form .surface-save-button{align-self:end}
.layers-table-fixed .surface-resistance-row td{padding-top:8px;padding-bottom:8px}
.surface-resistance-label{display:flex;align-items:baseline;gap:10px;min-width:0}
.surface-resistance-label strong{min-width:auto!important}
.surface-resistance-value{display:flex;align-items:center;justify-content:flex-end;gap:5px;white-space:nowrap}
.surface-resistance-text{min-width:38px;text-align:right;font-weight:700;color:#17375e}
.surface-resistance-unit{font-size:.76rem;color:#526274}
.surface-resistance-input{width:64px!important;min-width:64px}
.surface-resistance-input[hidden],.surface-resistance-text[hidden]{display:none!important}
@media(max-width:1050px){.component-surface-form{max-width:none;width:100%}}
@media(max-width:650px){.component-surface-form{grid-template-columns:1fr}.surface-resistance-label{align-items:flex-start;flex-direction:column;gap:2px}.surface-resistance-value{justify-content:flex-start}}

/* V3.7.175 – Verwendungsart als Schaltflächen; saubere Trennung paralleler Schichten */
.component-surface-form{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:7px;
  width:min(100%,480px);
  max-width:480px;
}
.surface-use-selector{display:grid;gap:4px}
.surface-use-label{font-size:.74rem;font-weight:700;color:#334b63}
.surface-use-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.surface-use-button{
  min-height:36px;
  padding:7px 10px;
  border:1px solid #9fb3c8;
  border-radius:8px;
  background:#fff;
  color:#17375e;
  font:inherit;
  font-size:.82rem;
  font-weight:600;
  cursor:pointer;
}
.surface-use-button:hover{background:#f1f6fa;border-color:#6688aa}
.surface-use-button.is-active,
.surface-use-button[aria-pressed="true"]{
  background:#17375e;
  border-color:#17375e;
  color:#fff;
  font-weight:800;
}
.surface-settings-mask{
  display:grid;
  grid-template-columns:minmax(180px,1fr) auto;
  gap:7px;
  align-items:end;
  padding:8px;
  border:1px solid #d7e2ec;
  border-radius:9px;
  background:#f8fbfd;
}
.surface-settings-mask[hidden]{display:none!important}
.surface-settings-mask label{min-width:0}
.surface-settings-mask .surface-save-button{align-self:end}
.layers-table-fixed .layer-parallel-row > td{vertical-align:top}
.layers-table-fixed .layer-parallel-row .layer-path-line,
.layers-table-fixed .layer-parallel-row .layer-path-value{box-sizing:border-box}
.layers-table-fixed .layer-parallel-row .layer-path-b,
.layers-table-fixed .layer-parallel-row .layer-path-b-value{border-top:0!important}
.layers-table-fixed .insert-layer-row td{border-top:0!important}
@media(max-width:650px){
  .component-surface-form{width:100%;max-width:none}
  .surface-use-buttons{grid-template-columns:1fr}
  .surface-settings-mask{grid-template-columns:1fr}
  .surface-settings-mask .surface-save-button{width:100%}
}


/* V3.7.176 – gewählte Verwendungsart als einzelnes Feld; Auswahlmaske nur nach Klick */
.component-surface-form{
  width:min(100%,360px);
  max-width:360px;
}
.surface-use-selector{display:grid;gap:4px}
.surface-current-use{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  min-height:42px;
  padding:8px 12px;
  border:1px solid #17375e;
  border-radius:9px;
  background:#17375e;
  color:#fff;
  font:inherit;
  font-size:.92rem;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 2px 5px rgba(15,23,42,.10);
}
.surface-current-use:hover{background:#214b78}
.surface-current-use-chevron{font-size:1.35rem;line-height:1;transition:transform .16s ease}
.surface-current-use[aria-expanded="true"] .surface-current-use-chevron{transform:rotate(90deg)}
.surface-settings-mask{
  grid-template-columns:1fr auto;
  gap:7px;
  padding:9px;
}
.surface-settings-mask .surface-use-buttons{
  grid-column:1/-1;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.surface-settings-mask .surface-use-button{min-height:34px;padding:6px 8px}
/* Parallele Schichten: Aktionsspalte bleibt eine ruhige, durchgehende Zelle. */
.layers-table-fixed .layer-parallel-row .layer-actions{
  align-self:stretch;
  min-height:100%;
  border-top:0!important;
  border-bottom:1px solid #dfe7ef!important;
  background:#fff;
}
.layers-table-fixed .layer-parallel-row + .insert-layer-row td{
  height:0!important;
  min-height:0!important;
  padding:0!important;
  border:0!important;
  line-height:0!important;
}
@media(max-width:650px){
  .component-surface-form{width:100%;max-width:none}
  .surface-settings-mask{grid-template-columns:1fr}
  .surface-settings-mask .surface-use-buttons{grid-template-columns:1fr}
}

/* V3.7.177 – Verwendungsart ohne Label als vollbreites, leicht gefülltes Auswahlfeld */
.layers-card-head{
  align-items:flex-start;
}
.component-surface-form{
  flex:1 1 420px;
  width:auto;
  max-width:none;
}
.surface-use-selector{
  width:100%;
}
.surface-use-label{
  display:none!important;
}
.surface-current-use{
  width:100%;
  min-height:44px;
  padding:9px 14px;
  border:1px solid #9fb6cd;
  background:#eaf2f9;
  color:#17375e;
  box-shadow:none;
}
.surface-current-use:hover{
  background:#dfeaf4;
  border-color:#6f91b2;
}
.surface-current-use[aria-expanded="true"]{
  background:#dfeaf4;
  border-color:#52789e;
}
@media(max-width:900px){
  .layers-card-head{display:grid;grid-template-columns:1fr}
  .component-surface-form{width:100%;max-width:none}
}

/* V3.7.179 – Verwendungsart über volle Breite, Schichten direkt darunter */
.layers-card-head{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
}
.component-surface-form{
  order:1;
  width:100%;
  max-width:none;
  min-width:0;
}
.layers-title-wrap{
  order:2;
  min-width:0;
}
.layers-card-head h2{
  margin:0;
  font-size:1rem;
  line-height:1.15;
}
.surface-use-selector,
.surface-current-use{
  width:100%;
}
.surface-current-use{
  display:flex;
  align-items:center;
  justify-content:space-between;
  text-align:left;
}

/* V3.7.180 – vertikalen Flex-Abstand im Schichtenkopf entfernen */
.layers-card-head .component-surface-form{
  flex:0 0 auto;
}

/* V3.7.182 – hinterlüftet als Zusatz zur Außenwand */
.surface-ventilated-option{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:8px 10px;
  border:1px solid #cbd8e6;
  border-radius:8px;
  background:#f5f9fd;
}
.surface-ventilated-option[hidden]{display:none!important}
.surface-ventilated-option input{margin:0}


/* V3.7.183 – hinterlüftete Außenwand direkt in der Verwendungsart-Auswahl */
.surface-use-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}
.surface-use-button[data-ventilated="1"]{background:#f3f7fb}
.surface-use-button[data-ventilated="1"].is-active,
.surface-use-button[data-ventilated="1"][aria-pressed="true"]{background:#1f4772;color:#fff;border-color:#1f4772}
@media(max-width:650px){.surface-use-buttons{grid-template-columns:1fr}}

/* V3.7.184 – Tabellenkopf optisch mittig, saubere Trennlinie bei paralleler Schicht */
.layers-table-fixed thead th{
  vertical-align:middle;
}
.layers-table-fixed thead th:nth-child(3),
.layers-table-fixed thead th:nth-child(4),
.layers-table-fixed thead th:nth-child(5),
.layers-table-fixed thead th:nth-child(6),
.layers-table-fixed thead th:nth-child(7),
.layers-table-fixed thead th:nth-child(8),
.layers-table-fixed thead th:nth-child(9){
  text-align:center;
}
.layers-table-fixed thead th:nth-child(3),
.layers-table-fixed thead th:nth-child(4),
.layers-table-fixed thead th:nth-child(7){
  line-height:1.12;
}
.layers-table-fixed .layer-value-cell{
  text-align:center;
}
.layers-table-fixed .layer-path-value{
  justify-content:center;
}
.layers-table-fixed .layer-main-row td{
  border-bottom:1px solid #dfe7ef;
}
.layers-table-fixed .layer-parallel-row .layer-flags-cell,
.layers-table-fixed .layer-parallel-row .layer-actions{
  position:relative;
  vertical-align:top;
}
.layers-table-fixed .layer-parallel-row .layer-flags-cell::after,
.layers-table-fixed .layer-parallel-row .layer-actions::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  border-bottom:1px solid #dfe7ef;
}
.layers-table-fixed .layer-parallel-row + .insert-layer-row td{
  border:0!important;
}

/* V3.7.185 – Aktionsspalte bei parallelen Schichten als echte Tabellenzelle */
.layers-table-fixed td.layer-actions{
  display:table-cell!important;
  vertical-align:top!important;
  text-align:right!important;
  white-space:nowrap!important;
  border-bottom:1px solid #dfe7ef!important;
}
.layers-table-fixed .layer-parallel-row .layer-actions{
  min-height:0!important;
  align-self:auto!important;
  border-top:0!important;
  border-bottom:1px solid #dfe7ef!important;
}
.layers-table-fixed .layer-parallel-row .layer-actions::after{
  content:none!important;
  display:none!important;
}
.layers-table-fixed td.layer-actions .layer-action-button{
  display:inline-flex;
  margin-left:4px;
  vertical-align:top;
}

/* V3.7.186 – Kopieren und Löschen in einem intuitiven Drei-Punkte-Menü */
.layers-table-fixed .col-actions{width:48px!important}
.layers-table-fixed td.layer-actions{
  position:relative;
  overflow:visible;
  text-align:center;
  vertical-align:top;
  padding-left:3px;
  padding-right:3px;
}
.layers-table-fixed .layer-parallel-row .layer-actions{
  vertical-align:top;
  padding-top:9px;
}

/* V3.7.187 – Schichtaktionen per Hover{
  display:block;
  top:100%;
  margin-top:2px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-3px);
  transition:opacity .14s ease, transform .14s ease, visibility .14s ease;
}
@media (hover:none){
}

/* V3.7.188 – Aktionsmenü erscheint beim Hover über die Schicht, Aktion erst per Klick */
@media (hover:hover) and (pointer:fine){
}
@media (hover:none), (pointer:coarse){
}

/* V3.7.189 – Drag-Gesten: links kopieren, rechts löschen, vertikal verschieben */
.drag-ghost{
  transition:box-shadow .12s ease,opacity .12s ease,outline-color .12s ease;
}
.drag-ghost.drag-intent-neutral{
  /* BMC 022.92: war opacity:.82 - liess die darunterliegende Kopieren/Loeschen-Farbflaeche
     durch den Ghost durchscheinen ("Schicht verschieben wird durchsichtig"). Der Ghost
     traegt bereits einen weissen Hintergrund und soll die Zeile beim Swipe voll abdecken. */
  opacity:1;
  outline:2px dashed #7b8fa6;
  outline-offset:-2px;
}
.drag-ghost.drag-intent-copy{
  opacity:1;
  outline:3px solid #16824b;
  outline-offset:-3px;
  box-shadow:0 12px 30px rgba(22,130,75,.24);
}
.drag-ghost.drag-intent-delete{
  opacity:1;
  outline:3px solid #c43b3b;
  outline-offset:-3px;
  box-shadow:0 12px 30px rgba(196,59,59,.24);
}
.save-status.hint{color:#526274}
.save-status.sorting{color:#315d8a}
.save-status.copy{color:#16824b;font-weight:700}
.save-status.delete{color:#b52f2f;font-weight:700}

/* V3.7.191 – Einfügeanzeige nur beim vertikalen Verschieben */
.layers-table-fixed .sort-placeholder-arrow td{
  position:relative;
  height:28px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  overflow:visible;
}
.layers-table-fixed .sort-placeholder-arrow td::before{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  top:50%;
  border-top:2px solid var(--orange);
  transform:translateY(-50%);
}
.sort-target-arrow{
  position:absolute;
  left:50%;
  top:50%;
  z-index:2;
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:999px;
  background:var(--orange);
  color:#fff;
  font-size:17px;
  font-weight:800;
  line-height:1;
  transform:translate(-50%,-50%) rotate(90deg);
  box-shadow:0 4px 12px rgba(242,140,40,.34);
  animation:layerTargetBounce .75s ease-in-out infinite;
}
.sort-target-text{
  position:absolute;
  right:14px;
  top:50%;
  z-index:2;
  padding:2px 7px;
  border-radius:999px;
  background:#fff7ed;
  color:#9a4f00;
  font-size:11px;
  font-weight:700;
  transform:translateY(-50%);
}
@keyframes layerTargetBounce{
  0%,100%{margin-top:-3px}
  50%{margin-top:3px}
}
@media (prefers-reduced-motion:reduce){
  .sort-target-arrow{animation:none}
}

/* V3.7.192 – Zielpfeil bleibt über der gezogenen Schicht sichtbar */
.layers-table-fixed .sort-placeholder-arrow,
.layers-table-fixed .sort-placeholder-arrow td{
  position:relative;
  z-index:10020!important;
}
.layers-table-fixed .sort-placeholder-arrow td::before,
.sort-target-arrow,
.sort-target-text{
  z-index:10021!important;
  pointer-events:none;
}
.sort-target-arrow{
  box-shadow:0 0 0 3px rgba(255,255,255,.92),0 6px 16px rgba(242,140,40,.48);
}

/* V3.7.193 – Bauteilansicht wieder über die volle verfügbare Seitenbreite */
@media screen and (min-width:1181px){
  main.container:has(.component-editor-main),
  .container:has(.component-editor-main),
  .wrap:has(.component-editor-main){
    width:100%!important;
    max-width:none!important;
  }
  .two-col:has(> .component-editor-main){
    width:100%!important;
    max-width:none!important;
  }
}

/* V3.7.194 – unsichtbare Aktionsspalte verkleinern, Schichtaufbau verbreitern */
@media (hover:hover) and (pointer:fine){
  .component-editor-main .layers-table-fixed col.col-material{
    width:48%!important;
  }
  .component-editor-main .layers-table-fixed col.col-actions{
    width:1%!important;
  }
  .layers-table-fixed td.layer-actions{
    width:1%!important;
    min-width:0!important;
    padding-left:0!important;
    padding-right:0!important;
  }
}
@media (hover:none), (pointer:coarse){
  .component-editor-main .layers-table-fixed col.col-actions{
    width:48px!important;
  }
}


/* V3.7.195 – direkte Rsi/Rse-Bearbeitung mit Hinweis Benutzerdefiniert */
.surface-resistance-text{
  cursor:text;
  border-bottom:1px dotted #52789e;
}
.surface-resistance-text:hover{
  color:#0f4f86;
  border-bottom-color:#0f4f86;
}
.surface-custom-hint{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:2px 7px;
  border-radius:999px;
  background:#fff0d8;
  color:#8a5100!important;
  font-size:.7rem!important;
  font-weight:700;
  white-space:nowrap;
}
.surface-custom-hint[hidden]{display:none!important}

/* V3.7.199 – Bauteilkopf beim Scrollen fixieren */
.component-sticky-toolbar{
  position:sticky;
  top:0;
  z-index:120;
  margin-top:0;
  padding-top:14px;
  padding-bottom:14px;
  background:var(--bg);
  border-bottom:1px solid #d7e1eb;
  box-shadow:0 8px 18px rgba(15,23,42,.08);
}

/* V3.7.204 – B4-Austauschannahmen sichtbar kennzeichnen */
.layer-b4-settings{
  border:1px solid #e2c37c;
  border-radius:10px;
  background:#fffaf0;
}
.layer-b4-settings summary{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  cursor:pointer;
}
.layer-b4-settings summary small{color:#7a5a18}
.layer-b4-settings[open] summary{border-bottom:1px solid #ead7a6}
.layer-b4-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  padding:12px;
}
.layer-b4-settings > .field-help{display:block;padding:0 12px 12px}
.layer-b4-badge{
  display:inline-flex;
  width:max-content;
  margin-top:4px;
  padding:3px 7px;
  border:1px solid #d69a2d;
  border-radius:999px;
  background:#fff3cf;
  color:#7a4c00;
  font-size:.7rem;
  font-weight:800;
  line-height:1.1;
}
@media(max-width:760px){.layer-b4-grid{grid-template-columns:1fr}}

/* V3.7.206 – Zuordnung der RW2023-Nutzungsdauern zu QNG/ANG */
.usage-map-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end}
.usage-map-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.usage-map-stats span{padding:7px 10px;border:1px solid #dbe4ee;border-radius:999px;background:var(--soft-bg);font-size:.82rem;white-space:nowrap}
.usage-map-stats strong{color:#17375e}
.usage-map-editor{border-left:4px solid var(--orange)}
.usage-map-table td small{display:block;color:#657383;margin-top:3px}
.usage-map-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.78rem;font-weight:700;background:#edf1f5;color:#526274}
.usage-map-status.status-auto{background:#e3f3e8;color:#246637}
.usage-map-status.status-suggested{background:#fff0d8;color:#8a5100}
.usage-map-status.status-manual{background:#e5efff;color:#174b8a}
.usage-map-status.status-unmatched{background:#f3f4f6;color:#667085}
.inline-form{display:inline-block;margin:0 5px 0 0}
@media(max-width:900px){.usage-map-head{grid-template-columns:1fr}.usage-map-stats{justify-content:flex-start}}

/* V3.7.210 – zentrale, baustoffbezogene QNG-/BBSR-Zuordnung */
.lca-b4-map-head{display:flex;gap:18px;align-items:end;justify-content:space-between;flex-wrap:wrap}
.lca-b4-map-head .filter-bar{flex:1;margin:0}
.lca-b4-map-stats{display:flex;gap:8px;flex-wrap:wrap}
.lca-b4-map-stats span{padding:7px 10px;border:1px solid #d7e2ed;border-radius:999px;background:#f7fafc;font-size:.84rem}
.lca-b4-map-layout{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:18px;align-items:start}
.lca-b4-material-list{padding:12px;position:sticky;top:112px;max-height:calc(100vh - 132px);overflow:auto}
.lca-b4-material-list h2{font-size:1rem;margin:2px 6px 10px}
.lca-b4-material-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid transparent;border-radius:9px;color:inherit;text-decoration:none}
.lca-b4-material-item:hover{background:#f3f7fb;border-color:#d7e2ed}
.lca-b4-material-item.active{background:#e7f0f8;border-color:#7ea3c5}
.lca-b4-material-item span{min-width:0}
.lca-b4-material-item strong,.lca-b4-material-item small{display:block}
.lca-b4-material-item small{color:#66788a;margin-top:2px}
.mapping-dots{display:flex;gap:4px;font-style:normal;flex:0 0 auto}
.mapping-dots i{display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:3px 5px;border-radius:6px;font-size:.65rem;font-style:normal;font-weight:800}
.mapping-dots i.ok{background:#dff5e6;color:#166534}.mapping-dots i.missing{background:#f3f4f6;color:#7b8794}
.lca-b4-map-main{display:grid;gap:16px;min-width:0}
.mapping-material-head{display:flex;justify-content:space-between;gap:14px;align-items:center}
.mapping-material-head h2{margin:0 0 4px}.mapping-material-head p{margin:0;color:#66788a}
.mapping-chain{display:grid;grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr);gap:10px;align-items:stretch}
.mapping-step{display:flex;flex-direction:column;gap:12px;border-top:4px solid #cbd5e1}
.mapping-step.is-complete{border-top-color:#22a35a}.mapping-step.is-open{border-top-color:#e09a24}
.mapping-step header{display:flex;gap:10px;align-items:flex-start}
.mapping-step header>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#17375e;color:#fff;font-weight:800}
.mapping-step h3{margin:0}.mapping-step header p{margin:2px 0 0;color:#66788a;font-size:.86rem}
.mapping-current{padding:10px;border-radius:8px;background:#eef8f1;border:1px solid #ccebd7}
.mapping-current strong,.mapping-current small{display:block}.mapping-current small{margin-top:4px;color:#4f6b5a}
.mapping-empty{padding:10px;border-radius:8px;background:#fff7e8;border:1px solid #f1d49b;color:#7b5315}
.mapping-arrow{display:grid;place-items:center;font-size:2rem;color:#6f8295;font-weight:700}
.bbsr-search-form{display:flex;gap:8px;align-items:end}.bbsr-search-form label{flex:1}.bbsr-search-form button{margin-bottom:0}
.bbsr-candidate-list h2{font-size:1rem;margin-top:0}
.bbsr-candidate-grid{display:grid;gap:8px}
.bbsr-candidate-grid article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid #dce5ee;border-radius:9px;background:#fff}
.bbsr-candidate-grid strong,.bbsr-candidate-grid small{display:block}.bbsr-candidate-grid small{margin-top:4px;color:#66788a}
@media(max-width:1000px){.lca-b4-map-layout{grid-template-columns:1fr}.lca-b4-material-list{position:static;max-height:360px}.mapping-chain{grid-template-columns:1fr}.mapping-arrow{transform:rotate(90deg);height:24px}}
@media(max-width:650px){.mapping-material-head,.bbsr-candidate-grid article,.bbsr-search-form{align-items:stretch;flex-direction:column}.lca-b4-map-head{align-items:stretch}}

/* V3.7.211 – paralleler RW2023-Baustoffstamm */
.rw-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.rw-import-note{margin-bottom:14px;color:#46576a}
.rw-material-table{min-width:1040px}
.rw-material-table th{vertical-align:middle}
.rw-material-table td{vertical-align:top}
.rw-material-table th:first-child,.rw-material-table td:first-child{width:138px}
.rw-hatch-swatch{display:block;max-width:116px;border-radius:5px;background:#fff}
.rw-color-only{display:block;width:116px;height:42px;border:1px solid #bdc9d6;border-radius:5px}
.rw-hatch-meta,.rw-source-id,.rw-material-table td small{display:block;margin-top:4px;color:var(--muted-2);font-size:.76rem;line-height:1.35}
.rw-values{display:grid;grid-template-columns:repeat(2,minmax(70px,1fr));gap:4px 10px;white-space:nowrap}
.rw-values span{color:var(--muted-2)}.rw-values strong{color:#17375e}
.rw-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
.rw-lca-link{margin-bottom:7px;padding:6px 8px;border:1px solid #dce5ee;border-radius:7px;background:var(--soft-bg)}
.rw-lca-link strong,.rw-lca-link small{display:block}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0}
.pagination>div{display:flex;gap:8px}
@media(max-width:1100px){.rw-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Build 004: Material Center */
.material-code-badge,.material-code-link{display:inline-flex;align-items:center;width:max-content;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:700;letter-spacing:.02em;color:#16345c;background:#eef4fb;border:1px solid #c7d8ec;border-radius:6px;padding:3px 7px;white-space:nowrap}.material-code-link{text-decoration:none}.material-code-link:hover{background:#dfeaf7;border-color:#9eb9d8}.material-code-cell{min-width:132px}.family-variant-main .material-code-badge{margin-bottom:4px}.family-variant-main{display:flex;flex-direction:column;align-items:flex-start;gap:2px}

.view-as-form{display:inline-flex;margin-left:14px;vertical-align:middle}.view-as-form label{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#5c6b7a;white-space:nowrap}.view-as-form select{padding:5px 26px 5px 8px;border:1px solid #bdc9d8;border-radius:7px;background:#fff;color:var(--ink);font-weight:700}.nav-role-project_user{background:#eef6ff;color:var(--accent);border-color:#b9d7f0}@media(max-width:1100px){.topbar{flex-wrap:wrap}.topbar nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.topbar nav a{margin-left:8px}.view-as-form{margin-left:8px}}

/* Build 010: sticky actions in component master data */
.component-edit-form{position:relative}
.component-edit-sticky-actions{position:sticky;top:72px;z-index:90;display:flex;gap:10px;justify-content:flex-end;padding:10px 12px;background:rgba(255,255,255,.96);border:1px solid #d9e2ea;border-radius:10px;box-shadow:0 4px 14px rgba(23,55,94,.12)}
@media(max-width:760px){.component-edit-sticky-actions{top:58px}.component-edit-sticky-actions .button,.component-edit-sticky-actions button{flex:1}}

/* Build 013: QNG- und Austauschstatus im Material Center */
.material-b4-cell{min-width:130px}.material-b4-cell small{display:block;margin-top:.35rem;color:var(--muted)}
.material-assignment-summary{margin-bottom:1rem}.material-assignment-summary .toolbar-actions{margin-top:1rem;justify-content:flex-start}
.button.disabled{pointer-events:none;opacity:.65}


/* Build 014: QNG- und B4-Status direkt bei der Baustoffauswahl */
.material-data-badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid transparent}
.material-data-badge.ok{background:#ecfdf5;color:#166534;border-color:#bbf7d0}
.material-data-badge.missing{background:#fff7ed;color:#9a3412;border-color:#fed7aa}


/* Build 015: Baustoffdaten oben mitlaufend; Wischaktionen mit sichtbaren Aktionsflaechen */
@media(min-width:1100px){
  .material-catalog-layout{
    grid-template-columns:minmax(220px,.82fr) minmax(330px,1.28fr) minmax(250px,.9fr);
    grid-template-rows:auto;
    align-items:start;
  }
  .material-catalog-tree-panel,.material-catalog-results-panel{min-height:360px}
  .material-catalog-detail{
    grid-column:3;
    grid-row:1;
    position:sticky;
    top:0;
    align-self:start;
    max-height:min(58vh,520px)!important;
    overflow:auto!important;
    border-top:0!important;
    border-left:1px solid #e2e8f0!important;
    box-shadow:-8px 0 18px rgba(15,23,42,.035);
  }
  .material-catalog-detail>h4{position:sticky;top:-12px;z-index:2;background:#fff;padding:12px 0 8px;margin-top:-12px}
}
.layer-swipe-backdrop{
  position:fixed;
  z-index:9997;
  display:grid;
  grid-template-columns:1fr 1fr;
  overflow:hidden;
  border-radius:8px;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.08);
}
.layer-swipe-backdrop span{display:flex;align-items:center;padding:0 20px;color:#fff;font-weight:900;letter-spacing:.02em;text-transform:uppercase}
.layer-swipe-backdrop .swipe-copy{justify-content:flex-start;background:#16824b}
.layer-swipe-backdrop .swipe-delete{justify-content:flex-end;background:#c43b3b}
.layer-undo-toast{
  position:fixed;left:50%;bottom:24px;z-index:1600;transform:translateX(-50%);
  display:flex;align-items:center;gap:16px;max-width:calc(100vw - 28px);padding:11px 14px;
  border-radius:10px;background:#17375e;color:#fff;box-shadow:0 10px 30px rgba(15,23,42,.28)
}
.layer-undo-toast a{color:#fff;font-weight:900;text-decoration:underline;text-underline-offset:3px}
.layer-undo-toast.is-expired{opacity:0;transform:translate(-50%,12px);transition:opacity .25s,transform .25s}

/* 018t EECON Zuordnung */
.eecon-assignment-table td{vertical-align:top;padding-top:14px;padding-bottom:14px}
.eecon-source-cell strong{font-size:14px;line-height:1.3;display:block}
.eecon-source-values,.eecon-selected-values{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:7px;font-size:12px;color:#53657a}
.eecon-source-values span,.eecon-selected-values span{background:#f3f7fb;border:1px solid #dce6f0;border-radius:6px;padding:4px 7px}
.eecon-material-picker{display:grid;grid-template-columns:auto minmax(150px,220px) minmax(280px,1fr);gap:7px 9px;align-items:center}
.eecon-material-picker>small,.eecon-material-picker>.eecon-selected-values{grid-column:2/-1}
.eecon-material-picker select{min-width:0;width:100%}
.eecon-lambda-status{font-weight:700}
.eecon-lambda-status.is-ok{color:#147a3e;background:#e7f7ed;border-color:#bce5ca}
.eecon-lambda-status.is-warn{color:#9a5a00;background:#fff5d6;border-color:#ead28a}
.eecon-lambda-status.is-error{color:#a72c2c;background:#fdeaea;border-color:#efb9b9}
@media(max-width:900px){.eecon-material-picker{grid-template-columns:1fr}.eecon-material-picker>small,.eecon-material-picker>.eecon-selected-values{grid-column:1}.eecon-assignment-table{min-width:980px}}

/* BMC 022.100 (Nutzerauftrag 26.07.2026 "Auswahlfelder gleiche Laenge ...
   Browserfenster nicht ueberschreiten"): Baustoff-Auswahl in der PDF-Importvorschau hat eine
   feste, einheitliche Breite - haelt jede Tabellenzeile trotz mehrerer Baustoff-Felder
   (Pfad A/B, seit BMC 022.101 zusaetzlich Stegmaterial) schmal und gleich breit.
   BMC 022.101 (Nutzerauftrag 26.07.2026 "der Ändern Button macht keinen Sinn ... reicht das"):
   entfernt den bisherigen geschlossenen Name+"Ändern"-Button-Zustand (.pdf-material-closed/
   .pdf-material-toggle sind dadurch nicht mehr in Verwendung) - Suchfeld+Auswahlliste
   (.pdf-material-open) sind jetzt direkt sichtbar. */
.pdf-material-picker{max-width:230px;margin-bottom:6px}
.pdf-material-open{display:flex;flex-direction:column;gap:5px}
.pdf-material-open select{min-width:0;width:100%}
.pdf-material-open>.field-help{margin:0}


/* BMC 020 – Bestandsausbau */
.manufacturer-badge{display:inline-flex;align-items:center;width:max-content;padding:2px 7px;border-radius:999px;background:#eef4fb;color:var(--ink);font-size:.72rem;font-weight:700;margin:2px 0}
.bmc-audit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px}
.bmc-audit-card{border:1px solid #dce3ea;border-radius:12px;padding:14px;background:#fff}
.bmc-audit-card header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.bmc-audit-card header div{display:flex;flex-direction:column;gap:3px}.bmc-audit-card header small{color:#687482}
.bmc-audit-card header>span{min-width:34px;height:34px;border-radius:999px;display:grid;place-items:center;font-weight:800;background:#e8f4ea;color:#26733b}
.bmc-audit-card.has-issues header>span{background:#fff1dd;color:#9a5a00}
.bmc-audit-card ul{margin:12px 0 0;padding-left:18px;max-height:260px;overflow:auto}.bmc-audit-card li{margin:5px 0}.bmc-audit-card p{margin:12px 0 0;color:#52705a}
@media(max-width:900px){.bmc-audit-grid{grid-template-columns:1fr}}

/* BMC 021 – Materialfamilien und Varianten */
.family-row-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}
.family-summary-grid{grid-template-columns:repeat(5,minmax(145px,1fr))}
.family-editor-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:1rem;align-items:end;margin:1rem 0}
.family-editor-toolbar label{display:grid;gap:.35rem;font-weight:700}
.family-editor-toolbar input{width:100%}
@media(max-width:900px){.family-summary-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.family-editor-toolbar{grid-template-columns:1fr}}

/* BMC 021.2: sichtbarer Einstieg in Bestandsprüfung und Familienverwaltung */
.bmc-version-badge{display:inline-block;margin-left:8px;padding:3px 8px;border-radius:999px;background:#e8eef7;color:var(--ink);font-size:12px;vertical-align:middle}
.bmc-tools-card{display:flex;justify-content:space-between;align-items:center;gap:18px;border-left:4px solid var(--orange)}
.bmc-tools-card h2{margin:0 0 6px}.bmc-tools-card p{margin:0;color:#5f6f82;max-width:850px}.bmc-audit-main-button{background:var(--orange)!important;color:#fff!important;border:1px solid var(--orange)!important}
@media(max-width:900px){.bmc-tools-card{align-items:flex-start;flex-direction:column}}

/* BMC 021.7: ZUB-Helena-kompatible Schraffurvorschau */
.pattern-preview[data-pattern="wood"],
.pattern-preview[data-pattern="clt"],
.pattern-preview[data-pattern="veneer"],
.pattern-preview[data-pattern="osb"],
.pattern-preview[data-pattern="eps"]{
  background-image:repeating-linear-gradient(90deg,transparent 0 3px,#1e2632 4px 5px);
  background-size:8px 8px;
}
.pattern-preview[data-pattern="xps"]{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='24' viewBox='0 0 48 24'%3E%3Cpath d='M-12 0 A12 12 0 0 0 12 0 M12 0 A12 12 0 0 0 36 0 M36 0 A12 12 0 0 0 60 0 M0 24 A12 12 0 0 1 24 24 M24 24 A12 12 0 0 1 48 24 M12 0 L24 24 M36 0 L48 24 M12 0 L0 24 M36 0 L24 24' fill='none' stroke='%231e2632' stroke-width='1'/%3E%3C/svg%3E");
  background-size:48px 24px;background-repeat:repeat;
}
.pattern-preview[data-pattern="woodfibre"],
.pattern-preview[data-pattern="insulation"],
.pattern-preview[data-pattern="cellulose"],
.pattern-preview[data-pattern="woodfill"]{
  background-image:repeating-linear-gradient(45deg,transparent 0 9px,#1e2632 10px 11px),repeating-linear-gradient(-45deg,transparent 0 9px,#1e2632 10px 11px);
  background-size:14px 14px;
}
.pattern-preview[data-pattern="board"]{
  background-image:linear-gradient(#1e2632 1px,transparent 1px),linear-gradient(90deg,#1e2632 1px,transparent 1px);
  background-size:6px 6px;
}
.pattern-preview[data-pattern="steel"]{
  background-image:repeating-linear-gradient(45deg,transparent 0 2px,#1e2632 3px 4px);
  background-size:4px 4px;
}
.pattern-preview[data-pattern="aerated"]{
  background-image:radial-gradient(circle at 0 50%,#1e2632 0 1px,transparent 1.2px),repeating-linear-gradient(45deg,transparent 0 5px,#1e2632 6px 7px);
  background-size:8px 8px;
}
.pattern-preview[data-pattern="screed"]{
  background-image:radial-gradient(circle,#1e2632 0 1px,transparent 1.2px);
  background-size:6px 6px;
}
.pattern-preview[data-pattern="concrete"],
.pattern-preview[data-pattern="masonry"],
.pattern-preview[data-pattern="sandlime"],
.pattern-preview[data-pattern="brick"]{
  background-image:repeating-linear-gradient(45deg,transparent 0 5px,#1e2632 6px 7px);
  background-size:7px 7px;
}
.pattern-preview[data-pattern="gypsum"],
.pattern-preview[data-pattern="mortar"]{
  background-image:radial-gradient(circle,#1e2632 0 .8px,transparent 1px);
  background-size:10px 10px;
}


/* BMC 021.9: Mehrfachauswahl erst nach Aktionswahl */
.component-bulk-toolbar .toolbar-actions{align-items:center}
.component-bulk-toolbar button.is-active{outline:2px solid var(--orange);outline-offset:2px}
.bulk-select-cell[hidden]{display:none!important}

/* BMC 022.87 (RC1-Punkt 8: "Mehrfachaktionen sollen anders/neu gestaltet werden - noch nicht
   spezifiziert wie"): .compact-toolbar ist eine geteilte Klasse (auch bei Vorlagenbauteilen und
   Druckbemerkungen verwendet, dort verschachtelt in einer eigenen .card) - deshalb bewusst NICHT
   angefasst, um dort keine doppelte Kartenoptik zu erzeugen. Stattdessen gezielt nur
   .component-bulk-toolbar gestaltet (kommt nur an dieser einen Stelle vor, ist selbst die
   Karte). Die bestehende JS-Logik (reset()/activate(), component-bulk-form/-action/-submit/
   -cancel) bleibt unveraendert - dieser Patch ist rein optisch. Einzige, sehr kleine JS-Ergaenzung:
   activate()/reset() setzen zusaetzlich ein data-bulk-mode-Attribut auf das Formular, damit die
   Karte farblich den gewaehlten Modus widerspiegelt (siehe Skript weiter unten in index.php). */
.component-bulk-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  background:var(--soft-bg);
  border:1px solid var(--soft-line);
  transition:background .15s,border-color .15s;
}
.component-bulk-toolbar > div:first-child strong{
  color:var(--headline);
  font-size:15px;
}
.component-bulk-toolbar .small{
  margin:2px 0 0;
  color:var(--muted-2);
  font-size:.82rem;
}
.component-bulk-toolbar .button.danger{
  background:#fff1f2;
  color:#b42318;
  border:1px solid #fecdd3;
}
.component-bulk-toolbar .button.danger:hover{
  background:#ffe4e6;
}
.component-bulk-toolbar[data-bulk-mode="copy"]{
  background:#eff6ff;
  border-color:#bfdbfe;
}
.component-bulk-toolbar[data-bulk-mode="archive"]{
  background:#fff7ed;
  border-color:#fbd9ac;
}
.component-bulk-toolbar[data-bulk-mode="delete"]{
  background:#fff1f2;
  border-color:#fecdd3;
}
/* .checkbox-col wird geteilt (Mehrfachauswahl bei Vorlagenbauteilen UND hier bei der
   Bauteiluebersicht) - einheitliche, zentrierte Darstellung nuetzt beiden Stellen gleichermassen. */
.checkbox-col{
  width:38px;
  text-align:center;
}
.checkbox-col input[type="checkbox"]{
  width:16px;
  height:16px;
  cursor:pointer;
}
.component-list-checkbox:checked,
.component-select-checkbox:checked{
  outline:2px solid var(--accent);
  outline-offset:2px;
}

/* BMC 021.15 – Pfad-A/B-Tausch in der Schichtaufteilung */
.stud-share-values{position:relative}
/* BMC 022.165 (Nutzerauftrag 29.07.2026, "Seitenwechsel symbol schöner gestalten"): Text-Zeichen
   "⇄" durch ein echtes SVG-Pfeil-Icon ersetzt (siehe app.js), Kreis-Button per Flexbox zentriert
   statt ueber Zeilenhoehe/Schriftgroesse, sanfter Hover/Active-Übergang statt reinem Farbwechsel. */
.stud-share-swap{align-self:center;justify-self:center;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;border:2px solid var(--orange);background:#fff;color:#c1650f;cursor:pointer;box-shadow:0 3px 9px rgba(20,48,80,.16);z-index:2;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,color .15s ease}
.stud-share-swap svg{transition:transform .18s ease}
.stud-share-swap:hover{background:#fff4e8;color:#9a4b12;transform:scale(1.07);box-shadow:0 4px 12px rgba(20,48,80,.2)}
.stud-share-swap:hover svg{transform:rotate(180deg)}
.stud-share-swap:focus-visible{outline:2px solid rgba(242,140,40,.35);outline-offset:2px}
.stud-share-swap:active{transform:scale(.96)}
.stud-share-undo{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:10px;padding:8px 12px;border:1px solid #f1c48f;border-radius:9px;background:#fff8ee;color:#513416;font-size:13px}
.stud-share-undo[hidden]{display:none}
.stud-share-undo button{border:0;background:transparent;color:#0f4c81;text-decoration:underline;font-weight:700;cursor:pointer;padding:2px 4px}
.stud-share-values:not(.is-single){grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr)}
.stud-share-values.is-single .stud-share-swap{display:none}
/* BMC 022.165: die 90°-Drehung fuer die mobile Stapel-Ansicht sitzt jetzt auf dem SVG-Icon statt
   auf dem Button selbst - sonst wuerde der neue Hover-Effekt (transform:scale auf dem Button) die
   Drehung ueberschreiben, da beide dieselbe CSS-transform-Eigenschaft verwenden. */
@media(max-width:720px){.stud-share-values:not(.is-single){grid-template-columns:1fr}.stud-share-swap{margin:2px auto}.stud-share-swap svg{transform:rotate(90deg)}.stud-share-swap:hover svg{transform:rotate(270deg)}}


/* BMC 021.36 - Projekt-Bauteilkatalog nach verbindlicher Wordvorlage */
.catalog-print-actions{position:sticky;top:0;z-index:20;display:flex;justify-content:flex-end;gap:10px;padding:12px 20px;background:#eef3f9;border-bottom:1px solid #ccd5df}
.catalog-document{font-family:var(--catalog-font-family,Arial,Helvetica,sans-serif);color:#111;background:#dfe5ec;padding:20px 0}
/* BMC 022.53 (Nutzerrueckmeldung 24.07.2026): "PDF Ausdruck fehlen Linien und Farbe in den
   Zellen" - Hintergrundfarben (u. a. Tabellenkopf-Grau ueber --catalog-table-head-bg) werden
   von manchen Browsern beim Drucken/"Als PDF speichern" standardmaessig unterdrueckt, wenn
   print-color-adjust nicht explizit gesetzt ist. Betrifft nur diese Darstellungseigenschaft,
   keine Schraffur-/Rechenkernlogik. Falls nach diesem Fix weiterhin Linien/Farben fehlen, bitte
   zusaetzlich im Druckdialog "Hintergrundgrafiken" aktivieren (browserseitige Einstellung,
   nicht per CSS erzwingbar).*/
.catalog-document,.catalog-document *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}
.catalog-page{box-sizing:border-box;width:210mm;min-height:297mm;margin:0 auto 14px;background:#fff;padding:18mm 18mm 16mm;position:relative;page-break-after:always;font-size:10pt;line-height:1.28}
.catalog-page:last-child{page-break-after:auto}.catalog-cover{padding-top:32mm}.catalog-brand{position:absolute;right:18mm;top:18mm;text-align:right;color:#17385f}.catalog-brand strong{display:block;font-size:22pt}.catalog-brand span{font-size:9pt}.catalog-cover-main{margin-top:38mm;max-width:142mm}.catalog-cover h1{font-size:14pt;margin:0 0 5mm}.catalog-cover h2{font-size:15pt;line-height:1.35;margin:0;color:#111}.catalog-status{margin:26mm 0 22mm;font-size:11pt}.catalog-cover-data{display:grid;grid-template-columns:43mm 1fr;column-gap:8mm;row-gap:9mm;margin:0}.catalog-cover-data dt{font-weight:700}.catalog-cover-data dd{margin:0;min-height:8mm}.catalog-running-head{display:grid;grid-template-columns:28mm 1fr 30mm;gap:5mm;align-items:start;margin-bottom:10mm;font-size:8pt}.catalog-running-head>span{font-weight:700}.catalog-running-head>strong{text-align:right;color:#17385f}.catalog-page h1{font-size:15pt;margin:0 0 8mm}.catalog-page h2{font-size:12pt;margin:9mm 0 4mm}.catalog-toc{padding-left:7mm}.catalog-toc>li{margin:2.2mm 0}.catalog-toc ol{margin-top:1.5mm}.catalog-table,.catalog-performance{width:100%;border-collapse:collapse}.catalog-table th,.catalog-table td,.catalog-performance th,.catalog-performance td{border:0.35mm solid #222;padding:2.2mm 2.5mm;vertical-align:middle}.catalog-table th,.catalog-performance th{background:#d9d9d9;font-weight:400}.catalog-table.documents th:nth-child(1){width:48%}.catalog-reference{display:grid;grid-template-columns:12mm 1fr;gap:3mm}.catalog-component-title{display:grid;grid-template-columns:1fr 22mm;background:#d9d9d9;border:0.35mm solid #222;font-size:13pt}.catalog-component-title>*{padding:3mm}.catalog-component-title span{border-left:0.35mm solid #222;text-align:center}.catalog-build-grid{display:grid;grid-template-columns:44% 56%;border-left:0.35mm solid #222;border-right:0.35mm solid #222}.catalog-build-grid>div{padding:2mm;border-bottom:0.35mm solid #222}.catalog-build-grid>div+div{border-left:0.35mm solid #222}.catalog-sketch{height:92mm;display:flex;align-items:center;justify-content:center;overflow:hidden}.catalog-sketch svg{width:100%;height:100%;max-width:100%;max-height:100%}.catalog-performance{margin-top:3mm;font-size:8.5pt}.catalog-performance:not(.catalog-performance-fixed-grid) th:nth-child(1){width:46%}.catalog-performance:not(.catalog-performance-fixed-grid) th:nth-child(3){width:27%}.catalog-performance:not(.catalog-performance-fixed-grid) th:nth-child(4){width:27%}.catalog-performance:not(.catalog-performance-fixed-grid) td:nth-child(1){width:19%}.catalog-performance:not(.catalog-performance-fixed-grid) td:nth-child(2){width:27%}.catalog-performance td:nth-child(n+3){text-align:center}.catalog-remarks{border:0.35mm solid #222;margin-top:3mm;min-height:28mm}.catalog-remarks>strong{display:block;background:#d9d9d9;border-bottom:0.35mm solid #222;padding:2mm}.catalog-remarks p{margin:0;padding:2.5mm;white-space:normal}.catalog-page small{font-size:7.5pt}
@media print{body.catalog-print-view{background:#fff!important}.catalog-print-view .app-footer,.catalog-print-view>.topbar,.catalog-print-view>.ticket-floating-button{display:none!important}.catalog-print-view main.container{max-width:none!important;margin:0!important;padding:0!important}.catalog-document{padding:0;background:#fff}.catalog-page{margin:0;box-shadow:none;width:210mm;height:297mm;min-height:297mm;overflow:hidden}@page{size:A4 portrait;margin:0}}

/* BMC 021.37 - Katalogvorschau und eingeklappter Allgemeines-Editor */
.catalog-general-editor{border:1px solid #d8dee7;border-radius:10px;background:var(--soft-bg);overflow:hidden}
.catalog-general-editor summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;cursor:pointer;list-style:none}
.catalog-general-editor summary::-webkit-details-marker{display:none}
.catalog-general-editor summary span:first-child{display:flex;flex-direction:column;gap:2px}
.catalog-general-editor summary small{color:#657184;font-weight:400}
.catalog-general-editor[open] summary{border-bottom:1px solid #d8dee7;background:#f2f5f9}
.catalog-general-editor-body{padding:16px}
.catalog-general-editor-body label{display:block}
.catalog-general-editor-body textarea{width:100%;min-height:260px;resize:vertical}
.catalog-general-editor-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.catalog-general-editor-actions small{color:#657184}
.catalog-print-actions{position:sticky;top:0;z-index:50;display:flex;justify-content:flex-end;gap:10px;padding:12px 18px;background:rgba(255,255,255,.96);border-bottom:1px solid #d8dee7;box-shadow:0 2px 8px rgba(15,23,42,.08)}
.catalog-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 10px}.catalog-editor-heading-actions{display:flex;gap:8px;flex-wrap:wrap}.catalog-reference-heading{margin-top:22px}.catalog-document-rows,.catalog-reference-rows{display:flex;flex-direction:column;gap:8px}.catalog-document-row{display:grid;grid-template-columns:minmax(200px,1fr) 150px 90px 130px 38px;gap:8px;align-items:center}.catalog-reference-row{display:grid;grid-template-columns:80px minmax(260px,1fr) 38px;gap:8px;align-items:stretch}.catalog-reference-row textarea{min-height:64px!important}.catalog-document-row input,.catalog-reference-row input,.catalog-reference-row textarea{width:100%}.catalog-reference-row>input{height:100%;box-sizing:border-box}.catalog-reference-row .richtext-field{height:100%}.catalog-reference-row .richtext-editable{flex:1 1 auto}.catalog-row-remove{min-width:34px;padding:7px 9px}.button.danger{background:#9f2d2d;border-color:#9f2d2d;color:#fff}
.catalog-document-col-actions{display:grid;grid-template-columns:minmax(200px,1fr) 150px 90px 130px 38px;gap:8px;align-items:center;margin-bottom:6px}
.catalog-document-col-actions button{width:100%;padding:5px 4px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* BMC 022.54 (Nutzerrueckmeldung 24.07.2026): Freitextfeld+schmales 44px-Dropdown (BMC 022.48)
   wirkte gedraengt/ueberlappend - "einmal Maßstab reicht, die Breite als Dropdown" - ersetzt
   durch ein einziges Dropdown auf voller Spaltenbreite (wie die uebrigen Zeilenfelder). */
.catalog-document-row .catalog-scale-select{width:100%}
/* BMC 022.54 (Nutzerauftrag 24.07.2026): "Speichern und Abbrechen nach oben sticky beim
   Scrollen unter die Menüleiste" - das lange Projektformular (Bauteilkatalog-Abschnitt mit
   Unterlagen/Nachweise/Begriffe) macht die Speichern/Abbrechen-Zeile am Formularende sonst nur
   nach vollstaendigem Herunterscrollen erreichbar. WICHTIG: position:sticky wurde bewusst NICHT
   verwendet - die Leiste ist das LETZTE Kind des <form>, wodurch der sticky-Aktivierungsbereich
   mathematisch leer waere (der Container endet exakt an der Leiste selbst, es gibt keinen
   "Auslauf" danach; per Playwright-Messung nachgewiesen: die Leiste blieb ueber den gesamten
   Scrollbereich strikt an ihrer statischen Position, nie am oberen Rand fixiert). Stattdessen
   echtes position:fixed, dauerhaft sichtbar direkt unter der ebenfalls fixierten .topbar
   (dieselben top-Werte 54px/66px). form.card:has(...) bekommt zusaetzlichen unteren Abstand,
   damit die fixierte Leiste am Formularende nicht den letzten Inhalt verdeckt. */
.catalog-editor-save-bar{position:fixed;left:0;right:0;top:54px;z-index:30;display:flex;justify-content:center;gap:10px;background:#fff;padding:12px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:0 2px 8px rgba(29,53,87,.06)}
@media(max-width:1050px){.catalog-editor-save-bar{top:66px}}
form.card:has(.catalog-editor-save-bar){padding-bottom:72px}
/* BMC 022.47: Begriffe-Zeilen (Kürzel/Bezeichnung/Erläuterung) im gleichen Muster wie die
   Unterlagen-/Referenzzeilen darüber. */
.catalog-term-rows{display:flex;flex-direction:column;gap:8px}
.catalog-term-row{display:grid;grid-template-columns:90px 200px minmax(240px,1fr) 38px;gap:8px;align-items:start}
.catalog-term-row textarea{min-height:56px!important}
.catalog-term-row input,.catalog-term-row textarea{width:100%}
@media(max-width:900px){.catalog-document-row{grid-template-columns:1fr 1fr}.catalog-document-row .catalog-row-remove{grid-column:2;justify-self:end}.catalog-document-col-actions{grid-template-columns:1fr 1fr 1fr;gap:6px}.catalog-document-col-actions span{display:none}.catalog-reference-row{grid-template-columns:70px 1fr}.catalog-reference-row .catalog-row-remove{grid-column:2;justify-self:end}.catalog-term-row{grid-template-columns:1fr;gap:6px}.catalog-term-row .catalog-row-remove{justify-self:end}}

/* BMC 021.40: Bauteilkatalogdaten am Bauteil eingeklappt bearbeiten */
.catalog-edit-details{border:1px solid #d8dee8;border-radius:12px;background:#fff;overflow:hidden;margin-top:8px}
.catalog-edit-details>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;cursor:pointer;list-style:none;background:#f6f8fb}
.catalog-edit-details>summary::-webkit-details-marker{display:none}
.catalog-edit-details>summary span:first-child{display:flex;flex-direction:column;gap:3px}
.catalog-edit-details>summary small{color:#667085;font-weight:400}
.catalog-edit-details[open]>summary{border-bottom:1px solid #d8dee8}
.catalog-edit-details[open] .catalog-edit-button{visibility:hidden}
.catalog-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px}
.catalog-edit-grid .wide{grid-column:1/-1}
@media (max-width:850px){.catalog-edit-grid{grid-template-columns:1fr}}

/* BMC 021.41 – verbindlicher Seitenrahmen für Bauteilkatalog */
.catalog-document{counter-reset:catalog-page}
.catalog-page{counter-increment:catalog-page;box-shadow:0 10px 30px rgba(15,23,42,.18)}
.catalog-cover{padding:20mm 18mm 18mm}
.catalog-cover .catalog-brand{top:16mm;right:18mm;min-width:42mm}
.catalog-cover .catalog-brand strong{font-size:20pt;letter-spacing:-.02em}
.catalog-cover .catalog-brand span{display:block;margin-top:1mm;font-size:8.5pt;letter-spacing:.08em;text-transform:uppercase}
.catalog-cover-main{margin-top:48mm;max-width:154mm}
.catalog-cover h1{font-size:13.5pt;line-height:1.25;margin-bottom:3mm}
.catalog-cover h2{font-size:15.5pt;line-height:1.38;font-weight:700}
.catalog-cover .catalog-status{margin:21mm 0 19mm;font-size:10.5pt}
.catalog-cover-data{grid-template-columns:46mm 1fr;column-gap:7mm;row-gap:7.5mm;font-size:10pt}
.catalog-cover-data dt{font-weight:700}
.catalog-cover-data dd{line-height:1.35}
.catalog-running-head{grid-template-columns:27mm minmax(0,1fr) 31mm;gap:4mm;margin-bottom:11mm;line-height:1.28}
.catalog-running-head>span{font-size:8.5pt}
.catalog-running-head>div{font-size:8pt}
.catalog-running-head>strong{font-size:10pt;line-height:1.1}
.catalog-running-foot{position:absolute;left:18mm;right:18mm;bottom:8mm;display:grid;grid-template-columns:1fr auto;align-items:end;font-size:8pt;color:#111}
.catalog-running-foot span:first-child{font-size:10pt}
.catalog-page:not(.catalog-cover){padding-bottom:20mm}
.catalog-component-title{margin-top:1mm}
.catalog-page>h1{line-height:1.15}
@media print{
  .catalog-page{box-shadow:none}
  .catalog-running-foot{bottom:8mm}
}

/* BMC 021.43 - funktionsfaehiger Vorschau-Zoom */
body.catalog-print-view{overflow-x:auto;background:#cfd6df!important}
body.catalog-print-view>.topbar,
body.catalog-print-view>.app-footer,
body.catalog-print-view>.ticket-floating-button{display:none!important}
body.catalog-print-view main.container{max-width:none!important;min-width:100%;margin:0!important;padding:0!important}
.catalog-print-actions{left:0;right:0;min-width:100vw;align-items:center;justify-content:space-between}
.catalog-preview-info{display:flex;flex-direction:column;gap:2px;color:#243447}
.catalog-preview-info span{font-size:12px;color:#66758a}
.catalog-preview-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.catalog-preview-controls .active{box-shadow:inset 0 0 0 2px #17385f;font-weight:700}
.catalog-document{--catalog-preview-zoom:1;width:210mm;margin:0 auto;padding:18px 0 32px;zoom:var(--catalog-preview-zoom)}
.catalog-document .catalog-page{width:210mm;height:297mm;min-height:297mm;margin:0 auto 14mm;overflow:hidden;transform:none}
@supports not (zoom:1){
  .catalog-document{zoom:1;transform:scale(var(--catalog-preview-zoom));transform-origin:top center}
}
@media(max-width:900px){.catalog-print-actions{align-items:flex-start}.catalog-preview-info{display:none}.catalog-preview-controls{justify-content:flex-start}}
@media print{
  body.catalog-print-view{overflow:visible!important}
  .catalog-document{width:210mm!important;padding:0!important;zoom:1!important;transform:none!important;margin:0!important}
  .catalog-document .catalog-page{transform:none!important;margin:0!important}
  .catalog-document .catalog-page+ .catalog-page{margin-top:0!important}
}

/* BMC 021.44.1 - A4-Rahmen ohne grauen Vorschauhintergrund */
@media screen{
  body.catalog-print-view{background:#fff!important;overflow-x:auto}
  body.catalog-print-view main.container{max-width:none!important;width:100%!important;margin:0!important;padding:0!important}
  .catalog-print-actions{position:sticky!important;top:0!important;z-index:100!important}
  .catalog-document{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:28px 24px 60px!important;
    background:#fff!important;
    zoom:1!important;
    transform:none!important;
    box-sizing:border-box!important;
  }
  .catalog-document .catalog-page{
    display:block!important;
    box-sizing:border-box!important;
    width:210mm!important;
    height:297mm!important;
    min-height:297mm!important;
    max-height:297mm!important;
    margin:0 auto 18mm!important;
    background:#fff!important;
    border:1px solid #7f8791!important;
    box-shadow:0 8px 24px rgba(15,23,42,.24)!important;
    overflow:hidden!important;
    zoom:var(--catalog-preview-zoom,1)!important;
    transform:none!important;
  }
  .catalog-document .catalog-page:last-child{margin-bottom:0!important}
}
@media print{
  .catalog-document .catalog-page{
    zoom:1!important;
    border:0!important;
    box-shadow:none!important;
  }
}


/* BMC 021.45 - Titelblatt nach verbindlicher Wordvorlage */
.catalog-cover{
  padding:18mm 19mm 18mm 18mm!important;
  font-family:Arial,Helvetica,sans-serif;
}
.catalog-cover .catalog-brand{
  top:16mm!important;
  right:19mm!important;
  width:48mm;
  min-width:48mm!important;
  text-align:right;
  color:#111!important;
}
.catalog-cover .catalog-brand strong{
  display:block;
  font-size:18pt!important;
  line-height:1;
  font-weight:700;
  letter-spacing:-.03em!important;
}
.catalog-cover .catalog-brand span{
  display:block;
  margin-top:1.2mm!important;
  font-size:7.5pt!important;
  line-height:1.1;
  letter-spacing:.04em!important;
  text-transform:none!important;
}
.catalog-cover-main{
  margin-top:82mm!important;
  max-width:161mm!important;
}
.catalog-cover h1{
  margin:0 0 2.5mm!important;
  font-size:15pt!important;
  line-height:1.2!important;
  font-weight:700;
}
.catalog-cover h2{
  margin:0!important;
  max-width:157mm;
  font-size:15pt!important;
  line-height:1.34!important;
  font-weight:700!important;
  color:#111!important;
}
.catalog-cover .catalog-status{
  margin:17mm 0 12mm!important;
  font-size:10.5pt!important;
  line-height:1.2;
}
.catalog-cover .catalog-status strong{font-weight:700}
.catalog-cover-data{
  display:grid!important;
  grid-template-columns:47mm minmax(0,1fr)!important;
  column-gap:7mm!important;
  row-gap:6.2mm!important;
  margin:0!important;
  max-width:158mm;
  font-size:10pt!important;
  line-height:1.32;
}
.catalog-cover-data dt{
  margin:0!important;
  font-weight:700!important;
  align-self:start;
}
.catalog-cover-data dd{
  margin:0!important;
  min-height:0!important;
  line-height:1.32!important;
  white-space:normal;
}

/* BMC 021.46 - Layoutabgleich und mehrseitige Bauteile */
.catalog-page:not(.catalog-cover){padding:15mm 18mm 18mm!important;font-size:9pt;line-height:1.24}
.catalog-running-head{grid-template-columns:24mm minmax(0,1fr) 29mm!important;gap:4mm!important;margin-bottom:8mm!important;font-size:7.6pt!important;line-height:1.22!important}
.catalog-running-head>span{font-weight:700;font-size:8pt!important}
.catalog-running-head>strong{color:#111!important;font-size:9pt!important;text-align:right}
.catalog-page>h1{font-size:14pt!important;margin:0 0 6mm!important;font-weight:700}
.catalog-component-title{grid-template-columns:minmax(0,1fr) 20mm!important;font-size:11.5pt!important;border-width:.25mm!important;background:#d9d9d9!important}
.catalog-component-title>*{padding:2.3mm 2.6mm!important}
.catalog-component-title span{border-left-width:.25mm!important}
.catalog-component-title em{font-size:9pt;font-style:normal;font-weight:400}
.catalog-build-grid{grid-template-columns:42% 58%!important;border-left-width:.25mm!important;border-right-width:.25mm!important}
.catalog-build-grid>div{padding:1.8mm!important;border-bottom-width:.25mm!important}
.catalog-build-grid>div+div{border-left-width:.25mm!important}
.catalog-build-grid>div>small,.catalog-continuation-build>small{display:block;margin-bottom:1.5mm;font-size:7.5pt!important}
.catalog-sketch{height:84mm!important}
.catalog-continued-row td{text-align:center!important;font-style:italic;background:#f3f3f3;font-size:7.5pt!important}
.catalog-performance{margin-top:2.5mm!important;font-size:8pt!important;line-height:1.18}
.catalog-performance th,.catalog-performance td{border-width:.25mm!important;padding:1.65mm 2mm!important}
.catalog-performance th{background:#d9d9d9!important}
.catalog-performance:not(.catalog-performance-fixed-grid) th:nth-child(1){width:45%!important}.catalog-performance:not(.catalog-performance-fixed-grid) th:nth-child(3),.catalog-performance:not(.catalog-performance-fixed-grid) th:nth-child(4){width:27.5%!important}
.catalog-performance:not(.catalog-performance-fixed-grid) td:nth-child(1){width:18%!important}.catalog-performance:not(.catalog-performance-fixed-grid) td:nth-child(2){width:27%!important}
.catalog-remarks{margin-top:2.5mm!important;min-height:22mm!important;border-width:.25mm!important}
.catalog-remarks>strong{padding:1.6mm 2mm!important;border-bottom-width:.25mm!important;background:#d9d9d9!important}
.catalog-remarks p{padding:2mm!important;font-size:8pt;line-height:1.22}
.catalog-continuation-build{border:.25mm solid #222;border-top:0;padding:2mm 2mm 2.5mm}
.catalog-component-continuation .catalog-performance{margin-top:4mm!important}
.catalog-component-continuation .catalog-running-foot{display:grid!important}
.catalog-running-foot{left:18mm!important;right:18mm!important;bottom:7mm!important;font-size:7.5pt!important}
.catalog-running-foot span:first-child{font-size:9pt!important}
@media print{
  .catalog-page{break-after:page!important;page-break-after:always!important}
  .catalog-page:last-child{break-after:auto!important;page-break-after:auto!important}
  .catalog-component-title,.catalog-performance tr,.catalog-remarks{break-inside:avoid!important;page-break-inside:avoid!important}
}


/* BMC 021.48 - Seitenfolge und Frontmatter nach Wordvorlage */
.catalog-scope-page .catalog-scope-note{margin:118mm 0 0 0;font-size:10pt;line-height:1.35}
.catalog-toc-general-page .catalog-toc{margin-bottom:8mm}
.catalog-toc-general-page>h2{margin-top:7mm!important;font-size:12pt!important}
.catalog-toc-general-page>p{font-size:9pt;line-height:1.32;text-align:justify}
.catalog-documents-page>p{font-size:9pt;line-height:1.32}
.catalog-documents-page .catalog-table{margin-top:5mm}
.catalog-documents-page .catalog-reference{margin:4mm 0 0 0;line-height:1.3}
.catalog-terms-page .catalog-terms-table{margin-top:2mm}
.catalog-terms-page .catalog-terms-table td{padding:1.4mm 1.8mm;vertical-align:top;line-height:1.28}
.catalog-terms-page .catalog-terms-table td:first-child{width:25mm}
@media print{.catalog-scope-page .catalog-scope-note{margin-top:118mm}}


/* BMC 021.49 - Seitenumfang auf dem Titelblatt */
/* BMC 022.62 - Ursache: position:absolute;bottom:18mm koppelte diese Zeile komplett von der
   tatsaechlichen Hoehe der .catalog-cover-data-Liste ab. Bei laengeren, aber durchaus
   realistischen Feldinhalten (lange Firmennamen/Adressen) wuchs die Datenliste bis knapp an die
   fixe Position heran, wodurch "Der Bauteilkatalog umfasst X Seiten." optisch mit der letzten
   Datenzeile (Projektbearbeiterin) verschmolz - der gemeldete Fehler. Laut Wordvorlage
   (250612_..._LPX.docx, word/document.xml) ist dieser Satz ein normaler, im Textfluss stehender
   Absatz (SECTIONPAGES-Feld) direkt nach "Projektbearbeiterin" mit einer Leerzeile Abstand, danach
   ein manueller Seitenumbruch - keine fixe Position. Fix: normaler Dokumentfluss
   (position:static) statt position:absolute; margin-top statt fixem bottom-Abstand. Dadurch
   folgt die Zeile automatisch dem tatsaechlichen Ende von .catalog-cover-main, unabhaengig von
   dessen Hoehe. left/right/bottom-Overrides an anderen Stellen (z.B. Zeile ~6263) werden dadurch
   wirkungslos, da top/right/bottom/left bei position:static per Spezifikation ignoriert werden -
   empirisch mit Playwright bestaetigt (siehe Patch-Notiz). */
.catalog-cover-scope-note{
  position:static;
  margin:10mm 0 0 0;
  font-size:10pt;
  line-height:1.35;
}
@media print{
  .catalog-cover-scope-note{margin-top:10mm;}
}

/* BMC 022.69 - Deckblatt-Kennzeichnung "VORABZUG" fuer einen Arbeitsstand nach Aenderungen an
   einem bereits versendeten Stand (Versionierungslogik je Leistungsphase). Normaler Dokumentfluss
   wie .catalog-cover-scope-note, damit sie unabhaengig von der Laenge der Datenliste immer
   sichtbar direkt nach dem Deckblattinhalt erscheint. */
.catalog-vorabzug-marker{
  position:static;
  margin:6mm 0 0 0;
  font-size:13pt;
  font-weight:700;
  letter-spacing:.08em;
  color:#c1121f;
}


/* BMC 021.50 - Inhaltsverzeichnis wie Druckvorlage */
.catalog-toc-general-page .catalog-toc{list-style:none;margin:0 0 8mm 0;padding:0;font-size:9pt;line-height:1.28}
.catalog-toc-general-page .catalog-toc>li{display:grid;grid-template-columns:auto 1fr 9mm;align-items:end;column-gap:1.5mm;margin:0 0 1.35mm 0}
.catalog-toc-general-page .catalog-toc .catalog-toc-label{white-space:normal}
.catalog-toc-general-page .catalog-toc .catalog-toc-dots{min-width:8mm;border-bottom:.25mm dotted #555;transform:translateY(-.7mm)}
.catalog-toc-general-page .catalog-toc .catalog-toc-page{text-align:right;font-variant-numeric:tabular-nums}
.catalog-toc-general-page .catalog-toc>li.catalog-toc-group{margin-top:2.1mm;font-weight:700}
.catalog-toc-general-page .catalog-toc>li>ol{grid-column:1/-1;list-style:none;margin:1.1mm 0 0 8mm;padding:0;font-weight:400}
.catalog-toc-general-page .catalog-toc>li>ol>li{display:grid;grid-template-columns:auto 1fr 9mm;align-items:end;column-gap:1.5mm;margin:0 0 1.05mm 0}
.catalog-toc-general-page>h1{margin-bottom:7mm!important}
.catalog-toc-general-page>h2{padding-top:1.5mm;border-top:.25mm solid transparent}
@media print{
  .catalog-toc-general-page .catalog-toc .catalog-toc-dots{border-bottom-color:#555!important}
}

/* BMC 021.51 - Frontmatter im verbindlichen Word-Layout */
.catalog-toc-general-page,
.catalog-documents-page,
.catalog-terms-page{
  padding-top:14mm!important;
}
/* BMC 022.62 - Abstand Kopf->Ueberschrift nach Vorlage (Nutzerauftrag 24.07.2026). Laut
   word/document.xml der Wordvorlage (250612_..._LPX.docx) hat der Absatzstil "berschrift1"
   (Kapitelueberschriften) w:spacing w:before="720" Twips = 12,7mm - das ist der massgebliche
   Zielwert fuer den Abstand zwischen der laufenden Kopfzeile und der Kapitelueberschrift auf
   diesen Seiten. Per Playwright empirisch verifiziert, dass diese Regel (nicht die allgemeine
   ".catalog-running-head{margin-bottom:10mm!important}" bei BMC 021.80, die durch die hoehere
   Selektor-Spezifitaet hier ueberschrieben wird) den tatsaechlich gerenderten Abstand bestimmt -
   vorher 7mm, jetzt 12,7mm. */
.catalog-toc-general-page .catalog-running-head,
.catalog-documents-page .catalog-running-head,
.catalog-terms-page .catalog-running-head{
  margin-bottom:12.7mm!important;
}
.catalog-toc-general-page>h1,
.catalog-documents-page>h1,
.catalog-terms-page>h1{
  font-size:13pt!important;
  margin:0 0 5mm!important;
}
.catalog-toc-general-page .catalog-toc{
  font-size:8.55pt;
  line-height:1.2;
  margin-bottom:6.5mm;
}
.catalog-toc-general-page .catalog-toc>li{
  margin-bottom:1.05mm;
}
.catalog-toc-general-page .catalog-toc>li.catalog-toc-group{
  margin-top:1.55mm;
}
.catalog-toc-general-page .catalog-toc>li>ol{
  margin-top:.8mm;
}
.catalog-toc-general-page .catalog-toc>li>ol>li{
  margin-bottom:.8mm;
}
.catalog-toc-general-page>h2{
  margin:5.5mm 0 3mm!important;
  padding:0!important;
  font-size:11.5pt!important;
}
.catalog-toc-general-page>p{
  margin:0;
  font-size:8.65pt;
  line-height:1.28;
  text-align:justify;
  hyphens:auto;
}
.catalog-documents-page>p{
  margin:0 0 4.5mm;
  font-size:8.65pt;
  line-height:1.28;
  text-align:left;
}
.catalog-documents-page .catalog-table.documents{
  width:100%;
  margin:0 0 5mm;
  border-collapse:collapse;
  table-layout:fixed;
  font-size:8.3pt;
  line-height:1.22;
}
.catalog-documents-page .catalog-table.documents th,
.catalog-documents-page .catalog-table.documents td{
  border:0!important;
  background:transparent!important;
  padding:.8mm 1.5mm .8mm 0!important;
  vertical-align:top;
  text-align:left;
  font-weight:400;
}
.catalog-documents-page .catalog-table.documents th{
  padding-bottom:1.4mm!important;
}
.catalog-documents-page .catalog-table.documents th:nth-child(1),
.catalog-documents-page .catalog-table.documents td:nth-child(1){width:54%}
.catalog-documents-page .catalog-table.documents th:nth-child(2),
.catalog-documents-page .catalog-table.documents td:nth-child(2){width:16%}
.catalog-documents-page .catalog-table.documents th:nth-child(3),
.catalog-documents-page .catalog-table.documents td:nth-child(3){width:12%;text-align:center}
.catalog-documents-page .catalog-table.documents th:nth-child(4),
.catalog-documents-page .catalog-table.documents td:nth-child(4){width:18%;text-align:right;padding-right:0!important}
.catalog-documents-page .catalog-reference{
  display:grid;
  grid-template-columns:11mm minmax(0,1fr);
  gap:2.5mm;
  margin:3.2mm 0 0;
  font-size:8.45pt;
  line-height:1.28;
}
.catalog-documents-page .catalog-reference strong{
  font-weight:400;
}
.catalog-terms-page .catalog-terms-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  margin-top:0;
  font-size:8.45pt;
}
.catalog-terms-page .catalog-terms-table td{
  border:0!important;
  padding:1.15mm 2mm 1.15mm 0!important;
  vertical-align:top;
  line-height:1.25;
}
.catalog-terms-page .catalog-terms-table td:first-child{width:24mm}
.catalog-terms-page .catalog-terms-table td:nth-child(2){width:57mm}
.catalog-terms-page .catalog-terms-table td:last-child{padding-right:0!important}
.catalog-terms-page .catalog-terms-table strong{font-weight:400}
@media print{
  .catalog-toc-general-page>p{hyphens:auto}
}

/* BMC 021.52 - Bauteilseiten im verbindlichen Word-Raster */
.catalog-component-page{
  padding-top:14mm!important;
}
.catalog-component-page .catalog-running-head{
  margin-bottom:6.5mm!important;
}
.catalog-component-page>h1{
  font-size:12.5pt!important;
  margin:0 0 4.5mm!important;
}
.catalog-component-page .catalog-component-title{
  margin:0!important;
  min-height:10mm;
  align-items:center;
  font-size:10.8pt!important;
}
.catalog-component-page .catalog-component-title>*{
  padding:2mm 2.4mm!important;
}
.catalog-component-page .catalog-build-grid{
  grid-template-columns:47% 53%!important;
  border-width:.25mm!important;
}
.catalog-component-page .catalog-build-grid>div{
  padding:1.8mm 2mm!important;
  border-bottom-width:.25mm!important;
}
.catalog-component-page .catalog-build-grid>div+div{
  border-left-width:.25mm!important;
}
.catalog-component-page .catalog-build-grid>div>small,
.catalog-component-page .catalog-continuation-build>small{
  display:block;
  min-height:5.5mm;
  font-size:7.6pt!important;
  line-height:1.15;
}
.catalog-component-page .catalog-sketch{
  height:80mm!important;
  padding:1.5mm 0 0;
}
.catalog-component-page .catalog-performance{
  margin-top:3.2mm!important;
  table-layout:fixed;
  font-size:7.85pt!important;
  line-height:1.17;
}
.catalog-component-page .catalog-performance th,
.catalog-component-page .catalog-performance td{
  padding:1.55mm 1.8mm!important;
  vertical-align:middle!important;
}
.catalog-component-page .catalog-performance th{
  height:7.5mm;
}
.catalog-component-page .catalog-remarks{
  margin-top:2.8mm!important;
  min-height:24mm!important;
  font-size:8pt;
}
.catalog-component-page .catalog-remarks>strong{
  padding:1.6mm 2mm!important;
  font-weight:400;
}
.catalog-component-page .catalog-remarks p{
  padding:2mm!important;
  line-height:1.2;
}
.catalog-component-continuation .catalog-continuation-build{
  margin-top:0;
}
@media print{
  .catalog-component-page{
    padding-top:14mm!important;
  }
}

/* BMC 021.53 – Katalogskizzen ohne Legende, bauteilartgerecht ausgerichtet */
.catalog-component-page .catalog-sketch .component-svg-catalog{display:block;width:100%;height:100%}
.catalog-component-page .catalog-sketch-vertical .component-svg-catalog{max-width:100%;max-height:100%}
.catalog-component-page .catalog-sketch-horizontal .component-svg-catalog{max-width:100%;max-height:100%}


/* BMC 021.54 – Maßkette optional, Schichtliste ohne verschachtelte Tabelle */
.catalog-component-page .catalog-layer-list{
  width:100%;
  font-size:8.2pt;
  line-height:1.2;
}
.catalog-component-page .catalog-layer-row{
  display:grid;
  grid-template-columns:8mm 23mm minmax(0,1fr);
  align-items:stretch;
  border-bottom:.25mm solid #222;
}
.catalog-component-page .catalog-layer-row>div{
  padding:1.55mm 1.8mm;
  min-width:0;
}
.catalog-component-page .catalog-layer-row>div+div{border-left:.25mm solid #222}
.catalog-component-page .catalog-layer-row>div:first-child{text-align:center}
.catalog-component-page .catalog-layer-row>div:nth-child(2){text-align:right;white-space:nowrap}
.catalog-component-page .catalog-layer-row small{font-size:7pt;line-height:1.16}
.catalog-component-page .catalog-layer-row.sum{font-weight:700;min-height:10mm}
.catalog-component-page .catalog-continued-row{padding:2mm;text-align:center;border-bottom:.25mm solid #222;font-style:italic}
.catalog-component-page .catalog-sketch svg{overflow:visible}


/* BMC 021.57 - groessere Skizzenflaeche ohne Verzerrung und Zoom ganze Seite */
.catalog-sketch{height:98mm}
.catalog-sketch svg{display:block;width:100%;height:100%;object-fit:contain}
.catalog-sketch-vertical svg,.catalog-sketch-horizontal svg{max-width:100%;max-height:100%}
.catalog-preview-controls [data-catalog-fit-page].active{box-shadow:inset 0 0 0 2px #17385f;font-weight:700}
@media print{
  .catalog-sketch{height:98mm}
}

/* BMC 021.58 - inhomogene Schichten a/b, Feuchteschutzfeld und feste Ausgaberichtung */
.catalog-layer-row-inhomogeneous>div:first-child{font-weight:700}
.catalog-layer-row-inhomogeneous+ .catalog-layer-row-inhomogeneous{border-top-style:dotted}

/* BMC 021.59 - A4-Satzspiegel, dezente Inhomogen-Trennung und echte Ganzseiten-Vorschau */
.catalog-component-page{
  padding:18mm 19mm 18mm 19mm!important;
}
/* BMC 022.62 - Abstand Kopf->Ueberschrift, siehe ausfuehrliche Begruendung bei der analogen
   Regel fuer .catalog-toc-general-page/.catalog-documents-page/.catalog-terms-page weiter oben. */
.catalog-component-page .catalog-running-head{
  margin-bottom:12.7mm!important;
}
.catalog-component-page .catalog-layer-row-inhomogeneous-a{
  border-bottom:0!important;
}
.catalog-component-page .catalog-layer-row-inhomogeneous-b{
  border-top:.15mm dotted #a7adb5!important;
}
.catalog-component-page .catalog-layer-row-inhomogeneous-b>div{
  padding-top:1.35mm!important;
}
.catalog-component-page .catalog-layer-row-inhomogeneous-a>div{
  padding-bottom:1.35mm!important;
}
.catalog-preview-controls [data-catalog-fit-page]{
  min-width:94px;
}
@media screen{
  .catalog-document{
    padding-top:20px!important;
  }
}
@media print{
  .catalog-component-page{
    padding:18mm 19mm 18mm 19mm!important;
  }
}


/* BMC 021.60 - geschlossene Schichttabelle und getrennte Skizzenbeschriftung */
.catalog-component-page .catalog-layer-list{
  box-sizing:border-box;
  border:.25mm solid #222;
  background:#fff;
}
.catalog-component-page .catalog-layer-row:last-child,
.catalog-component-page .catalog-continued-row:last-child{
  border-bottom:0;
}
.catalog-component-page .catalog-layer-row-inhomogeneous-b{
  border-top:.10mm dotted #c3c7cc!important;
}
.catalog-component-page .catalog-layer-row-inhomogeneous-a>div,
.catalog-component-page .catalog-layer-row-inhomogeneous-b>div{
  border-color:#222;
}

/* BMC 021.61 - Schichtaufbau wie Vorlage, ohne Tabelle-in-Tabelle */
.catalog-component-page .catalog-build-grid > .catalog-build-layers{
  padding:0!important;
  display:flex;
  flex-direction:column;
  min-width:0;
}
.catalog-component-page .catalog-build-layers > small{
  display:block;
  padding:2mm 2.2mm 1.8mm;
}
.catalog-component-page .catalog-build-layers .catalog-layer-list{
  border:0!important;
  border-top:.25mm solid #222!important;
  margin:0!important;
  width:100%;
  flex:1 1 auto;
}
.catalog-component-page .catalog-layer-spacer{
  min-height:9mm;
  border-bottom:.25mm solid #222;
}
.catalog-component-page .catalog-layer-row.sum{
  min-height:10mm;
  border-top:0!important;
  border-bottom:0!important;
}
.catalog-component-page .catalog-layer-row.sum > div{
  display:flex;
  align-items:center;
}
.catalog-component-page .catalog-layer-row.sum > div:first-child{justify-content:center}
.catalog-component-page .catalog-layer-row.sum > div:nth-child(2){justify-content:flex-end}
.catalog-component-page .catalog-layer-row-inhomogeneous-b{
  border-top:.08mm dotted #c8ccd1!important;
}
.catalog-component-page .catalog-sketch{height:104mm!important}

/* BMC 021.62 - Katalogreihenfolge und Versandstand */
#catalog-sort-body tr[draggable="true"]{cursor:grab}
#catalog-sort-body tr[draggable="true"]:active{cursor:grabbing}
#catalog-sort-body tr[draggable="true"] td:first-child strong{display:inline-block;min-width:12mm}
.catalog-component-page .catalog-build-layers .catalog-layer-list{display:flex;flex-direction:column;min-height:92mm}
.catalog-component-page .catalog-layer-spacer{flex:1 1 auto;min-height:9mm}


/* BMC 021.63 - sichtbare Drag-Flaeche und stabiler Pruefhinweis-Button */
#catalog-sort-body .catalog-sort-cell{
  display:flex;
  align-items:center;
  gap:10px;
  white-space:nowrap;
}
#catalog-sort-body .catalog-drag-handle{
  width:28px;
  height:34px;
  flex:0 0 28px;
  display:grid;
  grid-template-columns:repeat(2,4px);
  grid-template-rows:repeat(3,4px);
  place-content:center;
  gap:4px;
  border:1px solid #bdc9d8;
  border-radius:7px;
  background:#fff;
  cursor:grab;
  user-select:none;
  touch-action:none;
}
#catalog-sort-body tr[draggable="true"] .catalog-drag-handle:hover{
  background:#eef3f8;
  border-color:#8ea1b7;
}
#catalog-sort-body tr[draggable="true"] .catalog-drag-handle:active{cursor:grabbing}
#catalog-sort-body tr[draggable="false"] .catalog-drag-handle{opacity:.35;cursor:not-allowed}
#catalog-sort-body .catalog-drag-handle i{
  display:block;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#657383;
}
.ticket-floating-button{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:1200;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:10px 16px;
  border:1px solid #fdba74;
  border-radius:999px;
  background:#fff7ed;
  color:#9a3412!important;
  font-size:14px;
  font-weight:700;
  line-height:1;
  text-decoration:none;
  box-shadow:0 8px 24px rgba(29,53,87,.18);
}
.ticket-floating-button:hover{background:#ffedd5;text-decoration:none}
@media(max-width:800px){
  .ticket-floating-button{right:12px;bottom:12px}
}
@media print{
  .ticket-floating-button{display:none!important}
}

/* BMC 021.64 - senkrechte Katalogskizze, dezenter Draggriff, Versandabfrage */
.catalog-component-page .catalog-sketch{height:112mm!important}
.catalog-component-page .catalog-sketch-vertical .component-svg-catalog{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
}
#catalog-sort-body .catalog-drag-handle{
  opacity:.34;
  transform:scale(.82);
  margin-right:1mm;
  transition:opacity .15s ease,transform .15s ease;
}
#catalog-sort-body tr[draggable="true"]:hover .catalog-drag-handle{
  opacity:.72;
  transform:scale(.88);
}
@media print{
  .catalog-component-page .catalog-sketch{height:112mm!important}
}

/* BMC 021.65 - Projektbauteile und Admin-Ideen/Todo */
.project-component-badge{font-size:11px;vertical-align:middle;background:#e8f1fb;color:#1d4f7a;border:1px solid #b8d2ea}
.admin-idea-floating-button{position:fixed;right:22px;bottom:76px;z-index:1210;display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 16px;border:1px solid #93c5fd;border-radius:999px;background:#eff6ff;color:#1d4ed8!important;font-size:14px;font-weight:700;line-height:1;text-decoration:none;box-shadow:0 8px 24px rgba(29,53,87,.18)}
.admin-idea-floating-button:hover{background:#dbeafe;text-decoration:none}
@media(max-width:800px){.admin-idea-floating-button{right:12px;bottom:66px}}
@media print{.admin-idea-floating-button{display:none!important}}

/* BMC 021.66 - Pruefstatus und floatendes Ideen/Todo-Fenster */
.admin-idea-floating-button{border:1px solid #93c5fd;cursor:pointer;font-family:inherit}
.admin-idea-modal[hidden]{display:none!important}
.admin-idea-modal{position:fixed;inset:0;z-index:5000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(15,23,42,.36)}
.admin-idea-dialog{width:min(620px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;border:1px solid #cbd5e1;border-radius:14px;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.28)}
.admin-idea-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #e2e8f0}
.admin-idea-dialog-head h2{margin:0;font-size:20px}
.admin-idea-close{width:34px;height:34px;padding:0;border:0;border-radius:50%;background:var(--soft-bg-2);color:#334155;font-size:24px;line-height:1;cursor:pointer}
.admin-idea-quick-form{display:grid;gap:14px;padding:18px}
.admin-idea-quick-form label{display:grid;gap:6px;font-weight:600}
.admin-idea-quick-grid{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:12px}
.admin-idea-dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:2px}
body.admin-idea-modal-open{overflow:hidden}
.component-origin-badge{margin-left:8px;vertical-align:middle}
.component-origin-badge.verified{background:#fff7ed;color:#9a3412;border-color:#fdba74}
.component-origin-badge.reference{background:#eff6ff;color:#1d4ed8;border-color:#93c5fd}
.verified-component-warning{margin-bottom:14px}
@media(max-width:700px){.admin-idea-modal{padding:12px}.admin-idea-quick-grid{grid-template-columns:1fr}.admin-idea-dialog{max-height:calc(100vh - 24px)}}
@media print{.admin-idea-modal,.admin-idea-floating-button{display:none!important}}

/* BMC 021.68 - schmale fixe Navigation und Vorlagenbauteile */
body{padding-top:54px}
.topbar{position:fixed;top:0;left:0;right:0;z-index:4000;min-height:54px;padding:7px 18px;gap:18px;box-shadow:0 2px 10px rgba(29,53,87,.08)}
.topbar .brand{font-size:17px;white-space:nowrap}
.topbar nav{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:nowrap;min-width:0}
.topbar nav>a{margin-left:0;white-space:nowrap;font-size:14px}
.topbar .nav-settings{margin:0;white-space:nowrap}
.topbar .view-as-form{margin-left:0}
.topbar .view-as-form label{font-size:11px}
.topbar .view-as-form select{padding-top:4px;padding-bottom:4px;max-width:170px}
.container{margin-top:22px}
.catalog-template-page .catalog-template-body{display:grid;gap:5mm}
.catalog-template-image{display:flex;justify-content:center;align-items:center;min-height:62mm;border:1px solid #222}
.catalog-template-image img{display:block;max-width:100%;max-height:58mm;object-fit:contain}
@media(max-width:1050px){body{padding-top:66px}.topbar{min-height:66px}.topbar nav{overflow-x:auto;justify-content:flex-start}.topbar .brand{font-size:16px}}
@media print{body{padding-top:0}.topbar{display:none!important}}

/* BMC 022.84 (Nutzerauftrag 25.07.2026: "erstelle wieder eine gelbe Leiste in der Seite, wo ich
   sehe welcher Stand wir gerade online haben"): bewusst NICHT position:fixed - .topbar ist bereits
   fixiert und body/.topbar/.catalog-editor-save-bar sind ueber synchronisierte top-Werte
   (54px/66px) miteinander verzahnt (siehe BMC 021.68/022.54 weiter oben). Als ganz normales,
   erstes Flusselement in <body> gerendert, landet die Leiste dank des bereits vorhandenen
   body{padding-top:54px/66px} automatisch direkt unter der fixierten Kopfzeile, ohne dass an den
   bestehenden, mehrfach verzahnten fixierten Positionswerten irgendetwas geaendert werden muss.
   Sie scrollt mit dem Seiteninhalt mit - fuer den kurzen Blick "welcher Stand ist gerade online"
   direkt nach dem Laden voellig ausreichend, ohne das bestehende fixierte Layout anzufassen. */
.bmc-stand-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:6px 16px;background:#ffe066;color:#4a3b00;font-size:12.5px;font-weight:600;text-align:center;border-bottom:2px solid #e6c200}
.bmc-stand-bar-date{font-weight:400;opacity:.85}

/* BMC 021.69 - Vorlagenbauteile als Layoutformular + Todo-Kopierfunktion */
.catalog-switch{display:inline-flex;align-items:center;gap:.55rem;cursor:pointer}.catalog-switch input{position:absolute;opacity:0;pointer-events:none}.catalog-switch span{width:2.25rem;height:1.2rem;border-radius:999px;background:#cbd5e1;position:relative;transition:.18s}.catalog-switch span:after{content:"";position:absolute;top:2px;left:2px;width:.95rem;height:.95rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.18s}.catalog-switch input:checked+span{background:#16a34a}.catalog-switch input:checked+span:after{transform:translateX(1.05rem)}.catalog-switch b{font-size:.82rem;font-weight:600}.template-toggle-form{margin:0}.catalog-template-editor{max-width:920px;margin-inline:auto}.template-editor-title{margin-bottom:0}.template-input-table input,.template-remarks textarea,.template-layout-fields input{width:100%;border:0;background:#fff4f4;color:#b91c1c;padding:.35rem .45rem;box-sizing:border-box;font:inherit}.template-input-table input:focus,.template-remarks textarea:focus,.template-layout-fields input:focus{outline:2px solid #ef4444;outline-offset:-2px}.template-layout-grid{display:grid;grid-template-columns:42% 58%;border:1px solid #111;border-top:0;min-height:260px}.template-layout-image,.template-layout-fields{padding:.65rem}.template-layout-image{border-right:1px solid #111}.template-layout-image img{display:block;max-width:100%;max-height:220px;margin:1rem auto;object-fit:contain}.template-image-placeholder{display:grid;place-items:center;min-height:190px;border:1px dashed #94a3b8;color:var(--muted-2);text-align:center}.template-layout-fields{display:grid;align-content:start;gap:.8rem}.template-remarks{margin-top:.75rem}.template-remarks textarea{display:block;margin-top:.4rem;border:1px solid #111;min-height:100px}.admin-idea-copy-source{appearance:none;border:0;background:transparent;padding:0;text-align:left;color:inherit;font:inherit;cursor:copy;width:100%}.admin-idea-copy-source:hover strong{text-decoration:underline}.copy-toast{position:fixed;right:1.25rem;bottom:1.25rem;z-index:3000;background:var(--headline);color:#fff;padding:.7rem 1rem;border-radius:.55rem;box-shadow:0 8px 24px rgba(15,23,42,.28)}

/* BMC 021.70 */
.catalog-switch-button{border:0;background:transparent;display:inline-flex;align-items:center;gap:.55rem;padding:.15rem;cursor:pointer;color:#0f2747}
.catalog-switch-track{width:2.35rem;height:1.25rem;border-radius:999px;background:#cbd5e1;display:inline-flex;align-items:center;padding:.14rem;transition:.18s}
.catalog-switch-track i{width:.97rem;height:.97rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:.18s}
.catalog-switch-button.is-on .catalog-switch-track{background:#16a34a}.catalog-switch-button.is-on .catalog-switch-track i{transform:translateX(1.08rem)}
.template-duplicate-form{display:inline-flex;margin-left:.35rem}.catalog-switch-button:hover .catalog-switch-track{outline:2px solid #93c5fd}
.layer-toggle-lca.is-warning{background:#b91c1c!important;color:#fff!important;border-color:#991b1b!important;position:relative;padding-right:1.35rem}
.catalog-template-image img,.template-layout-image img{max-width:100%;max-height:240px;object-fit:contain}
/* BMC 021.71 */
.template-layout-image img{max-height:290px}
.template-image-actions{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-top:.65rem}
.template-layer-editor{display:grid;gap:.5rem}.template-layer-editor-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.template-layer-row{display:grid;grid-template-columns:90px 1fr auto;gap:.4rem;align-items:center}.template-layer-row input{min-width:0}
.catalog-template-layers{border:1px solid #222;border-top:0}.catalog-template-layers>div{display:grid;grid-template-columns:9mm 24mm 1fr;min-height:8mm;border-top:1px solid #222;align-items:center}.catalog-template-layers span,.catalog-template-layers strong,.catalog-template-layers p{padding:1.2mm 1.5mm;margin:0}.catalog-template-layers span,.catalog-template-layers strong{border-right:1px solid #222}.catalog-template-page .catalog-template-image img{max-height:72mm}
.layer-toggle-lca.is-warning{background:#b91c1c!important;color:#fff!important;padding-right:.55rem!important}
/* BMC 021.71 */
.template-layout-image img{max-height:290px}.template-image-actions{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-top:.65rem}.template-layer-editor{display:grid;gap:.5rem}.template-layer-editor-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.template-layer-row{display:grid;grid-template-columns:90px 1fr auto;gap:.4rem;align-items:center}.template-layer-row input{min-width:0}.catalog-template-layers{border:1px solid #222;border-top:0}.catalog-template-layers>div{display:grid;grid-template-columns:9mm 24mm 1fr;min-height:8mm;border-top:1px solid #222;align-items:center}.catalog-template-layers span,.catalog-template-layers strong,.catalog-template-layers p{padding:1.2mm 1.5mm;margin:0}.catalog-template-layers span,.catalog-template-layers strong{border-right:1px solid #222}.catalog-template-page .catalog-template-image img{max-height:72mm}.layer-toggle-lca.is-warning{background:#b91c1c!important;color:#fff!important;padding-right:.55rem!important}

/* BMC 021.72 */
.template-layout-image{min-height:360px;display:flex;flex-direction:column}.template-layout-image img{width:100%;max-width:420px;max-height:340px;flex:1;object-fit:contain;margin:12px auto}.template-layer-editor{margin-top:.4rem}.template-toggle-form,.template-duplicate-form{position:relative;z-index:1}.catalog-switch-button{min-width:78px;justify-content:flex-start}

/* BMC 021.74 */
.catalog-template-variant td:nth-child(2){padding-left:2rem;}
.template-variant-mark{display:inline-block;margin-right:.4rem;color:var(--muted-2);font-size:.78rem;font-weight:700;}
.template-layer-row{grid-template-columns:2rem minmax(7rem,.42fr) minmax(14rem,1.58fr) auto!important;align-items:center;}
.template-layer-number{display:inline-flex;align-items:center;justify-content:center;width:1.55rem;height:1.55rem;border:1px solid #94a3b8;border-radius:50%;font-weight:700;font-size:.8rem;background:#fff;color:#0f2747;}
.catalog-template-layers>div{grid-template-columns:2.1rem 6rem 1fr;}
/* BMC 022.103 (Nutzerauftrag 26.07.2026, Bauabschnitt 2+3 "Bauteilkarten"): Sonderbauteil-Zeilen
   (Pos./Material/Dicke/Funktion) - gleiches Grid-Muster wie .template-layer-row{display:grid;grid-template-columns:2rem 1fr 1fr 1fr auto;gap:.4rem;align-items:center;margin-bottom:.4rem;}
/* Admin-/Projekt-Kennwertzeilen-Editor (Konfigurationswerkzeug{display:grid;grid-template-columns:4.5rem 1fr 1fr auto;gap:.4rem;align-items:center;margin-bottom:.4rem;}

/* BMC 021.75 - Fensterwahl und nummerierte Bemerkungen */
.window-type-selector{margin:0 0 18px;padding:14px;border:1px solid #cbd7e6;border-radius:10px;background:#fff}
.window-type-options{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;margin-top:10px}
.window-type-option{display:flex;flex-direction:column;align-items:center;gap:7px;padding:10px;border:1px solid #c8d4e3;border-radius:9px;cursor:pointer;background:var(--soft-bg)}
.window-type-option:has(input:checked){border-color:#1d5ea8;box-shadow:0 0 0 2px rgba(29,94,168,.14);background:#eef5ff}
.window-type-option input{position:absolute;opacity:0;pointer-events:none}
.window-type-option img{width:96px;height:68px;object-fit:contain}
.window-type-option span{font-weight:600;text-align:center}
.template-remarks-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.template-remark-row{display:grid;grid-template-columns:42px 1fr auto;gap:8px;align-items:center;margin:6px 0}
.template-remark-row>span{text-align:center;font-weight:700}
.template-remark-row input{width:100%}
.component-print-remarks{margin-top:16px}
.catalog-window-type{display:flex;align-items:center;gap:14px;margin:8px 0 14px;padding:8px 12px;border:1px solid #111}
.catalog-window-type img{width:95px;height:65px;object-fit:contain}
.catalog-window-type span{font-weight:700}
.catalog-remarks p{margin:3px 0}
.catalog-remarks p span{display:inline-block;min-width:28px}
@media(max-width:900px){.window-type-options{grid-template-columns:repeat(2,minmax(120px,1fr))}}

/* BMC 021.76 */
.catalog-template-variant{background:#fafcff;}
.catalog-template-variant td:nth-child(2){padding-left:2.4rem;}
.template-variant-title{display:block;margin:0 0 1rem;}
.template-variant-title input{width:100%;}
.catalog-remarks p{display:flex;gap:.45rem;margin:.18rem 0;}
.catalog-remarks p span{min-width:1.8rem;}

/* BMC 021.77 – Benutzer-Einladung */
.user-invite-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.user-invite-form label{min-width:320px;flex:1}.invitation-link-box{display:flex;align-items:end;gap:10px;margin-top:14px;padding:12px;border:1px solid #cbd5e1;border-radius:10px;background:var(--soft-bg)}.invitation-link-box label{flex:1}.invitation-link-box input{width:100%}

/* BMC 021.78 - zentrale Admin-Einstellungen und Branding */
.topbar .brand{display:flex;align-items:center;gap:8px}.topbar .brand img{display:block;max-width:112px;max-height:34px;object-fit:contain}.logo-placeholder{display:inline-flex;align-items:center;gap:12px}.logo-placeholder img{display:block;max-width:180px;max-height:72px;object-fit:contain}.admin-settings-form{display:grid;gap:0}.admin-settings-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.admin-settings-section-head h2{margin:0 0 5px}.admin-settings-section-head p{margin:0;color:#657383}.branding-upload-card{display:grid;align-content:start;gap:10px;padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--soft-bg)}.branding-upload-card>strong{color:var(--ink)}.branding-preview{display:grid;place-items:center;min-height:120px;padding:12px;border:1px dashed #aebdce;border-radius:9px;background:#fff;color:#657383}.branding-preview img{display:block;max-width:100%;max-height:96px;object-fit:contain}.branding-upload-card label{font-weight:600}.branding-upload-card input[type=file]{width:100%;margin-top:6px}.admin-settings-actions{display:flex;justify-content:flex-end;margin:0 0 20px}.settings-status{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.settings-status.is-ok{background:#e8f7ee;color:#176b35}.settings-status.is-error{background:#fde9e9;color:#8f2020}.admin-mail-test-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.admin-mail-test-form label{flex:1 1 320px;font-weight:600}.admin-mail-test-form input{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #bdc9d8;border-radius:7px}.catalog-brand img{display:block;max-width:62mm;max-height:24mm;object-fit:contain;margin-bottom:5mm}@media(max-width:700px){.admin-settings-section-head{flex-direction:column}.branding-upload-card{grid-column:1/-1}.admin-mail-test-form{align-items:stretch}.admin-mail-test-form button{width:100%}}

/* BMC 022.43 (Nutzerauftrag 24.07.2026): "Bauteilkatalog-Farben" im Admincenter besser
   beschreiben und darstellen - kompakte Farbfelder (statt der auf volle Breite gezogenen
   input[type=color], die wie ein leerer Balken wirkten) plus HEX-Textfeld und eine echte
   Live-Vorschau mit Beispieltext, damit die Wirkung ohne Umweg ueber die Druckvorschau sofort
   sichtbar ist. */
.catalog-color-field{margin-top:6px}
.catalog-color-sample{margin-top:8px;padding:7px 12px;border:.35mm solid #222;border-radius:4px;font-size:12.5px;color:#111;background:#d9d9d9;transition:background-color .1s ease}
.catalog-color-sample-title{font-size:13pt;font-weight:600}
.catalog-color-sample-table{font-size:8.5pt}
/* BMC 022.44: Ueberschriften-Vorschau auf weissem statt grauem Grund - Kapitelueberschriften
   stehen im echten Katalog auf der weissen Seite, keine Farbflaeche dahinter. */
.catalog-heading-preview{background:#fff;color:#111;transition:font-size .1s ease,font-weight .1s ease}
.catalog-heading-bold-label{display:flex;align-items:center;gap:8px;margin-top:28px;font-weight:600}
.catalog-heading-bold-label input{width:auto!important;margin-top:0!important}
.color-row .button.tiny{white-space:nowrap}

/* BMC 021.79 - Admincenter mit seitlichen Tabs */
.admin-center-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:22px;align-items:start}
.admin-center-tabs{position:sticky;top:76px;display:grid;gap:7px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 4px 18px rgba(29,53,87,.05)}
.admin-center-tabs-title{padding:4px 8px 8px;color:#657383;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.admin-center-tabs a{display:grid;gap:2px;padding:10px 12px;border:1px solid transparent;border-radius:8px;color:#243447;text-decoration:none}
.admin-center-tabs a:hover{background:var(--bg);border-color:var(--line)}
.admin-center-tabs a.active{background:#eef5ff;border-color:#9fc3e8;color:#123b63;box-shadow:inset 3px 0 0 var(--ink)}
.admin-center-tabs strong{font-size:14px}
.admin-center-tabs span{color:#657383;font-size:12px;line-height:1.25}
.admin-center-content{min-width:0}
@media(max-width:980px){.admin-center-layout{grid-template-columns:1fr}.admin-center-tabs{position:static;grid-auto-flow:column;grid-auto-columns:minmax(160px,1fr);overflow-x:auto}.admin-center-tabs-title{display:none}.admin-center-tabs a.active{box-shadow:inset 0 -3px 0 var(--ink)}}
@media(max-width:620px){.admin-center-tabs{grid-auto-columns:minmax(140px,72vw)}.admin-center-tabs span{display:none}}

/* BMC 021.88 - Admincenter Schraffurzuordnung */
.hatch-admin-summary{margin-bottom:16px}
.hatch-admin-intro p{margin-top:0;color:#657383}
.hatch-preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.hatch-preset-card{display:grid;grid-template-columns:1fr;gap:10px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--soft-bg)}
.hatch-preset-card strong,.hatch-preset-card small,.hatch-preset-card code{display:block}
.hatch-preset-card small{color:#657383;margin:2px 0 4px}
.hatch-preset-card code{font-size:.76rem;color:#475569;white-space:normal}
.hatch-preset-swatch{display:block}
.hatch-preset-swatch svg,.hatch-preset-swatch .material-swatch-html{width:100%;max-width:170px;height:auto}
/* BMC 022.148: die Karte ist jetzt ein Wrapper-Div (.hatch-preset-card, siehe oben), dieser Button
   ist nur noch der innere Klickbereich fuer "Kopie anpassen" - braucht deshalb eigene Resets gegen
   die globale button{background:var(--ink);color:#fff;...}-Vorgabe (sonst dunkler Kasten). */
.hatch-preset-button{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;background:transparent;border:1px solid transparent;border-radius:8px;padding:6px}
.hatch-preset-button:hover,.hatch-preset-button:focus-visible{border-color:#7ab0e4;background:#eef6ff;box-shadow:0 0 0 3px rgba(36,104,171,.12);outline:0}
.hatch-preset-button em{display:inline-flex;margin-top:6px;color:#175d99;font-size:.76rem;font-style:normal;font-weight:800}
/* BMC 022.148 (Nutzerauftrag 28.07.2026, "Standardschraffuren anpassen koennen auch ohne Kopie"):
   die Karte ist jetzt ein Wrapper-Div (statt selbst der Button), damit ein zusaetzlicher
   "Gruppe bearbeiten"-Link neben dem bestehenden "Kopie anpassen"-Klickbereich Platz hat. */
.hatch-preset-edit-link{display:inline-flex;margin-top:2px;font-size:.76rem;font-weight:700;color:#92400e}
.hatch-preset-edit-link:hover{text-decoration:underline}
.hatch-group-form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.hatch-group-form-hint{color:#657383;font-size:.85rem}
.hatch-group-form-actions .button.danger{background:#fff1f2;color:#b42318;border-color:#fecdd3}
.hatch-group-form-actions .button.danger:hover{background:#ffe4e6}
/* BMC 022.150 (Nutzerrueckmeldung "die zuordnung will ich nicht tippen sondern anhaken koennen"):
   Kategorien-Checkboxen statt reinem Freitext fuer die haeufigsten Alias-Begriffe. */
.hatch-alias-categories-field{margin-top:4px}
.hatch-alias-categories-label{display:block;font-weight:600;margin-bottom:6px}
.hatch-alias-categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 12px;max-height:190px;overflow:auto;padding:10px;border:1px solid #d8e2ee;border-radius:10px;background:var(--soft-bg)}
.hatch-alias-checkbox{display:flex;align-items:center;gap:6px;font-weight:400;font-size:.88rem}
.hatch-alias-checkbox input{width:auto!important;margin:0!important}
.hatch-create-form{align-items:end}
.hatch-color-input-row{display:flex;align-items:center;gap:10px;margin-top:5px}
.hatch-color-box{display:inline-flex;align-items:center;justify-content:center;min-width:92px;height:34px;padding:0 8px;border:1px solid #94a3b8;border-radius:8px;font-size:.75rem;font-weight:800;color:var(--headline);text-shadow:0 1px 0 rgba(255,255,255,.65)}
.hatch-live-preview{display:block;margin-top:8px}
.hatch-live-preview svg{display:block;width:138px;max-width:100%;height:auto;border-radius:8px;background:#fff}
@media(max-width:720px){}

/* BMC 021.88 - Katalogtabellen: geschlossene Linien und graue Kopfzellen */
.catalog-component-page .catalog-build-grid{
  border:.25mm solid #222!important;
  border-top:0!important;
}
.catalog-component-page .catalog-build-grid>div{
  box-sizing:border-box!important;
}
.catalog-component-page .catalog-build-head{
  background:var(--catalog-table-head-bg,#d9d9d9)!important;
  border-bottom:.25mm solid #222!important;
  min-height:7mm!important;
}
.catalog-component-page .catalog-build-sketch,
.catalog-component-page .catalog-build-layers{
  border-bottom:.25mm solid #222!important;
}
.catalog-component-page .catalog-build-sketch{
  border-left:0!important;
}
.catalog-component-page .catalog-build-layers,
.catalog-component-page .catalog-build-layers-head{
  border-left:.25mm solid #222!important;
}
.catalog-component-page .catalog-build-layers .catalog-layer-list{
  border-top:0!important;
}
.catalog-component-page .catalog-layer-row{
  border-bottom:.25mm solid #222!important;
}
.catalog-component-page .catalog-layer-row:last-child{
  border-bottom:0!important;
}
.catalog-component-page .catalog-layer-row>div+div{
  border-left:.25mm solid #222!important;
}
.catalog-component-page .catalog-performance{
  border-collapse:collapse!important;
  border:.25mm solid #222!important;
}
.catalog-component-page .catalog-performance th,
.catalog-component-page .catalog-performance td{
  border:.25mm solid #222!important;
}
.catalog-component-page .catalog-performance th{
  background:var(--catalog-table-head-bg,#d9d9d9)!important;
}
.catalog-component-page .catalog-remarks{
  padding:0!important;
  border:.35mm solid #222!important;
  min-height:22mm!important;
}
.catalog-component-page .catalog-remarks>strong{
  display:block!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:1.6mm 2mm!important;
  background:var(--catalog-table-head-bg,#d9d9d9)!important;
  border-bottom:.35mm solid #222!important;
}
.catalog-component-page .catalog-remarks p{
  margin:0!important;
  padding:1.2mm 2mm!important;
  line-height:1.12!important;
}

/* BMC 021.91 - Bauteilskizze beim Hover in der Bauteiluebersicht */
.component-preview-trigger{
  display:inline-block;
  max-width:100%;
  padding:1px 4px;
  border-radius:6px;
  cursor:help;
  vertical-align:middle;
}
.component-preview-trigger::before{
  content:none;
  display:none;
}
.component-preview-trigger:hover,
.component-preview-trigger:focus{
  background:#edf6ff;
  outline:none;
}
.component-hover-preview{
  position:fixed;
  z-index:3000;
  width:700px;
  max-width:calc(100vw - 24px);
  padding:12px;
  border:1px solid #cbd5e1;
  border-radius:16px;
  background:#fff;
  box-shadow:0 18px 45px rgba(15,23,42,.22);
  pointer-events:none;
}
.component-hover-preview-head{
  display:flex;
  gap:8px;
  align-items:baseline;
  margin-bottom:8px;
  color:var(--headline);
}
.component-hover-preview-head strong{
  flex:0 0 auto;
}
.component-hover-preview-head span{
  min-width:0;
  overflow:visible;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#475569;
}
.component-hover-preview-sketch{
  overflow:hidden;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#fff;
}
.component-hover-preview-sketch svg{
  display:block;
  width:100%;
  height:auto;
  max-height:none;
}
.component-hover-preview-loading,
.component-hover-preview-empty{
  padding:18px;
  color:var(--muted-2);
  text-align:center;
}

/* BMC 021.80 - Bauteilkatalog naeher an Wordvorlage 250612 */
.catalog-template-red{color:#f00!important}
.catalog-cover{padding:18mm 25mm 18mm 30mm!important}
.catalog-cover-rail{position:absolute;top:12mm;right:25mm;width:38mm;color:#17385f;font-size:7.2pt;line-height:1.18}
.catalog-cover-rail .catalog-brand{position:static!important;width:auto!important;min-width:0!important;text-align:left!important;color:#17385f!important}
.catalog-cover-rail .catalog-brand img{display:block;max-width:36mm;max-height:28mm;object-fit:contain;margin:0 0 3mm auto}
.catalog-cover-rail .catalog-brand strong{display:block;font-size:20pt!important;line-height:1;color:#17385f!important;text-align:left}
.catalog-cover-rail .catalog-brand span{display:block;margin-top:.8mm!important;font-size:7.5pt!important;letter-spacing:0!important;text-transform:none!important;color:#17385f!important}
.catalog-cover-main{margin-top:41mm!important;max-width:128mm!important}
.catalog-cover h1{font-size:14pt!important;margin-bottom:2.5mm!important}
.catalog-cover h2{max-width:126mm!important;font-size:14.5pt!important;line-height:1.35!important}
.catalog-cover .catalog-status{margin:18mm 0 17mm!important;font-size:11pt!important}
.catalog-cover-data{grid-template-columns:48mm minmax(0,1fr)!important;column-gap:7mm!important;row-gap:12mm!important;max-width:128mm!important;font-size:10pt!important}
.catalog-cover-data dd{color:#f00!important}
/* BMC 022.68 - die vormalige Regel ".catalog-cover-scope-note{left:30mm!important;right:25mm!important;
   bottom:18mm!important}" wurde hier entfernt. Sie stammte aus der Zeit vor BMC 022.62 (position:absolute)
   und wurde damals als "wirkungslos" eingestuft, weil top/right/bottom/left bei position:static ignoriert
   werden - das stimmt nur OHNE aktives Briefpapier. Mit aktivem Briefpapier (.catalog-cover.has-letterhead-pdf,
   siehe Zeile ~7015) wird .catalog-cover-scope-note auf position:relative umgeschaltet (noetig fuers
   Stapel-/z-index-Verhalten ueber dem Briefpapier-Hintergrund) - und bei position:relative wirkt "bottom"
   sehr wohl (top errechnet sich dann als -bottom), wodurch die Zeile "Der Bauteilkatalog umfasst X Seiten."
   um 18mm nach oben verschoben wurde und mit der letzten Datenzeile (Projektbearbeiterin) ueberlappte -
   genau der Fehler, der eigentlich schon durch BMC 022.62 behoben sein sollte, aber nur bei AKTIVEM
   Briefpapier erneut auftrat. Mit Playwright empirisch reproduziert (Bruecke via getComputedStyle: top
   wertete sich zu "-68.0315px" = -18mm) und nach Entfernen dieser Regel verifiziert. */
.catalog-page:not(.catalog-cover),.catalog-component-page{padding:16mm 25mm 10mm 30mm!important}
.catalog-running-head{grid-template-columns:27mm minmax(0,1fr) 34mm!important;gap:6mm!important;margin-bottom:10mm!important;color:#111!important}
.catalog-running-head>span{color:#f00!important;font-size:8.5pt!important}
.catalog-running-head>div{font-size:8.5pt!important;line-height:1.12!important}
.catalog-running-brand{display:grid!important;justify-items:start!important;align-content:start!important;text-align:left!important;color:#17385f!important;font-style:normal;font-weight:400!important;line-height:1.1}
.catalog-running-brand img{display:block;max-width:28mm;max-height:22mm;object-fit:contain;margin:0 0 1mm auto}
.catalog-running-brand span{display:block;color:#17385f;font-size:13pt;font-weight:400}
.catalog-running-brand em{display:block;margin-top:2mm;color:#111;font-size:8.5pt;font-style:normal;font-weight:400}
.catalog-running-foot{left:30mm!important;right:25mm!important;bottom:8mm!important;display:block!important;text-align:right!important;color:#111!important}
.catalog-running-foot span:first-child{display:none!important}
.catalog-running-foot span:last-child{font-size:8.5pt!important}
.catalog-toc-general-page .catalog-toc{font-size:9pt!important;line-height:1.32!important}
.catalog-toc-general-page>h2,.catalog-documents-page>h1,.catalog-terms-page>h1,.catalog-component-page>h1{display:grid;grid-template-columns:17mm 1fr;column-gap:0;align-items:baseline}
.catalog-documents-page .catalog-table.documents{border-collapse:collapse!important;border:.35mm solid #111!important;font-size:9pt!important;line-height:1.25!important}
.catalog-documents-page .catalog-table.documents th,.catalog-documents-page .catalog-table.documents td{border:.25mm solid #111!important;padding:2.2mm 3mm!important;background:transparent!important;vertical-align:middle!important}
.catalog-documents-page .catalog-table.documents th{font-weight:700!important;color:#111!important;text-align:left}
.catalog-documents-page .catalog-table.documents tbody td{color:#f00!important}
.catalog-documents-page .catalog-table.documents th:nth-child(2),.catalog-documents-page .catalog-table.documents td:nth-child(2),.catalog-documents-page .catalog-table.documents th:nth-child(3),.catalog-documents-page .catalog-table.documents td:nth-child(3),.catalog-documents-page .catalog-table.documents th:nth-child(4),.catalog-documents-page .catalog-table.documents td:nth-child(4){text-align:center!important}
.catalog-documents-page .catalog-reference{grid-template-columns:16mm minmax(0,1fr)!important;font-size:9pt!important;margin-top:8mm!important}
.catalog-documents-page .catalog-reference:not(:first-of-type){margin-top:5mm!important}
.catalog-documents-page .catalog-reference span,.catalog-documents-page .catalog-reference strong+*{color:#f00!important}
.catalog-component-page .catalog-build-grid{grid-template-columns:42.4% 57.6%!important}
.catalog-component-page .catalog-sketch{height:101mm!important}
.catalog-component-page .catalog-layer-list{min-height:92mm}
.catalog-component-page .catalog-performance{font-size:8pt!important}
.catalog-component-page .catalog-remarks{min-height:27mm!important}
@media print{
  .catalog-page:not(.catalog-cover),.catalog-component-page{padding:16mm 25mm 10mm 30mm!important}
}

/* BMC 021.81 - Katalogkorrekturen: Platzhalter schwarz, Header/Skizzen lesbarer */
.catalog-template-red,
.catalog-cover-data dd,
.catalog-running-head>span,
.catalog-documents-page .catalog-table.documents tbody td,
.catalog-documents-page .catalog-reference span,
.catalog-documents-page .catalog-reference strong+*{color:#111!important}
.catalog-running-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 34mm!important;
  grid-template-areas:"project logo" "title logo"!important;
  column-gap:7mm!important;
  row-gap:2mm!important;
  align-items:start!important;
}
.catalog-running-head>span{grid-area:project;font-size:9pt!important;line-height:1.15!important}
.catalog-running-head>div{grid-area:title;font-size:9pt!important;line-height:1.2!important}
.catalog-running-head>strong{grid-area:logo}
.catalog-running-brand{justify-items:end!important;text-align:right!important}
/* BMC 022.50 (Nutzerauftrag 24.07.2026): "mehr Platz zwischen Leistungsphase und der
   darüberliegenden Beschreibung, besseren Umbruch hier waehlen" - die Leistungsphase-Zeile
   der laufenden Kopfzeile bekommt einen eigenen Block mit Abstand statt eines reinen <br>,
   damit sie sich von der Titel-/Adresszeile sichtbar abhebt. */
.catalog-running-head-desc{display:block}
.catalog-running-head-phase{display:block;margin-top:1.6mm}
.catalog-running-brand img{max-width:32mm!important;max-height:22mm!important;margin:0 0 1.5mm auto!important}
.catalog-running-brand span{font-size:11pt!important;text-align:right!important}
.catalog-running-brand.has-logo span{display:none!important}
.catalog-running-brand em{font-size:8pt!important;text-align:right!important}
.catalog-component-page .catalog-sketch .component-svg-catalog text{
  font-size:17px!important;
  font-weight:700!important;
  paint-order:stroke!important;
  stroke:#fff!important;
  stroke-width:3px!important;
  stroke-linejoin:round!important;
}
.catalog-performance th,
.catalog-performance td{
  vertical-align:middle!important;
}
.catalog-performance td:nth-child(n+3){
  text-align:center!important;
}
.catalog-component-page .catalog-layer-row>div{
  display:flex!important;
  align-items:center!important;
}
.catalog-component-page .catalog-layer-row>div:nth-child(1),
.catalog-component-page .catalog-layer-row>div:nth-child(2){
  justify-content:center!important;
  text-align:center!important;
}
.catalog-component-page .catalog-layer-row>div:nth-child(3){
  justify-content:flex-start!important;
  line-height:1.18!important;
}
.catalog-remarks-editable{cursor:text;position:relative}
.catalog-remarks-editable:hover{outline:1.2mm solid rgba(29,95,154,.18);outline-offset:1mm}
.catalog-remarks-editable::after{
  content:"Zum Bearbeiten klicken";
  position:absolute;
  right:2mm;
  top:1.6mm;
  font-size:7pt;
  color:#657383;
}
@media print{
  .catalog-remarks-editable{cursor:auto}
  .catalog-remarks-editable:hover{outline:0}
  .catalog-remarks-editable::after{display:none!important}
}

/* BMC 021.82 - Katalogskizze als zugeschnittenes Bauteilblatt-Bild */
.catalog-document{
  --catalog-title-head-bg:#d9d9d9;
  --catalog-table-head-bg:#d9d9d9;
}
.catalog-component-title{
  background:var(--catalog-title-head-bg,#d9d9d9)!important;
}
.catalog-performance th,
.catalog-table th{
  background:var(--catalog-table-head-bg,#d9d9d9)!important;
}
.catalog-build-grid>div{
  padding:0!important;
}
.catalog-component-page .catalog-build-grid{
  /* BMC 022.60 (Nutzerrueckmeldung 24.07.2026, "Linien sollen untereinanderstehen") - dieser
     Wert (spaeter in der Kaskade, gewinnt bei gleicher Spezifitaet gegen die 43%/57%-Regel
     weiter oben) war vermutlich versehentlich zu 48%/52% verschoben worden. Gegen die
     verbindliche Word-Vorlage abgeglichen (tblGrid der kombinierten Skizze/Aufbau/Eigenschaften-
     Tabelle: Spalten 1630+2126 twips fuer "Skizze zum Bauteil" von 8859 twips gesamt = 42,4%,
     Rest 57,6% fuer "Aufbau"). Wert exakt auf die Vorlage gesetzt statt der zuvor abweichenden
     43%/57%- bzw. 48%/52%-Werte. */
  grid-template-columns:42.4% 57.6%!important;
}
.catalog-build-head,
.catalog-continuation-build>small{
  display:block!important;
  margin:0!important;
  padding:1.8mm 2.4mm!important;
  background:var(--catalog-table-head-bg,#d9d9d9)!important;
  border-bottom:.35mm solid #222!important;
  color:#111!important;
  font-size:7.8pt!important;
  line-height:1.15!important;
}
.catalog-build-head{
  font-weight:400!important;
}
.catalog-build-layers-head,
.catalog-build-layers{
  border-left:.35mm solid #222!important;
}
.catalog-build-sketch{
  border-left:0!important;
}
.catalog-build-grid .catalog-layer-list{
  margin:0!important;
}
.catalog-sketch-sheet-image{
  height:106mm!important;
  padding:0!important;
  overflow:hidden!important;
  align-items:center!important;
  justify-content:center!important;
}
.catalog-sketch-sheet-image .component-svg-sheet-image,
.catalog-sketch-sheet-image .component-svg-catalog{
  width:132%!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  transform:translateX(-2%) scale(1.08);
  transform-origin:center center;
}
.catalog-sketch-sheet-image.catalog-sketch-horizontal .component-svg-sheet-image,
.catalog-sketch-sheet-image.catalog-sketch-horizontal .component-svg-catalog{
  width:124%!important;
  transform:translateX(-1%) scale(1.04);
}
.catalog-sketch-sheet-image.catalog-sketch-vertical .component-svg-catalog{
  width:150%!important;
  transform:translateX(-4%) scale(1.12);
}
.catalog-component-page .catalog-build-layers{
  overflow:hidden;
}
.catalog-component-page .catalog-layer-row>div{
  padding-top:1.7mm!important;
  padding-bottom:1.7mm!important;
}

/* BMC 021.84 - Katalogfeinschliff */
.catalog-sketch-sheet-image.catalog-sketch-vertical .component-svg-catalog{
  width:118%!important;
  transform:translateX(-1.5%) scale(1.02);
}
.catalog-component-page .catalog-sketch{
  height:98mm!important;
}
.catalog-component-page .catalog-build-head{
  border-bottom:.25mm solid #222!important;
}
.catalog-component-page .catalog-build-grid>div{
  border-bottom:.25mm solid #222!important;
}
.catalog-component-page .catalog-performance{
  table-layout:fixed!important;
  font-size:7.7pt!important;
}
.catalog-component-page .catalog-performance:not(.catalog-performance-fixed-grid) td:nth-child(1){width:18%!important}
.catalog-component-page .catalog-performance:not(.catalog-performance-fixed-grid) td:nth-child(2){width:33%!important;word-break:normal;overflow-wrap:anywhere}
.catalog-component-page .catalog-performance:not(.catalog-performance-fixed-grid) td:nth-child(3),
.catalog-component-page .catalog-performance:not(.catalog-performance-fixed-grid) th:nth-child(3){width:24.5%!important}
.catalog-component-page .catalog-performance:not(.catalog-performance-fixed-grid) td:nth-child(4),
.catalog-component-page .catalog-performance:not(.catalog-performance-fixed-grid) th:nth-child(4){width:24.5%!important}
/* BMC 022.60 (Nutzerrueckmeldung 24.07.2026, "Linien sollen untereinanderstehen, untere nach
   rechts") - die o.g. alten :nth-child-Breitenregeln (aus der Zeit vor der <colgroup>-Loesung
   in BMC 022.56) haben die Spaltenbreiten der Eigenschaften-Tabelle weiterhin ueberschrieben,
   obwohl seit 022.56 ein <colgroup> gesetzt ist - dadurch wich die tatsaechlich gerenderte
   Spaltenaufteilung (empirisch gemessen) klar von den <colgroup>-Werten ab, und die Berechnung
   in 022.56 (0,02px Abweichung) hat nur die Kopfzeile ("Eigenschaften"-th, eine verschmolzene
   Zelle ohne sichtbare Trennlinie) getroffen, nicht die tatsaechlich sichtbare Trennlinie in den
   Datenzeilen. Betroffene Tabelle bekommt jetzt zusaetzlich die Klasse
   "catalog-performance-fixed-grid" (nur die Wand-Variante mit <colgroup>, siehe
   case 'project_catalog_pdf'), damit die alten Breitenregeln dort nicht mehr greifen und das
   <colgroup> tatsaechlich die alleinige Quelle fuer die Spaltenbreiten ist. Andere
   .catalog-performance-Tabellen (Fenster/Tueren, ohne <colgroup>) sind von :not(...) weiterhin
   erfasst und unveraendert. */
.catalog-component-page .catalog-performance th,
.catalog-component-page .catalog-performance td{
  padding:1.7mm 2mm!important;
}

/* BMC 021.85 - Vorschau editierbar, Skizzen kleiner, Tabellenlinie bereinigt */
.catalog-section-editable{
  cursor:text;
  position:relative;
}
.catalog-section-editable:hover{
  outline:1.2mm solid rgba(29,95,154,.16);
  outline-offset:1mm;
}
.catalog-section-editable::after{
  content:"Zum Bearbeiten klicken";
  position:absolute;
  right:5mm;
  top:8mm;
  z-index:2;
  padding:.8mm 1.4mm;
  border-radius:2mm;
  background:rgba(255,255,255,.88);
  color:#657383;
  font-size:7pt;
  line-height:1;
}
.catalog-section-editable.is-saving::after,
.catalog-remarks-editable.is-saving::after{
  content:"Speichert ...";
}
.catalog-sketch-sheet-image.catalog-sketch-vertical{
  overflow:hidden!important;
}
.catalog-sketch-sheet-image.catalog-sketch-vertical .component-svg-catalog{
  width:88%!important;
  height:96%!important;
  max-width:100%!important;
  max-height:100%!important;
  min-width:0!important;
  min-height:0!important;
  transform:none!important;
}
.catalog-sketch-sheet-image.catalog-sketch-vertical .component-svg-catalog text{
  font-size:12px!important;
  font-weight:700!important;
  paint-order:stroke!important;
  stroke:#fff!important;
  stroke-width:2px!important;
  stroke-linejoin:round!important;
}
.catalog-component-page .catalog-sketch{
  height:88mm!important;
}
.catalog-component-page .catalog-build-head{
  border-bottom:.25mm solid #222!important;
}
.catalog-component-page .catalog-build-grid>div:not(.catalog-build-head){
  border-bottom:0!important;
}
.catalog-component-page .catalog-layer-list{
  border-top:0!important;
}
.catalog-component-page .catalog-layer-row:first-child{
  border-top:0!important;
}
.catalog-build-layers-head,
.catalog-build-layers{
  border-left:.25mm solid #222!important;
}
@media print{
  .catalog-section-editable{
    cursor:auto;
  }
  .catalog-section-editable:hover{
    outline:0;
  }
  .catalog-section-editable::after{
    display:none!important;
  }
}

/* BMC 021.86 - Mehrzeilige Eingabedialoge in der Katalogvorschau */
.catalog-edit-dialog-backdrop{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(15,23,42,.48);
}
.catalog-edit-dialog{
  width:min(760px,calc(100vw - 48px));
  max-height:calc(100vh - 48px);
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:22px;
  border-radius:14px;
  background:#fff;
  box-shadow:0 24px 70px rgba(15,23,42,.28);
  color:#172033;
}
.catalog-edit-dialog h2{
  margin:0;
  font-size:1.15rem;
}
.catalog-edit-dialog p{
  margin:0;
  color:#526173;
}
.catalog-edit-dialog textarea{
  width:100%;
  min-height:180px;
  max-height:58vh;
  resize:vertical;
  padding:12px 13px;
  border:1px solid #b7c2d0;
  border-radius:10px;
  font:inherit;
  line-height:1.45;
}
.catalog-edit-dialog textarea:focus{
  outline:3px solid rgba(29,95,154,.18);
  border-color:var(--accent);
}
.catalog-edit-dialog-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.catalog-edit-dialog-actions small{
  margin-right:auto;
  color:#657383;
}
/* BMC 022.104 (Nutzerauftrag 26.07.2026, RC1-Thema 7): echte Zeilen-Tabelle im
   Druckvorschau-Dialog fuer Unterlagen/Begriffe (catalogRowsDialog), anstelle des bisherigen
   Pipe-Freitextfelds - bewusst eigene, schlanke Klassen statt Wiederverwendung von
   .catalog-document-row/.catalog-term-row, da diese Dialog-Zeilen variable Spaltenbreiten je
   Aufrufer (columns[].width) statt fester Grid-Werte brauchen. */
.catalog-rows-dialog-list{display:flex;flex-direction:column;gap:8px;max-height:48vh;overflow-y:auto;padding-right:4px}
.catalog-rows-dialog-row{display:grid;gap:8px;align-items:start}
.catalog-rows-dialog-row input,.catalog-rows-dialog-row select{width:100%;padding:7px 9px;border:1px solid #b7c2d0;border-radius:8px;font:inherit}
.catalog-rows-dialog-richtext{min-height:38px;padding:7px 9px;border:1px solid #b7c2d0;border-radius:8px;font:inherit;line-height:1.4}
.catalog-rows-dialog-richtext:focus{outline:3px solid rgba(29,95,154,.18);border-color:var(--accent)}
.catalog-rows-dialog-add{align-self:flex-start}
@media(max-width:640px){.catalog-rows-dialog-row{grid-template-columns:1fr!important}.catalog-rows-dialog-row .catalog-row-remove{justify-self:end}}
@media print{
  .catalog-edit-dialog-backdrop{
    display:none!important;
  }
}

/* BMC 021.87 - Katalogfeinschliff: Sortierung, Nummern, Bemerkungen */
.catalog-sort-save-status{
  margin:.55rem 0 0;
  color:#526173;
}
#catalog-sort-body tr.catalog-row-dragging{
  opacity:.58;
}
.catalog-sketch-sheet-image.catalog-sketch-horizontal{
  overflow:hidden!important;
}
.catalog-sketch-sheet-image.catalog-sketch-horizontal .component-svg-sheet-image,
.catalog-sketch-sheet-image.catalog-sketch-horizontal .component-svg-catalog{
  width:104%!important;
  height:96%!important;
  max-width:104%!important;
  max-height:100%!important;
  min-width:0!important;
  min-height:0!important;
  transform:translateX(-1%)!important;
}
.catalog-sketch-sheet-image.catalog-sketch-horizontal .component-svg-catalog text{
  font-size:12px!important;
  font-weight:700!important;
  paint-order:stroke!important;
  stroke:#fff!important;
  stroke-width:2px!important;
  stroke-linejoin:round!important;
}
.catalog-component-page .catalog-remarks{
  padding-top:1.8mm!important;
  padding-bottom:1.8mm!important;
}
.catalog-component-page .catalog-remarks p{
  margin:1mm 0 0!important;
  line-height:1.12!important;
}
.catalog-component-page .catalog-remarks strong{
  margin-bottom:.5mm!important;
}

/* BMC 021.88 - finaler Katalog-Rasterfix nach allen aelteren Overrides */
.catalog-component-page .catalog-build-grid{
  border:.35mm solid #222!important;
  border-top:0!important;
}
.catalog-component-page .catalog-build-grid>div{
  box-sizing:border-box!important;
}
.catalog-component-page .catalog-build-head{
  background:var(--catalog-table-head-bg,#d9d9d9)!important;
  border-bottom:.35mm solid #222!important;
  min-height:7mm!important;
}
.catalog-component-page .catalog-build-sketch,
.catalog-component-page .catalog-build-layers{
  border-bottom:.35mm solid #222!important;
}
.catalog-component-page .catalog-build-sketch{
  border-left:0!important;
}
.catalog-component-page .catalog-build-layers,
.catalog-component-page .catalog-build-layers-head{
  border-left:.25mm solid #222!important;
}
.catalog-component-page .catalog-build-layers .catalog-layer-list{
  border-top:0!important;
}
.catalog-component-page .catalog-layer-row{
  border-bottom:.25mm solid #222!important;
}
.catalog-component-page .catalog-layer-row:last-child{
  border-bottom:0!important;
}
.catalog-component-page .catalog-layer-row>div+div{
  border-left:.25mm solid #222!important;
}
.catalog-component-page .catalog-performance{
  border-collapse:collapse!important;
  border:.25mm solid #222!important;
}
.catalog-component-page .catalog-performance th,
.catalog-component-page .catalog-performance td{
  border:.25mm solid #222!important;
}
.catalog-component-page .catalog-performance th{
  background:var(--catalog-table-head-bg,#d9d9d9)!important;
}
.catalog-component-page .catalog-remarks{
  padding:0!important;
  border:.35mm solid #222!important;
  min-height:22mm!important;
}
.catalog-component-page .catalog-remarks>strong{
  display:block!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:1.6mm 2mm!important;
  background:var(--catalog-table-head-bg,#d9d9d9)!important;
  border-bottom:.35mm solid #222!important;
}
.catalog-component-page .catalog-remarks p{
  margin:0!important;
  padding:1.2mm 2mm!important;
  line-height:1.12!important;
}

/* BMC 021.92 - Hover-Feinschliff und ruhige Kataloglinien */
.project-catalog-preview-trigger{
  font-weight:700;
}
.reverse-layers-form{
  margin:0;
  display:inline-flex;
  align-items:center;
}
.layer-toggle.is-saving{
  opacity:.55;
  cursor:wait;
}
.catalog-cover-layout-block{
  margin-top:18mm;
  padding:6mm 8mm;
  border-left:1.2mm solid #d9d9d9;
  background:#f7f7f7;
  color:#111827;
  font-size:10.5pt;
  line-height:1.35;
  white-space:normal;
}
.hatch-hover-preview{
  position:fixed;
  z-index:3000;
  width:320px;
  max-width:calc(100vw - 24px);
  padding:12px;
  border:1px solid #cbd5e1;
  border-radius:14px;
  background:#fff;
  box-shadow:0 18px 45px rgba(15,23,42,.22);
  pointer-events:none;
}
.hatch-hover-preview strong{
  display:block;
  margin-bottom:7px;
  color:var(--headline);
}
.hatch-hover-swatch{
  margin:8px 0;
  padding:8px;
  border:1px solid #d5dee9;
  border-radius:10px;
  background:var(--soft-bg);
}
.hatch-hover-swatch svg{
  display:block;
  width:100%;
  height:92px;
}
.hatch-hover-preview small{
  color:var(--muted-2);
}
.catalog-component-page .catalog-layer-row:focus,
.catalog-component-page .catalog-layer-row:focus-visible,
.catalog-component-page .catalog-layer-row>div:focus,
.catalog-component-page .catalog-layer-row>div:focus-visible{
  outline:0!important;
}
.catalog-component-page .catalog-layer-row-inhomogeneous + .catalog-layer-row-inhomogeneous{
  border-top:.25mm solid #222!important;
}
/* BMC 022.53 (Nutzerrueckmeldung 24.07.2026, Screenshot Bauteil mit 2 Pfadbauteilen/
   Schichten "3a"/"3b"): "dicke Linie bei manchen Schichten, passt die Schraffurdarstellung
   nicht" - betraf tatsaechlich nicht die SVG-Skizze/Schraffurlogik (Nutzer-Rueckmeldung:
   "in der Tabelle nicht in der Skizze"), sondern die Schichtentabelle. Ursache: die
   Selektoren ".catalog-layer-row-inhomogeneous-a{border-bottom:0}" (BMC 021.59) und der
   duenne gepunktete Trenner zwischen a/b (zuletzt .08mm gepunktet, BMC 021.61) wurden durch
   spaetere, gleich spezifische !important-Regeln (u.a. hier oben sowie die pauschale
   ".catalog-layer-row{border-bottom:.25mm solid #222}") in der Kaskade ueberschrieben -
   dadurch bekamen SOWOHL die "a"-Zeile (volle Unterkante) ALS AUCH die "b"-Zeile (volle
   Oberkante) je eine eigene durchgezogene .25mm-Linie, die direkt aneinanderstossen und sich
   dadurch wie eine doppelt so dicke Linie darstellen - nur bei Schichten mit Pfad A/Pfad B
   (inhomogene Schichten), nicht bei normalen Einzelschichten (dort gibt es je Grenze nur eine
   Linie). Fix: "a"-Unterkante wird erneut auf 0 gesetzt (jetzt als letzte Regel in der Datei,
   damit sie in der Kaskade gewinnt) und die a/b-Trennlinie wieder auf die urspruenglich
   beabsichtigte duenne, helle gepunktete Linie zurueckgesetzt statt der vollen schwarzen
   Randlinie. Betrifft nur diese praesentationelle CSS-Datei, keine Schraffur-/Rechenkern-Logik
   (component_svg()/helena_*_hatch_svg() in src/functions.php bleiben unveraendert). */
.catalog-component-page .catalog-layer-row-inhomogeneous-a{
  border-bottom:0!important;
}
.catalog-component-page .catalog-layer-row-inhomogeneous-b{
  border-top:.1mm dotted #b7bcc2!important;
}

/* BMC 021.94 – einklappbare Dashboards, Schraffurpicker und aufgeräumte Bauteilliste */
.collapsible-dashboard{padding:0;overflow:hidden}
.collapsible-dashboard>summary{list-style:none;cursor:pointer;padding:18px 20px;user-select:none}
.collapsible-dashboard>summary::-webkit-details-marker{display:none}
.collapsible-dashboard-chevron{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#eef4fb;color:#24425f;font-weight:800;transition:transform .16s ease}
.collapsible-dashboard[open] .collapsible-dashboard-chevron{transform:rotate(90deg)}
.collapsible-dashboard-body{padding:0 20px 18px}
.collapsible-dashboard-actions{display:flex;justify-content:flex-end;margin:-4px 0 12px}
.collapsible-dashboard .ticket-list{margin-top:0}
.hatch-pattern-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px;margin-top:8px;max-height:170px;overflow:auto;padding:8px;border:1px solid #d8e2ee;border-radius:10px;background:var(--soft-bg)}
.hatch-pattern-picker button{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #d7e2ee;background:#fff;border-radius:8px;padding:7px 8px;color:#19324d;font-weight:700;cursor:pointer;text-align:left}
.hatch-pattern-picker button:hover,.hatch-pattern-picker button:focus{border-color:#7aa7d9;background:#eef6ff;outline:none}
.hatch-pattern-picker code{font-size:.72rem;color:var(--muted-2);background:#eef2f7;border-radius:6px;padding:2px 5px}
#component-list-card{overflow-x:auto}
#component-list-card table{min-width:1120px;table-layout:fixed}
#component-list-card th:nth-child(1),#component-list-card td:nth-child(1){width:76px}
#component-list-card th:nth-child(2),#component-list-card td:nth-child(2){width:150px}
#component-list-card th:nth-child(5),#component-list-card td:nth-child(5){width:96px}
#component-list-card th:nth-child(6),#component-list-card td:nth-child(6){width:82px}
#component-list-card th:nth-child(7),#component-list-card td:nth-child(7){width:92px}
#component-list-card th:nth-child(10),#component-list-card td:nth-child(10){width:74px;text-align:center}
#component-list-card th:nth-child(11),#component-list-card td:nth-child(11){width:96px;text-align:center}
#component-list-card th:nth-child(12),#component-list-card td:nth-child(12){width:92px;white-space:nowrap}
#component-list-card th:last-child,#component-list-card td:last-child{width:190px}
#component-list-card td{vertical-align:middle}
#component-list-card td:nth-child(1) a{display:inline-block;line-height:1.15;word-break:normal;overflow-wrap:normal;hyphens:none}
.component-list-actions{white-space:normal}
.component-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.component-row-actions form{margin:0;display:inline-flex}
.component-row-actions .button.tiny{padding:5px 8px;line-height:1.1;text-decoration:none}
.component-row-actions .button.danger{background:#fff1f2;color:#b42318;border-color:#fecdd3}
.component-row-actions .button.danger:hover{background:#ffe4e6}
.lca-incomplete-list-badge{
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  margin-right:6px;
  background:#fff7ed;
  color:#9a3412;
  border-color:#fed7aa;
}
.sortable-head{
  cursor:pointer;
  user-select:none;
}
.sortable-head::after{
  content:"↕";
  margin-left:5px;
  color:#94a3b8;
  font-size:.8em;
}
.sortable-head[data-sort-dir="asc"]::after{content:"↑";color:var(--accent)}
.sortable-head[data-sort-dir="desc"]::after{content:"↓";color:var(--accent)}
.account-display-columns{
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px 14px;
  background:var(--soft-bg);
}
.account-display-columns legend{
  padding:0 6px;
  font-weight:800;
  color:var(--ink);
}
.checkbox-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:6px 12px;
}
.component-list-titlebar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
  position:relative;
}
.component-list-titlebar > a{margin-left:auto;flex:0 0 auto;}
.component-list-titlebar strong,
.component-list-titlebar small{
  display:block;
}
.component-list-titlebar small{
  margin-top:2px;
  color:var(--muted-2);
}
/* BMC 022.88 (RC1-Punkt 9: "Spalteneinstellung direkt in der Werkzeugleiste statt an anderer
   Stelle"): Inline-Popover statt Verlinkung auf die Kontoseite - bestehendes <details>-Muster
   (BMC 022.58/86) wiederverwendet, hier erstmals als schwebendes, freigestelltes Panel statt
   Inline-Aufklappen (damit die Tabelle darunter nicht durch das Formular verschoben wird). Analoges
   Muster fuer .project-meta-settings-popover (RC1-Punkt 14) weiter unten. */
.component-list-settings-popover,
.project-meta-settings-popover{
  position:relative;
  flex:0 0 auto;
  margin-left:auto;
}
.component-list-settings-popover summary,
.project-meta-settings-popover summary{
  cursor:pointer;
  list-style:none;
}
.component-list-settings-popover summary::-webkit-details-marker,
.project-meta-settings-popover summary::-webkit-details-marker{
  display:none;
}
.component-list-settings-form,
.project-meta-settings-form{
  /* BMC 022.88: bewusst position:fixed statt position:absolute - die umgebenden Karten sind
     teilweise .table-wrap (overflow-x:auto, was laut CSS-Spezifikation implizit auch
     overflow-y:auto erzwingt) und wuerden ein absolut positioniertes Panel an der Kartengrenze
     abschneiden. position:fixed entkommt dieser Ueberlauf-Begrenzung (siehe auch
     .component-hover-preview weiter oben, dasselbe Muster). Position wird per JS gesetzt
     (app.js, generisches [data-floating-popover]-Verhalten). */
  position:fixed;
  z-index:30;
  background:#fff;
  border:1px solid var(--soft-line);
  border-radius:12px;
  box-shadow:0 14px 32px rgba(29,53,87,.18);
  padding:14px 16px;
  min-width:280px;
  max-width:360px;
  max-height:calc(100vh - 32px);
  overflow-y:auto;
}
.component-list-settings-form .checkbox-grid,
.project-meta-settings-form .checkbox-grid{
  grid-template-columns:1fr;
  margin-top:8px;
}
.component-list-settings-actions{
  margin-top:12px;
  display:flex;
  justify-content:flex-end;
}
.project-meta-card-head{
  display:flex;
  justify-content:flex-end;
  margin-bottom:10px;
}
.account-return-row{
  margin-top:10px;
}
.wizard-thickness-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:14px;
}
.wizard-thickness-grid textarea{
  width:100%;
  min-height:86px;
  resize:vertical;
}
.component-wizard-body{
  display:grid;
  gap:14px;
  padding:18px;
}
.wizard-preview-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.wizard-preview-output{
  display:grid;
  gap:10px;
  padding:14px;
  border:1px solid #d8e2ee;
  border-radius:14px;
  background:#f8fbfe;
  max-height:min(48vh,560px);
  overflow:auto;
}
.wizard-preview-output table{
  width:100%;
  border-collapse:collapse;
}
.wizard-preview-output th,
.wizard-preview-output td{
  padding:10px 12px;
  border-bottom:1px solid #e4ebf2;
  text-align:left;
  vertical-align:top;
}
.wizard-material-suggestions{
  display:grid;
  gap:8px;
}
.wizard-material-suggestions span{
  display:grid;
  gap:1px;
  padding:8px 10px;
  border:1px solid #d9e6f1;
  border-radius:10px;
  background:#fff;
}
.wizard-material-suggestions small{
  color:var(--muted-2);
}
@media(max-width:720px){
  .component-list-titlebar{
    align-items:flex-start;
    flex-direction:column;
  }
}
@media(max-width:800px){.collapsible-dashboard>summary{padding:15px}.collapsible-dashboard-body{padding:0 15px 15px}.hatch-pattern-picker{grid-template-columns:1fr}#component-list-card table{min-width:980px}}

.catalog-cover.has-letterhead-pdf{position:relative;overflow:hidden;background:#fff}
.catalog-letterhead-pdf{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:0;background:#fff;pointer-events:none}
.catalog-letterhead-pdf iframe{width:100%;height:100%;border:0}
.catalog-cover.has-letterhead-pdf>.catalog-cover-rail,.catalog-cover.has-letterhead-pdf>.catalog-cover-main,.catalog-cover.has-letterhead-pdf>.catalog-cover-scope-note{position:relative;z-index:1}
.catalog-cover.has-letterhead-pdf>.catalog-cover-main,.catalog-cover.has-letterhead-pdf>.catalog-cover-rail{background:rgba(255,255,255,.82);backdrop-filter:saturate(120%) blur(1px)}
.catalog-letterhead-current{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 12px;border:1px solid #d9e3ef;border-radius:10px;background:var(--soft-bg)}
@media print{.catalog-letterhead-pdf{pointer-events:none}.catalog-cover.has-letterhead-pdf>.catalog-cover-main,.catalog-cover.has-letterhead-pdf>.catalog-cover-rail{background:rgba(255,255,255,.78)}}

/* BMC 021.96 – Plankopf-Screenshot im Projektformular auslesen */
.plankopf-import-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px;
  border:1px dashed #b8c7d9;
  border-radius:14px;
  background:#f8fbff;
}
.plankopf-import-card h3{margin:0 0 5px;color:var(--ink)}
.plankopf-import-card p{margin:0;color:var(--muted-2);font-size:.92rem}
.plankopf-modal[hidden]{display:none}
.plankopf-modal{
  position:fixed;
  inset:0;
  z-index:9000;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(15,23,42,.48);
}
.plankopf-dialog{
  width:min(920px,96vw);
  max-height:92vh;
  overflow:auto;
  background:#fff;
  border-radius:18px;
  border:1px solid #d7e2ee;
  box-shadow:0 24px 80px rgba(15,23,42,.3);
  padding:20px;
}
.plankopf-dialog-head,.plankopf-dialog-actions{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.plankopf-dialog-head h2{margin:0;color:var(--ink)}
.plankopf-mode-select{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:14px 0 4px;
}
.plankopf-mode-select label{
  display:flex;
  align-items:flex-start;
  gap:8px;
  padding:10px 12px;
  border:1px solid #d7e2ee;
  border-radius:10px;
  background:var(--soft-bg);
  font-weight:700;
  color:#10233d;
}
.plankopf-mode-select input{width:auto;margin-top:2px}
.plankopf-mode-select small{display:block;margin-top:2px;font-weight:500;color:var(--muted-2)}
.plankopf-close{
  width:34px;
  height:34px;
  padding:0;
  border-radius:999px;
  background:#eef3f8;
  color:var(--ink);
}
.plankopf-dropzone{
  margin:18px 0 12px;
  padding:26px;
  border:2px dashed #9fb2c8;
  border-radius:14px;
  background:var(--soft-bg);
  text-align:center;
  cursor:pointer;
}
.plankopf-dropzone strong,.plankopf-dropzone span{display:block}
.plankopf-dropzone span{margin-top:6px;color:var(--muted-2);font-size:.9rem}
.plankopf-dropzone input{display:none}
.plankopf-dropzone.is-dragover,.plankopf-dropzone:focus{
  border-color:var(--accent);
  background:#eef6ff;
  outline:none;
}
.plankopf-manual-text{
  margin:10px 0 12px;
  padding:12px 14px;
  border:1px solid var(--soft-line);
  border-radius:12px;
  background:var(--soft-bg);
}
.plankopf-manual-text summary{
  cursor:pointer;
  font-weight:700;
  color:#10233d;
}
.plankopf-manual-text textarea{
  width:100%;
  min-height:110px;
  margin:10px 0;
  resize:vertical;
}
.plankopf-status{
  min-height:22px;
  margin:8px 0;
  color:var(--muted-2);
}
.plankopf-status.error{color:#b42318}
.plankopf-status.success{color:#17662d}
.plankopf-results{
  margin-top:14px;
  border:1px solid var(--soft-line);
  border-radius:14px;
  padding:14px;
  background:#fff;
}
.plankopf-results h3{margin:0 0 6px;color:var(--ink)}
.plankopf-result-row{
  display:grid;
  grid-template-columns:28px minmax(180px,.6fr) 1fr;
  gap:10px;
  align-items:start;
  margin-top:10px;
  font-weight:600;
}
.plankopf-result-row input[type=checkbox]{width:auto;margin-top:9px}
.plankopf-result-row textarea{
  width:100%;
  min-height:42px;
  margin:0;
  resize:vertical;
}
.plankopf-raw{
  margin-top:12px;
  padding:10px 12px;
  border:1px solid #e2e8f0;
  border-radius:10px;
  background:var(--soft-bg);
}
.plankopf-dialog-actions{margin-top:16px}
body.plankopf-modal-open{overflow:hidden}
@media(max-width:760px){
  .plankopf-import-card{display:block}
  .plankopf-import-card .button{margin-top:12px}
  .plankopf-mode-select{grid-template-columns:1fr}
  .plankopf-result-row{grid-template-columns:28px 1fr}
  .plankopf-result-row textarea{grid-column:2}
}

/* BMC 021.98 – Header nicht mehr über Seiten-/Dialoginhalte schieben */
body{padding-top:0!important}
.topbar{
  position:sticky!important;
  top:0!important;
  z-index:4000;
}
@media(max-width:1050px){body{padding-top:0!important}}
.layer-edit-dialog{
  overflow:hidden!important;
}
.layer-edit-dialog>.dialog-head{
  position:relative!important;
  z-index:10!important;
  background:#fff!important;
  box-shadow:0 2px 10px rgba(15,23,42,.08);
}
.layer-edit-dialog>.layer-edit-frame{
  position:relative;
  z-index:1;
}

/* BMC 022.26 – Randfarbe der Schicht-LCA-Karte spiegelt den echten Zuordnungsstatus:
   rot wenn die QNG-/ÖKOBAUDAT-Zuordnung (Baustoffstandard oder Override) fehlt,
   dunkelgrün wenn sie vorhanden ist. Das grüne Karteninnere (siehe V3.7.149 weiter
   oben) bleibt in beiden Fällen unverändert – nur der Rand ändert sich. */
.layer-lca-inline.lca-status-missing,
.layer-path-panel > .layer-lca-inline.lca-status-missing,
.layer-path-panel-a > .layer-lca-inline.lca-status-missing,
.layer-path-panel-b > .layer-lca-inline.lca-status-missing{
  border-color:#c0392b!important;
  box-shadow:0 3px 10px rgba(192,57,43,.14)!important;
}
.layer-lca-inline.lca-status-missing::before{
  color:#c0392b!important;
  border-color:#c0392b!important;
}
.layer-lca-inline.lca-status-ok,
.layer-path-panel > .layer-lca-inline.lca-status-ok,
.layer-path-panel-a > .layer-lca-inline.lca-status-ok,
.layer-path-panel-b > .layer-lca-inline.lca-status-ok{
  border-color:#1e6b3c!important;
}

/* BMC 022.27 – Masse 0,0 kg/m² bei einer echten (nicht-Luft-)Schicht ist fast immer eine
   fehlende Rohdichte in der Baustoffdatenbank, keine gueltige Bauphysik. Gleiche Signalfarbe
   wie der rote LCA-Warnbutton (#b91c1c), damit beide Warnungen optisch zusammengehoeren. */
.layer-value-cell .mass-value-missing{
  color:#b91c1c;
  font-weight:800;
}

/* BMC 022.29 – Bauteilwizard/DATAHOLZ-Import: Auswahl zwischen mehreren, laut Originaltabelle
   alternativ moeglichen Baustoffen fuer dieselbe Position ("...oder..."). */
.pdf-alt-choice{
  margin-top:6px;
  padding:8px 10px;
  border:1px solid #f0c36d;
  border-radius:8px;
  background:#fffaf0;
  display:grid;
  gap:5px;
}
.pdf-alt-hint{
  color:#8a5a13;
  font-weight:700;
}
.pdf-alt-option{
  display:flex;
  align-items:flex-start;
  gap:7px;
  cursor:pointer;
  font-weight:400;
}
.pdf-alt-option input[type="radio"]{
  margin-top:3px;
  flex:0 0 auto;
}
.pdf-alt-option strong{
  font-size:.85rem;
  color:#17375e;
}
.pdf-alt-option small{
  display:block;
  color:#526b83;
}

/* BMC 022.34: Bauteilwizard "Aufbau-Tabelle einfügen" - Nutzerrückmeldung "mach das mal
   breiter und etwas ansehlicher". Vorher hatte die Textarea kein eigenes Layout (nur die
   .wide-Klasse, die ohne umgebendes CSS-Grid wirkungslos war) und blieb auf der schmalen
   Browser-Standardgröße stehen; das Label stand per Default inline vor statt über dem Feld. */
.wizard-paste-card{max-width:1180px}
.wizard-paste-form{display:flex;flex-direction:column;gap:16px;margin-top:14px}
.wizard-paste-label{display:block;font-weight:700;font-size:14px;color:var(--ink)}
.wizard-paste-textarea{
  display:block;
  width:100%;
  min-height:320px;
  margin-top:8px;
  padding:16px;
  border:1px solid #bdc9d8;
  border-radius:12px;
  font-family:'Consolas','Courier New',monospace;
  font-size:13.5px;
  line-height:1.6;
  color:var(--ink);
  background:#f9fbfd;
  resize:vertical;
}
.wizard-paste-textarea:focus{outline:2px solid var(--accent);outline-offset:1px;background:#fff}
.wizard-paste-name{max-width:520px}
.wizard-paste-name input{display:block;width:100%;margin-top:8px;padding:10px;border:1px solid #bdc9d8;border-radius:7px}
.wizard-paste-submit{align-self:flex-start;padding:11px 22px;font-weight:600}
@media(max-width:760px){.wizard-paste-name{max-width:none}}

/* BMC 022.36 (Roadmap-Punkt 5, Stufe 1): Bauteildatenblatt-Layout - Drag-and-drop-Editor
   im Admincenter sowie der Grid-Wrapper fuer das ausdruecklich aktivierte "Eigene Layout"
   auf der Druckseite selbst (`case 'print'`). Im Standardlayout wird dieser Wrapper gar
   nicht gerendert, daher hat er auf das bisherige Erscheinungsbild keinen Einfluss.
   Print-Ansicht: max. 12 Spalten, damit auch schmale Bloeche (25 %) nebeneinander passen.*/
.catalog-print-canvas{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;align-items:start}
.catalog-print-block{min-width:0}
/* BMC 022.78 (Roadmap-Punkt 5, Stufe 2): Zwischenueberschrift auf der gemeinsamen
   Druckausgabe-Layout-Seite, trennt die Karten fuer Bauteildatenblatt und Bauteilkatalog
   optisch voneinander. Der Grid-Wrapper selbst (.catalog-print-canvas/.catalog-print-block)
   wird fuer die Bauteil-Seiten des Katalogs bewusst wiederverwendet statt dupliziert. */
.catalog-print-layout-subheading{margin:26px 0 10px;padding-top:18px;border-top:1px solid var(--line)}
.catalog-print-layout-mode{display:flex;flex-direction:column;gap:10px}
.catalog-print-layout-mode-option{display:flex;align-items:baseline;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;cursor:pointer}
.catalog-print-layout-mode-option:has(input:checked){border-color:var(--accent);background:#eaf3fb}
.catalog-print-layout-mode-option small{color:var(--muted-2);font-weight:400}
.catalog-print-layout-blocks{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.catalog-print-layout-block{display:flex;align-items:center;gap:14px;padding:10px 14px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:grab}
.catalog-print-layout-block.is-dragging{opacity:.4}
.catalog-print-layout-block strong{flex:1 1 auto}
.catalog-print-layout-width{display:flex;align-items:center;gap:6px;font-weight:600;font-size:13px}
.catalog-print-layout-width select{padding:6px 8px;border:1px solid #bdc9d8;border-radius:6px}
.catalog-print-layout-block .catalog-drag-handle{display:inline-grid;grid-template-columns:1fr 1fr;gap:2px;width:14px;height:20px;flex:0 0 auto;cursor:grab}
.catalog-print-layout-block .catalog-drag-handle i{width:4px;height:4px;border-radius:50%;background:#9eacbc}
/* BMC 022.80 (Live-Vorschau im Editor, Nutzerauftrag 24.07.2026 "man muss sehen was man tut
   wysiwyg quasi"): Vorschau-Panel mit Iframe fuer beide Layout-Formulare auf dieser Seite -
   zeigt den (noch ungespeicherten) Entwurf live, siehe zugehoeriges JS am Ende jedes Formulars. */
.catalog-layout-preview{margin-bottom:20px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.catalog-layout-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:#f2f5f9;border-bottom:1px solid var(--line);font-size:13px;color:#51606f}
.catalog-layout-preview-frame-wrap{background:#e7ebf1;padding:16px;display:flex;justify-content:center}
.catalog-layout-preview iframe{width:100%;max-width:760px;height:640px;border:1px solid #c7d0da;border-radius:4px;background:#fff}
@media(max-width:900px){.catalog-print-canvas{grid-template-columns:1fr}.catalog-print-block{grid-column:1/-1!important}}

/* BMC 022.39 (Nutzerrueckmeldung 23.07.2026): Hover-Hinweis auf roten Rahmen umgestellt -
   deutlicher erkennbar als die vorherige dezente Blaufaerbung.
   BMC 022.41 (Nutzerrueckmeldung 24.07.2026): Rahmen etwas dezenter (schwaechere Fuellung,
   duennerer Strich). */
.component-svg-clickable-layers .layer-click-target{cursor:pointer}
.component-svg-clickable-layers .layer-click-target:hover{fill:rgba(220,38,38,.05);stroke:#dc2626;stroke-width:1.25px}

/* BMC 022.96 (Nutzerauftrag 25.07.2026): das Skizzen-Drag&Drop (BMC 022.92-022.94, Punkt 10)
   wurde auf Nutzerwunsch wieder entfernt - die zugehoerigen Klassen .layer-sketch-drag-source,
   .sketch-drag-ghost und .sketch-insert-line sind damit ebenfalls entfallen. Der Klick-zum-
   Bearbeiten-Hinweis (.component-svg-clickable-layers .layer-click-target:hover, oben) bleibt
   unveraendert bestehen. */

/* BMC 022.40 (Nutzerrueckmeldung 24.07.2026): "+"-Einfuegepunkte an den Schichtgrenzen der
   Skizze, analog zu "+ Schicht hier einfuegen" in der Tabelle.
   BMC 022.41 (Nutzerrueckmeldung 24.07.2026): das Plus-Icon ist im Ruhezustand unsichtbar und
   erscheint erst beim Hover ueber die (immer vorhandene) groessere, unsichtbare Trefferflaeche
   '.layer-insert-hit' - haelt die Skizze im Ruhezustand aufgeraeumt. */
.component-svg-insertable-layers .layer-insert-target{cursor:pointer}
.component-svg-insertable-layers .layer-insert-target .layer-insert-icon{opacity:0;transition:opacity .12s ease}
.component-svg-insertable-layers .layer-insert-target:hover .layer-insert-icon{opacity:1}
.component-svg-insertable-layers .layer-insert-target .layer-insert-icon circle,
.component-svg-insertable-layers .layer-insert-target .layer-insert-icon line{transition:fill .12s ease,stroke .12s ease}
.component-svg-insertable-layers .layer-insert-target:hover .layer-insert-icon circle{fill:#16a34a;stroke:#15803d}
.component-svg-insertable-layers .layer-insert-target:hover .layer-insert-icon line{stroke:#fff}

/* BMC 022.41 (Nutzerrueckmeldung 24.07.2026): zusaetzliche Absicherung, falls die interaktive
   Bauteilseite selbst je gedruckt wird (z. B. Strg+P) - die Bearbeiten-/Einfuege-Zusaetze aus
   BMC 022.38/022.40 duerfen unter keinen Umstaenden in einem Ausdruck erscheinen. Strukturell
   ohnehin bereits ausgeschlossen, da component_svg() 'clickable_layers'/'insertable_layers' nur
   am interaktiven Bauteil-Editor setzt (siehe dortige Kommentare) - diese Regel ist ein
   zusaetzliches, unabhaengiges Sicherheitsnetz auf CSS-Ebene. */
@media print{
    .layer-click-target,.layer-insert-target{display:none!important}
}

/* BMC 022.42 (Nutzerauftrag 24.07.2026): zentrale Schriftart fuer die Druckausgabe
   (Bauteildatenblatt + Bauteilkatalog-PDF), gesteuert ueber die CSS-Variable
   --catalog-font-family, die serverseitig aus der Admincenter-Einstellung
   'catalog_font_family' (catalog_font_family_stack()) gesetzt wird. Fallback bleibt Arial,
   damit sich ohne gesetzte Variable am bisherigen Verhalten nichts aendert. */
.sheet{font-family:var(--catalog-font-family,Arial,Helvetica,sans-serif)}

/* BMC 022.42: kleiner Rich-Text-Editor (fett/kursiv/Farbe/Groesse/hoch-/tiefgestellt) fuer die
   Textfelder der Druckausgabe (Bemerkungen, Allgemeines, Begriffe, Bearbeiter-/Erstellerinfo).
   Arbeitet auf einem contenteditable-Element; der sanitisierte HTML-Inhalt wird bei jeder
   Aenderung in ein verstecktes <textarea>/<input> synchronisiert, das tatsaechlich mit dem
   Formular abgeschickt wird (siehe app.js initRichTextFields()). */
.richtext-field{display:flex;flex-direction:column;gap:4px}
.richtext-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:3px;padding:4px;background:#f2f5f9;border:1px solid #bdc9d8;border-radius:7px 7px 0 0;border-bottom:0}
.richtext-toolbar button{background:#fff;color:#243447;border:1px solid #bdc9d8;border-radius:5px;padding:4px 8px;font-size:13px;line-height:1;cursor:pointer;min-width:26px}
.richtext-toolbar button:hover{background:#eef2f7}
.richtext-toolbar button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.richtext-toolbar button[data-rt-cmd="bold"]{font-weight:700}
.richtext-toolbar button[data-rt-cmd="italic"]{font-style:italic}
.richtext-toolbar button[data-rt-cmd="underline"]{text-decoration:underline}
.richtext-toolbar input[type="color"]{width:28px;height:26px;padding:0;border:1px solid #bdc9d8;border-radius:5px;background:#fff;cursor:pointer}
.richtext-toolbar select{margin:0;padding:4px 6px;width:auto;font-size:12px;border:1px solid #bdc9d8;border-radius:5px}
.richtext-toolbar .richtext-sep{width:1px;align-self:stretch;background:#bdc9d8;margin:0 2px}
.richtext-toolbar .richtext-color-apply{font-size:12px;padding:4px 7px;min-width:auto}
.richtext-toolbar .richtext-recent-colors{display:inline-flex;gap:3px;align-items:center}
.richtext-toolbar .richtext-recent-colors button{width:18px;height:18px;padding:0;border:1px solid #bdc9d8;border-radius:4px;cursor:pointer;min-width:0}
.richtext-toolbar .richtext-recent-colors button:hover{border-color:var(--ink)}
.richtext-editable{min-height:70px;padding:8px 10px;border:1px solid #bdc9d8;border-radius:0 0 7px 7px;background:#fff;font-size:14px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.richtext-editable:focus{outline:2px solid var(--ink);outline-offset:-1px}
.richtext-editable sup,.richtext-editable sub{line-height:0}
.richtext-field.compact .richtext-editable{min-height:40px}

/* BMC 022.44 (Nutzerauftrag 24.07.2026): zentrale Formatierung der Bauteilkatalog-
   Kapitelueberschriften ("1 Allgemeines" bis "3 Begriffe" sowie die Bauteilgruppen-
   Ueberschriften wie "4 Aussenwaende") ueber eine gemeinsame Klasse statt der bisher
   uneinheitlichen h1/h2-Tags (Allgemeines war zuvor als h2 kleiner als die anderen als h1) -
   Selektor bewusst mit hoeherer Spezifitaet als ".catalog-page h1"/".catalog-page h2", damit die
   Ueberschreibung unabhaengig von der Position im Stylesheet sicher greift. Standardwerte
   (15pt/fett) entsprechen dem bisherigen ueberwiegenden Erscheinungsbild (h1). */
/* BMC 022.62 Nachtrag - margin-top hier (0 8mm) steht NICHT im Widerspruch zur eigentlich
   wirksamen Kopf->Ueberschrift-Regel oben: da .catalog-running-head und diese Ueberschrift
   gewoehnliche Block-Geschwister im selben Fliesskontext von .catalog-page sind, kollabieren
   ihre aneinanderstossenden vertikalen Aussenabstaende (margin-bottom der Kopfzeile / margin-top
   der Ueberschrift) laut CSS-Spezifikation zu EINEM gemeinsamen Abstand = dem groesseren der
   beiden Werte. Da margin-bottom der Kopfzeile (12,7mm, siehe oben) staerker ist als dieser
   margin-top (0-8mm je nach Seite), gewinnt praktisch immer der Kopfzeilen-Wert - per Playwright
   empirisch bestaetigt (getComputedStyle beider Werte + tatsaechlicher gerenderter Abstand). Die
   im Kommentar oben behauptete "Spezifitaet setzt sich unabhaengig von Position durch" gilt nur
   gegenueber anderen NICHT-!important-Regeln; sie wurde hier zusaetzlich durch Margin-Collapsing
   ueberlagert. */
.catalog-document{--catalog-heading-font-size:15pt;--catalog-heading-font-weight:700}
.catalog-page h1.catalog-chapter-heading,
.catalog-page h2.catalog-chapter-heading{
  font-size:var(--catalog-heading-font-size,15pt);
  font-weight:var(--catalog-heading-font-weight,700);
  margin:0 0 8mm;
  display:flex;
  align-items:baseline;
  gap:0;
}
/* BMC 022.62 - Abstand Zahl->Text der Kapitelueberschrift nach Vorlage (Nutzerauftrag
   24.07.2026). Der Wordvorlage-Absatzstil "berschrift1" nutzt keinen festen Abstand zwischen
   Nummer und Text, sondern einen Haengeeinzug (w:ind hanging="851") mit Tab-Stopp bei
   w:pos="851" Twips = 15mm: die Nummer beginnt bei Position 0, der Text springt IMMER zu
   Position 15mm - unabhaengig von der Ziffernbreite (1-stellig oder 2-stellig). Nachgebildet
   durch eine feste Breite der Nummer-Spalte (15mm) statt eines festen Zwischenraums (vorher
   gap:3mm) - dadurch beginnt der Ueberschriftstext strukturell immer an derselben Stelle, wie
   im Word-Tabstopp-Modell, auch wenn spaeter zweistellige Kapitelnummern vorkommen. */
.catalog-chapter-heading .catalog-chapter-number{flex:0 0 15mm}
.catalog-chapter-heading .catalog-chapter-text{flex:1 1 auto}
.catalog-heading-editable{cursor:pointer;border-radius:4px}
.catalog-heading-editable:hover{background:rgba(29,53,87,.06);outline:1px dashed #7c93ad;outline-offset:3px}
.catalog-heading-editable.is-saving{opacity:.5;pointer-events:none}

/* BMC 022.66 (Nutzerauftrag 24.07.2026) - laufende Kopfzeile (Bauvorhaben/Adresse/Stand) direkt
   aus der Katalogvorschau editierbar, analog zu .catalog-heading-editable/.catalog-section-
   editable. Nur im Bildschirm-Vorschaumodus sichtbar (siehe @media print unten), damit der reine
   Ausdruck/PDF unveraendert bleibt. */
.catalog-header-editable{cursor:pointer;border-radius:4px;position:relative}
.catalog-header-editable:hover{background:rgba(29,53,87,.06);outline:1px dashed #7c93ad;outline-offset:3px}
.catalog-header-editable.is-saving{opacity:.5;pointer-events:none}
.catalog-header-editable::after{
  content:"Zum Bearbeiten klicken";
  position:absolute;
  left:0;
  bottom:-4mm;
  z-index:2;
  padding:.6mm 1.2mm;
  border-radius:2mm;
  background:rgba(255,255,255,.92);
  color:#657383;
  font-size:6.5pt;
  line-height:1;
  opacity:0;
  pointer-events:none;
  transition:opacity .15s;
}
.catalog-header-editable:hover::after{opacity:1}
.catalog-header-editable.is-saving::after{content:"Speichert ...";opacity:1}
@media print{
  .catalog-header-editable{cursor:auto}
  .catalog-header-editable:hover{background:none;outline:0}
  .catalog-header-editable::after{display:none!important}
}

/* BMC 022.55 (Nutzerrueckmeldung 24.07.2026) - Bauteilkatalog-Skizze: drei praesentationelle
   CSS-Korrekturen, keine Aenderung an component_svg()/Schraffurlogik/Rechenkern.
   1) "Skizze flieht aus der Zelle": Der Skizzen-Container ist ein Flex-Element; ohne
      min-width:0/min-height:0 verweigert ein Flex-Kind mit intrinsischem Seitenverhaeltnis
      (hier das inline-SVG) das Schrumpfen unter seine "content size" (CSS min-height:auto-Falle),
      wodurch die 88%/96% (senkrecht) bzw. 104%/96% (waagerecht) Vorgaben ignoriert wurden und
      das SVG bis zu ~13-14px oben/unten ueber die Zelle hinausragte. Ausserdem stand die Zelle
      selbst auf overflow:visible - Ueberlauf wurde nicht einmal abgeschnitten. Empirisch mit
      Playwright nachgewiesen (Soll 96% von 332.59px = 319.29px, Ist vorher 360px; nach Fix exakt
      319.28px, keine Ueberdeckung der Kopfzeile mehr).
   2) "Auch unter Summe andere Linienstaerke": zwischen der letzten reellen Schicht-Zeile und dem
      Abstandshalter vor der Summenzeile lagen zwei einzelne .25mm-Trennlinien mit 9mm Luecke
      dazwischen (statt einer durchgehenden Linie wie zwischen den uebrigen Zeilen). Die zweite
      (obere) Linie wird entfernt, sodass nur die Linie direkt ueber der Summe stehen bleibt. */
/* BMC 022.61-Korrektur (Nutzerrueckmeldung 24.07.2026, "die Linie unter Kunstharzputz fehlt ..
   in jeder"): die obige BMC-022.55-Regel entfernte die Linie IMMER unter der letzten reellen
   Schicht-Zeile, weil diese dank des flex-wachsenden Abstandshalters (`.catalog-layer-spacer{
   flex:1 1 auto}`) IMMER unmittelbar vor dem Abstandshalter steht - nicht nur, wenn beide Linien
   eng aneinanderstossen. Bei kuerzeren Schichtenlisten (weniger als die maximale Anzahl Schichten)
   liegt zwischen der letzten Schicht-Zeile und der Linie am Ende des Abstandshalters dadurch eine
   grosse, unbegrenzte Luecke - die Zeile wirkt "offen"/ohne Abschlusslinie. Fix: die Linie bleibt
   jetzt an der letzten Schicht-Zeile (dort, wo der reelle Inhalt endet), der Abstandshalter
   bekommt stattdessen KEINE eigene Linie mehr - dadurch weiterhin nur eine durchgehende Linie
   (kein Doppel-Strich wie vor BMC 022.55), aber jetzt an der richtigen, erwartbaren Stelle direkt
   unter der letzten Schicht. */
.catalog-component-page .catalog-layer-spacer{
  border-bottom:0!important;
}

/* BMC 022.56 (Nutzerrueckmeldung 24.07.2026) - drei weitere Feinschliff-Korrekturen an der
   Bauteilkatalog-Druckseite, wieder rein CSS/Markup-seitig (colgroup), kein Rechenkern/
   component_svg()/Schraffurlogik beruehrt.
   1) Randlinien "verschwanden": mehrere fruehere "finale" Patches (u.a. BMC 021.88) hatten die
      Aussenlinie unter Skizze/Aufbau-Tabelle, die Linie unter der Kopfzeile "Skizze zum
      Bauteil:"/"Aufbau ..." und die Linie ueber "Bemerkungen:" schrittweise von .35mm auf .25mm
      verduennt - beim Druck/Export wirkte das als "fehlende" bzw. zu duenne Linie. Auf .35mm
      zurueckgesetzt (siehe Aenderungen weiter oben bei .catalog-build-grid/.catalog-build-head/
      .catalog-remarks).
   2) Eigenschaften-Tabelle links/rechts nicht mit der Skizzen-/Aufbau-Spalte ausgerichtet, dazu
      moeglicher Darstellungsfehler bei den beiden rechten Spalten (Bauteilanforderungen/
      Bauteilleistung): Ursache u.a. eine CSS-Regel, die per :nth-child(3)/:nth-child(4) auf die
      TH-Elemente der Kopfzeile zielte - durch das colspan=2 auf "Eigenschaften" zaehlt dort aber
      bereits das 2. th "Bauteilanforderungen" (nicht das 3.), wodurch dessen Kopfzellen-Breite nie
      gesetzt wurde. Statt die verstreuten :nth-child-Regeln zu entwirren, bekommt die Tabelle in
      `case 'project_catalog_pdf':` jetzt ein eigenes <colgroup> (19%/29%/26%/26% - Summe der
      ersten zwei Spalten 48%, exakt gleich der zuletzt gewinnenden Skizzenspalten-Breite im
      .catalog-build-grid darueber, siehe BMC 021.85-Kaskade dort) plus
      table-layout:fixed, nur fuer die gedruckte Katalogseite (`.catalog-component-page
      .catalog-performance`) - andere Vorkommen von `.catalog-performance` (Fenster-/Tuer-Formulare,
      Vorlagen-Editor) sind ausserhalb von `.catalog-component-page` und bleiben unveraendert. */
.catalog-component-page .catalog-performance{
  table-layout:fixed!important;
}

/* Fusszeile: nur die reine Seitenzahl unten, nicht "Seite N von Gesamt" (Nutzerauftrag 24.07.2026,
   "Seitenzahlen unten nur die Seiten keine Gesamtseiten"). Bisher zeigte der Fuss ausschliesslich
   den zweiten <span> ("Seite N von Total"); jetzt umgekehrt: nur der erste <span> (reine Zahl N). */
.catalog-component-continuation .catalog-running-foot{
  display:block!important;
}
.catalog-running-foot{
  display:block!important;
  text-align:right!important;
}
.catalog-running-foot span:first-child{
  display:inline!important;
  font-size:9pt!important;
}
.catalog-running-foot span:last-child{
  display:none!important;
}

/* BMC 022.57 (Nutzerrueckmeldung 24.07.2026, "Vorschau hellgrau in den Zellen fehlt noch") -
   gegen die verbindliche Word-Vorlage abgeglichen (250612_KUERZEL_Bauteilkatalog...docx):
   dort tragen dort ALLE Zellen unter der Kopfzelle "Eigenschaften" (colspan 2 - also sowohl die
   Kurz-Spalte "Brandschutz"/"Statik"/... als auch die Beschreibungs-Spalte
   "Feuerwiderstandsfaehigkeit"/... ) eine helle Fuellung #F2F2F2 (w:shd), waehrend
   "Bauteilanforderungen"/"Bauteilleistung" weiss bleiben. Bisher hatte die Druckausgabe dort gar
   keine Hintergrundfarbe gesetzt. Nur fuer die gedruckte Katalogseite.
   BMC 022.59-Korrektur (Nutzerrueckmeldung 24.07.2026, "Zelle rechts neben Trittschallpegel ist
   hellgrau"): die Zeile "Trittschallpegel" hat wegen rowspan="2" auf der vorherigen
   "Schallschutz"-Zeile nur 3 statt 4 <td>-Elemente - dadurch traf td:nth-child(2) dort in
   Wirklichkeit die Bauteilanforderungen-Datenzelle (logische Spalte 3), nicht die
   Beschreibungsspalte (logische Spalte 2). Fix: td:nth-child(2) nur noch anwenden, wenn die Zeile
   mindestens 3 weitere Geschwister danach hat (also 4 <td> insgesamt), ueber
   :nth-last-child(n+3) - trifft dann ausschliesslich normale 4-Spalten-Zeilen. */
.catalog-component-page .catalog-performance td:nth-child(1){
  background:#f2f2f2;
}
.catalog-component-page .catalog-performance td:nth-child(2):nth-last-child(n+3){
  background:#f2f2f2;
}

/* BMC 022.58 (Nutzerauftrag 24.07.2026, "im gleichen Stil wie Allgemeines... muss klar sein
   dass es darunter ist, Struktur wie im Ausdruck") - die bisher immer offen/starr im Formular
   stehenden Stammdaten (Titel, Adresse, Beteiligte, Planungsstand ...) bekommen dasselbe
   Aufklapp-/Bearbeiten-Muster wie "Allgemeines"/"Unterlagen"/"Begriffe" (Klasse
   .catalog-general-editor, bereits vorhanden). Damit die Kapitel 1/2/3 sichtbar UNTER den
   Stammdaten stehen (wie im Ausdruck: Deckblatt zuerst, danach Kapitel 1/2/3), werden sie in
   einer eingerueckten Gruppe mit duennem linken Rand zusammengefasst - derselbe visuelle Kniff
   wie beim bereits vorhandenen "masterdata-subaccordion"-Muster (Monatsreferenzklima), nur ohne
   dessen Detailstile zu uebernehmen, um bestehende Nutzung dort nicht zu beeinflussen. */
.catalog-chapter-group{
  margin-left:18px;
  padding-left:16px;
  border-left:2px solid #d8dee7;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.catalog-general-editor-body.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  padding:16px;
}
.catalog-general-editor-body.form-grid label{
  display:block;
}

/* BMC 022.61 (Nutzerrueckmeldung 24.07.2026, "das Feld rechts neben Trittschallpegel muss auch
   mittig ausgerichtet sein") - dritte Auspraegung derselben rowspan/nth-child-Fehlerklasse aus
   BMC 022.56 (Spaltenbreiten) und BMC 022.59 (Graufuellung): die Basisregel
   ".catalog-performance td:nth-child(n+3){text-align:center}" zentriert die Werte-Spalten
   (Bauteilanforderungen/Bauteilleistung). In der durch rowspan="2" verkuerzten
   Trittschallpegel-Zeile (nur 3 statt 4 <td>) landet die Bauteilanforderungen-Zelle aber auf
   nth-child(2), nicht nth-child(3) - "nth-child(n+3)" trifft sie deshalb nicht, sie blieb
   linksbuendig (Standard) statt zentriert. Fix nur fuer die Wand-Variante mit <colgroup>
   (".catalog-performance-fixed-grid", siehe BMC 022.60) ueber "nth-last-child(-n+2)" - trifft
   dort strukturell IMMER die letzten zwei Zellen (Bauteilanforderungen+Bauteilleistung), egal ob
   die Zeile 3 oder 4 <td> hat. Bewusst NICHT als allgemeine Regel fuer alle
   .catalog-performance-Tabellen, da andere Varianten (Fenster/Tueren) teils nur 3 Spalten OHNE
   Bauteilleistung haben, wo "die letzten zwei Zellen" die Beschreibungsspalte mit eingeschlossen
   haette. */
.catalog-component-page .catalog-performance-fixed-grid td:nth-last-child(-n+2){
  text-align:center;
}

/* BMC 022.69 (Nutzerauftrag 24.07.2026, Versionierungslogik je Leistungsphase) - Versions-Historie
   in der Bauteilkatalog-Reihenfolge-Karte: je Leistungsphase "leicht eingerueckt" (Nutzerwunsch),
   die einzelnen Versand-/Arbeitsstaende darunter nochmals eingerueckt. Schmalere Dialogbreite fuer
   den einfachen "Neue Leistungsphase starten"-Dialog (die generische .layer-dialog-Breite von
   920px ist fuer zwei Formularfelder ueberdimensioniert). */
/* BMC 022.99 (Nutzerauftrag 25.07.2026, Screenshot: "das muss intuitiver werden und auch
   wesentlich organisierter uebersichtlicher und auch ansehnlicher"): Versions-Historie neu als
   Kartenliste statt einer flachen, gleichfoermigen Aufzaehlung - jede Leistungsphase (auch wenn
   ihr Name sich wiederholt, z. B. zwei "LP 3"-Durchlaeufe) bekommt eine eigene, klar
   abgegrenzte Karte mit sichtbarem Start-Datum zur Unterscheidung. */
.catalog-phase-history{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid #e5e7eb;
}
.catalog-phase-history-title{
  margin:0 0 10px;
  font-size:1em;
}
.catalog-phase-history-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.catalog-phase-history-card{
  border:1px solid #e5e7eb;
  border-radius:10px;
  padding:10px 12px;
  background:#f8fafc;
}
.catalog-phase-history-card.is-current{
  border-color:#94a3b8;
  background:#eef2ff;
}
.catalog-phase-history-card-head{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:6px 10px;
}
.catalog-phase-history-card-title{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:4px 8px;
}
.catalog-phase-history-card-started{
  font-size:.85em;
  color:#64748b;
  font-weight:400;
}
.catalog-phase-history-versions{
  list-style:none;
  margin:8px 0 0;
  padding:0;
  font-size:.92em;
  color:#475569;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.catalog-phase-history-versions li{
  margin:0;
}
.catalog-phase-history-versions li.is-draft{
  display:flex;
  align-items:center;
  gap:8px;
}
.catalog-phase-history-version-pill{
  display:inline-block;
  min-width:1.6em;
  text-align:center;
  padding:1px 8px;
  border-radius:999px;
  background:#334155;
  color:#fff;
  font-weight:700;
  font-size:.85em;
  line-height:1.5;
}
.catalog-phase-history-version-pill.is-draft{
  background:#c1121f;
}
.catalog-phase-history-version-note{
  color:#c1121f;
  font-weight:600;
}
.catalog-phase-history-send-meta{
  margin-left:8px;
}
.catalog-phase-history-no-snapshot{
  color:#94a3b8;
  font-size:.9em;
  font-style:italic;
}
.catalog-phase-history-empty{
  color:#94a3b8;
  font-style:italic;
}
/* BMC 022.100 (Nutzerauftrag 26.07.2026) - uebersprungene HOAI-Phase (synthetischer
   Platzhalter, siehe catalog_phase_history_with_gaps() in index.php): gestrichelter Rahmen,
   kein Klapp-/Startdatum-Bereich. */
.catalog-phase-history-card.is-skipped{
  background:#fafafa;
  border-style:dashed;
}
.catalog-phase-history-skipped-note{
  color:#9a9a9a;
  font-style:italic;
  font-size:.9em;
}
/* BMC 022.100 - aeltere Karten (nicht "is-current") sind standardmaessig eingeklappt; die
   GESAMTE Kopfzeile ist Klickziel zum Auf-/Zuklappen (siehe Nutzerrueckmeldung: "Aufklappen
   nicht nur auf Pfeil"), der Pfeil ist rein dekorativ und besitzt bewusst kein eigenes
   Klick-Verhalten (pointer-events:none). */
.catalog-phase-history-card:not(.is-current) .catalog-phase-history-card-head{
  cursor:pointer;
  border-radius:8px;
  margin:-4px -6px;
  padding:4px 6px;
}
.catalog-phase-history-card:not(.is-current) .catalog-phase-history-card-head:hover{
  background:#eef2f7;
}
.catalog-phase-history-card:not(.is-current) .catalog-phase-history-card-head:focus-visible{
  outline:2px solid #1d5f9a;
  outline-offset:2px;
}
.catalog-phase-history-toggle-arrow{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  width:26px;
  height:26px;
  border:1px solid #cbd5e1;
  border-radius:999px;
  background:#fff;
  color:#475569;
  font-size:.9em;
  pointer-events:none;
}
.catalog-phase-history-toggle-arrow-glyph{
  display:inline-block;
  transition:transform .15s ease;
}
.catalog-phase-history-card-head[aria-expanded="true"] .catalog-phase-history-toggle-arrow-glyph{
  transform:rotate(90deg);
}
.catalog-phase-history-card:not(.is-current) .catalog-phase-history-versions{
  display:none;
}
.catalog-phase-history-card:not(.is-current).is-open .catalog-phase-history-versions{
  display:flex;
}
/* BMC 022.100 - kompakte Drag&Drop-Ablage fuer den je Versand hinterlegten Bauteilkatalog-PDF,
   ersetzt das bisherige schlichte Datei-Feld + "PDF hochladen"-Button. */
.catalog-phase-history-pdf-drop{
  display:flex;
  align-items:center;
  gap:6px;
  border:2px dashed #9fb2c8;
  border-radius:10px;
  background:var(--soft-bg,#f8fafc);
  padding:6px 10px;
  font-size:.82em;
  color:#64748b;
  cursor:pointer;
  white-space:nowrap;
}
.catalog-phase-history-pdf-drop.is-dragover{
  border-color:#1d5f9a;
  background:#eef6ff;
  color:#1d5f9a;
}
.catalog-phase-history-pdf-drop-text{
  font-weight:600;
}
.catalog-phase-history-pdf-drop input[type="file"]{
  display:none;
}
.catalog-phase-history-send-actions .button.icon-btn{
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.catalog-new-phase-dialog{
  width:min(560px, calc(100vw - 28px));
}
.catalog-new-phase-order-choice{
  margin:14px 18px;
  padding:10px 12px;
  border:1px solid #e5e7eb;
  border-radius:10px;
}
.catalog-new-phase-order-choice legend{
  font-weight:700;
  padding:0 4px;
}
.catalog-new-phase-order-choice .checkbox-label{
  align-items:flex-start;
  margin:6px 0;
}

/* BMC 022.71 (Nutzerauftrag 24.07.2026) - je Versand-Eintrag in der Versions-Historie: Label plus
   "Wiederherstellen"/"PDF hochladen"/"PDF öffnen" nebeneinander statt darunter, damit die Liste
   trotz der zusaetzlichen Aktionen kompakt bleibt. */
.catalog-phase-history-send{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 10px;
  justify-content:space-between;
}
.catalog-phase-history-send-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
}
.catalog-phase-history-send-actions form.inline-form{
  display:flex;
  align-items:center;
  gap:6px;
  margin:0;
}
.catalog-phase-history-pdf-upload input[type="file"]{
  max-width:150px;
  font-size:.85em;
}
/* BMC 022.104 (Nutzerauftrag 26.07.2026, RC1-Thema 2 "gedrungen"/Admincenter-Regler): Skizzenbreite
   (Anteil an der Skizze/Tabelle-Spaltenaufteilung) und Skizzenhoehe (getrennt liegend/stehend)
   sind jetzt ueber Admincenter-Einstellungen steuerbar (siehe --catalog-sketch-width-percent/
   --catalog-sketch-height-horizontal/-vertical, gesetzt auf .catalog-document in
   `case 'project_catalog_pdf':`). Bewusst als LETZTE Regel der Datei mit gleicher Spezifitaet +
   !important wie die bestehenden, historisch gewachsenen Kaskaden-Ueberschreibungen weiter oben -
   das gewinnt bei gleichem Gewicht ueber die Quellreihenfolge, ohne dass jede aeltere Regel
   einzeln aufgespuert und angepasst werden muss. Fehlt eine Variable (z. B. andere
   Druckansichten ohne .catalog-document-Wrapper), greift der bisherige, unveraenderte Fallback-
   Wert nach dem Komma.
*/
.catalog-document .catalog-component-page .catalog-build-grid{
  grid-template-columns:var(--catalog-sketch-width-percent,45%) calc(100% - var(--catalog-sketch-width-percent,45%))!important;
}
.catalog-document .catalog-component-page .catalog-sketch-vertical{
  height:var(--catalog-sketch-height-vertical,101mm)!important;
}
/* BMC 022.105 (Nutzerfeedback 26.07.2026: "liegende Bauteile sehen immer noch nicht gut aus",
   Entscheidung "eigene, nur fuer liegende Bauteile geltende Loesung"): eine liegende Skizze
   (Dach/Decke/Boden) ist von Natur aus SEHR breit und WENIG hoch (typ. Seitenverhaeltnis > 1,8:1).
   Die bisherige Regel erzwang eine FESTE Hoehe (101mm) unabhaengig von der erreichbaren Breite -
   die eigentliche Skizze (per component_svg() im eigenen Seitenverhaeltnis gezeichnet) hat den
   erzwungenen Kasten dadurch nur zu einem kleinen Teil ausgefuellt (der Rest blieb Leerraum), und
   alles darin - inkl. der gerade erst vergroesserten Positionsnummern - wurde entsprechend winzig
   mitskaliert. Empirisch mit einer eigenen Testseite (echtes app.css + reale Bodenplatten-Skizze,
   per Playwright/Chromium gerendert und die berechneten Groessen abgefragt) nachvollzogen: bei
   fester Hoehe blieb der groesste Teil der Box ungenutzt.
   Jetzt: die Box bekommt height:auto (richtet sich nach ihrem tatsaechlichen Inhalt) mit der
   bisherigen Hoehen-Einstellung nur noch als OBERGRENZE (max-height) statt als erzwungener,
   fester Wert - und die SVG selbst bekommt width:100%/height:auto statt der festen
   Prozent-Kombination aus BMC 021.84/021.87 (die fuer eine BREITE Skizze in einer SCHMALEN,
   hochformatigen Box gedacht war und hier das eigentliche Problem war). Dadurch nutzt die Skizze
   ihre - dank der jetzt breiteren Skizzenbreite-Einstellung fuer liegende Bauteile - verfuegbare
   Breite voll aus und wird dabei automatisch so hoch wie ihr eigenes Seitenverhaeltnis es
   vorgibt, statt in einer viel zu hohen Box zu "schwimmen". Gilt bewusst NUR fuer liegende
   Bauteile im vollen Bauteilkatalog (.catalog-sketch-sheet-image.catalog-sketch-horizontal) -
   stehende Waende (schon bisher ein gut passendes Hochformat-Seitenverhaeltnis) und alle anderen
   Sketch-Kontexte (Editor, Datenblatt, Helena-Export) bleiben unveraendert. */
.catalog-document .catalog-component-page .catalog-sketch-sheet-image.catalog-sketch-horizontal{
  height:auto!important;
  max-height:var(--catalog-sketch-height-horizontal,101mm)!important;
}
.catalog-document .catalog-component-page .catalog-sketch-sheet-image.catalog-sketch-horizontal .component-svg-sheet-image,
.catalog-document .catalog-component-page .catalog-sketch-sheet-image.catalog-sketch-horizontal .component-svg-catalog{
  width:100%!important;
  height:auto!important;
  max-width:100%!important;
  max-height:100%!important;
  min-width:0!important;
  min-height:0!important;
  transform:none!important;
}
.catalog-document .catalog-component-page .catalog-sketch-sheet-image.catalog-sketch-horizontal .component-svg-catalog text{
  font-size:12px!important;
  font-weight:700!important;
  paint-order:stroke!important;
  stroke:#fff!important;
  stroke-width:2px!important;
  stroke-linejoin:round!important;
}
/* BMC 022.106 (Nutzerfeedback 26.07.2026, Screenshot Holzbauwand AW5):
   1) "Linie zwischen 4a und 4b muss nicht fett sein, soll keine durchgezogene Linie haben":
      seit BMC 022.53 sollte diese Trennlinie eine duenne, helle gepunktete Linie sein (siehe
      ".catalog-layer-row-inhomogeneous-b{border-top:.1mm dotted #b7bcc2!important}" weiter
      oben) - tatsaechlich gewinnt aber eine AELTERE, staerker spezifische Regel
      (".catalog-component-page .catalog-layer-row-inhomogeneous + .catalog-layer-row-
      inhomogeneous{border-top:.25mm solid #222!important}", 3 Klassen vs. 2) und zeichnet
      weiterhin eine volle schwarze Linie - der BMC-022.53-Fix hat nie gegriffen. Hier mit
      einer noch spezifischeren Regel (3 Klassen wie das Original, aber am Ende der Datei)
      endgueltig auf die duenne gepunktete Linie zurueckgesetzt.
   2) "Oberhalb der Summe fehlt eine Linie": bei kurzen Schichtenlisten (deutlich weniger als
      die maximal moegliche Anzahl Schichten) liegt zwischen der letzten Schicht-Zeile und der
      Summenzeile eine grosse, durch den flex-wachsenden Abstandshalter (.catalog-layer-spacer)
      erzeugte Luecke OHNE jede Linie - die Summe wirkt "freischwebend". Die Summenzeile
      bekommt jetzt selbst eine obere Trennlinie, unabhaengig von der Groesse dieser Luecke. */
.catalog-document .catalog-component-page .catalog-layer-row-inhomogeneous-b.catalog-layer-row-inhomogeneous{
  border-top:.1mm dotted #b7bcc2!important;
}
.catalog-document .catalog-component-page .catalog-layer-row.sum{
  border-top:.35mm solid #222!important;
}
.catalog-sketch-settings-grid{display:flex;flex-direction:column;gap:14px;max-width:520px}
.catalog-sketch-settings-grid label{display:flex;flex-direction:column;gap:6px;font-weight:600}
.catalog-sketch-settings-grid input[type="range"]{width:100%}
.catalog-sketch-settings-grid output{font-weight:400;color:#526173;font-size:.9em}

/* BMC 022.112 (Nutzerauftrag 27.07.2026, "Zur Abfolge..."): Reiter/Warnung fuer die "Normierte
   Bauteile"-Spur sowie der neue Umwandlungs-Bildschirm je Bauteil. */
.catalog-track-switcher{flex-direction:column;align-items:flex-start;gap:10px}
.catalog-track-tabs{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.catalog-track-warning{margin:0;width:100%}
/* BMC 022.147 (Nutzerauftrag 28.07.2026, "ja um den Rahmen"): auffaelliger oranger Rahmen um die
   komplette Projektseite, solange die Spur "Normierte Bauteile" aktiv ausgewaehlt ist - der
   bestehende Warnhinweisbalken (.catalog-track-warning oben) bleibt dabei unveraendert bestehen. */
.catalog-track-frame-normiert{border:3px solid #f59e0b;border-radius:16px;padding:18px;margin-bottom:18px}
@media(max-width:640px){.catalog-track-frame-normiert{padding:12px;border-radius:12px}}
.norm-convert-sticky{position:sticky;top:64px;z-index:12;background:#fff}
.norm-convert-metrics{display:flex;gap:24px;flex-wrap:wrap;margin-top:10px}
.norm-convert-metric{min-width:180px}
.norm-convert-metric span{display:block;font-size:12px;color:#657383}
.norm-convert-metric strong{font-size:19px;color:var(--ink)}
.norm-convert-metric.is-good strong{color:#17662d}
.norm-convert-metric.is-bad strong{color:#a62424}
.norm-convert-layer-row{border-left:4px solid var(--line)}
.norm-convert-layer-row.is-open{border-left-color:#f28c28}
.norm-convert-layer-row.is-already-norm{border-left-color:#c3cad2;opacity:.82}
.norm-convert-resolution.is-gelernt{background:#dff4e4;color:#17662d}
.norm-convert-resolution.is-automatisch{background:#e5efff;color:#174b8a}
.norm-convert-resolution.is-manuell{background:#fff0d8;color:#8a5100}
.norm-convert-resolution.is-offen{background:#fde9e9;color:#8f2020}
.norm-convert-resolution.is-bereits_normiert{background:#eef1f4;color:#4a5568}
.norm-convert-slot-form{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-top:10px}
.norm-convert-slot-form label{display:flex;flex-direction:column;gap:4px;font-weight:600;min-width:260px;flex:1}
/* BMC 022.113-Nachbesserung (Nutzerrückmeldung 27.07.2026): eigene, auffaellige Kennzeichnung fuer
   Bauteile mit bereits erfolgter Teiluebernahme ("Aussetzen") - deutlich vom neutralen "bereits
   normiert"-Badge und vom normalen "X/Y zugeordnet"-Knopf abgesetzt. */
.norm-convert-incomplete-badge{background:#fde9e9;color:#8f2020;border:1px solid #f3b9b9;text-decoration:none;cursor:pointer}
.norm-convert-incomplete-badge:hover{background:#fbdada}

/* BMC 022.163 (Hybrid-Neugliederung "Schicht bearbeiten", Nutzerauftrag 29.07.2026 "Dann nimm C -
   ich vertraue dir dabei"): neue Akkordeon-Abschnitte (Darstellung / QNG-LCA / B4 - B4 nutzt die
   bestehende .layer-b4-settings-Klasse zusaetzlich), Zusammenfassungs-Chip und die S/LCA/BP-
   Fusszeile, die im Bearbeiten-Popup jetzt die drei Einbeziehungs-Checkboxen als eigene, immer
   sichtbare Badges zeigt (vom bestehenden Ansatz der S/LCA/BP-Spalte in der Schichtentabelle
   uebernommen, siehe Nutzerauftrag "ich würde die badges LCA/BP/S von der schichtinegabe hier
   übernehmen"). Rein additiv fuer das Bearbeiten-Popup (form.layer-edit-form) - app.js grenzt die
   dafuer angepassten Verhalten (V3.7.108/119/131/018a) bewusst auf dieses Formular ein, der
   add-layer-Dialog bleibt unveraendert. */
.layer-edit-accordion{
  border:1px solid #d7dee6;
  border-radius:10px;
  margin:.6rem 0;
  background:#fff;
}
.layer-edit-accordion>summary{
  cursor:pointer;
  padding:.55rem .8rem;
  display:flex;
  align-items:center;
  gap:.6rem;
  list-style:none;
  font-weight:700;
  font-size:14px;
}
.layer-edit-accordion>summary::-webkit-details-marker{display:none}
.layer-edit-accordion>summary small{font-weight:400;color:#64748b}
.layer-edit-accordion-body{
  padding:0 .8rem .8rem;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px;
}
.layer-edit-accordion-body .wide{grid-column:1/-1}
.layer-edit-accordion.is-missing{border-color:#b91c1c}
.layer-edit-accordion.is-missing>summary{color:#b91c1c}
.lea-chip{
  font-size:.72rem;
  font-weight:700;
  padding:.15rem .55rem;
  border-radius:999px;
  background:#dcfce7;
  color:#166534;
}
.lea-chip.is-missing{background:#b91c1c;color:#fff}
.layer-edit-flags{
  display:flex;
  gap:.5rem;
  margin-top:.4rem;
}
.layer-edit-flag{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.4rem 1rem;
  border-radius:999px;
  background:#eef1f5;
  color:#475569;
  border:1px solid #cbd5e1;
  font-weight:800;
  font-size:.78rem;
  cursor:pointer;
  gap:0;
}
.layer-edit-flag input{
  position:absolute;
  inset:0;
  opacity:0;
  margin:0;
  width:100%;
  height:100%;
  cursor:pointer;
}
.layer-edit-flag:has(input:checked){
  background:#1f2937;
  color:#fff;
  border-color:#1f2937;
}
.layer-edit-flag-lca.is-missing{background:#b91c1c!important;color:#fff!important;border-color:#991b1b!important}
/* BMC 022.163: die Zusatzstoff-Box lag bisher zwischen Pfad A und Pfad B ohne jede eigene
   Gestaltung (siehe Recherche zu app.js) - rein optische Nachbesserung, keine Funktionsaenderung. */
.layer-secondary-material{
  border:1px solid #e2e8f0;
  border-radius:10px;
  padding:.6rem .7rem;
  background:#f8fafc;
}

/* BMC 022.164 (Nutzerauftrag 29.07.2026, Mockup bestaetigt): kompakte Baustoff-A/B-Zeile - beim
   Oeffnen nur Materialname + λ + LCA-Status, Details erst nach Klick. Gilt fuer layer_edit UND
   add_layer (dasselbe .layer-path-panel-a/-b aus V3.7.94, dort ohne Formular-Eingrenzung gebaut). */
.layer-path-summary-row{
  display:none;
  width:100%;
  align-items:flex-start;
  gap:14px;
  border:0;
  background:transparent;
  padding:2px 2px 2px;
  margin:0;
  cursor:pointer;
  text-align:left;
  font:inherit;
  color:inherit;
}
.layer-path-panel.is-lp-collapsed>.layer-path-summary-row{display:flex}
.layer-path-panel.is-lp-collapsed>:not(.layer-path-summary-row){display:none!important}
.layer-path-panel.is-lp-missing{border-color:#b91c1c}
.lp-summary-chip{flex:0 0 auto;font-size:11px;font-weight:800;background:#dbeafe;color:#1d4ed8;padding:4px 10px;border-radius:999px;margin-top:2px}
.layer-path-panel-b .lp-summary-chip{background:#fde7cf;color:#9a4b12}
.lp-summary-main{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}
/* BMC 022.165 (Nutzerauftrag 29.07.2026, "mach das mal so" zur groesseren/prominenteren
   Materialdarstellung): Name in der eingeklappten Zeile deutlich groesser als zuvor (14.5px ->
   17px), damit er den Hauptteil der Zeilenbreite optisch ausfuellt statt klein mit viel Leerraum
   bis zum Badge zu stehen. */
.lp-summary-main strong{font-size:17px;font-weight:700;color:#17375e;line-height:1.25}
.lp-summary-main small{color:#657383;font-size:12.5px}
.lp-summary-badge{flex:0 0 auto;font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;background:#dcfce7;color:#166534;white-space:nowrap}
.lp-summary-badge.is-missing{background:#b91c1c;color:#fff}
/* BMC 022.167 (Nutzerauftrag 29.07.2026, Mockup bestaetigt: eingeklappte Zeile so reichhaltig wie
   die volle Detailkarte) - Code/Kategorie, Kennwerte und Status-Badges innerhalb der Zeile,
   Farben/Klassen absichtlich identisch zu .material-inline-* (updateMaterialPreview(), Block 1)
   wiederverwendet statt neu erfunden. */
.lp-summary-main .lp-summary-meta{display:block}
.lp-summary-values{display:flex;flex-wrap:wrap;gap:4px 8px;color:#475569;font-size:.82rem}
.lp-summary-badges{display:flex;flex-wrap:wrap;gap:5px}
.lp-summary-badges .material-data-badge,
.lp-summary-badges .lock-badge{font-size:.72rem;padding:3px 7px}
.lp-summary-badges .lock-badge{padding:3px 8px}
.layer-path-chevron{flex:0 0 auto;font-size:15px;color:#94a3b8;line-height:1;margin-top:2px}
.layer-path-panel-head-clickable{cursor:pointer;position:relative;padding-right:22px!important}
.layer-path-panel-head-clickable .layer-path-chevron-collapse{position:absolute;top:0;right:0}

/* BMC 022.166 (Nutzerauftrag 29.07.2026, "Balken Zusatzbaustoff in den Balken des Baustoff A"):
   der bisher eigenstaendige Zusatzstoff-Kasten (BMC 022.165, eigene Zu-/Aufklapp-Gruppe) wird
   jetzt per app.js physisch in Pfad A eingebettet (.layer-secondary-material wird dort zum
   letzten Kind von .layer-path-panel-a). Er hat daher kein eigenes is-lp-collapsed mehr - er ist
   schlicht Teil des normalen, per Blanket-Regel oben (.layer-path-panel.is-lp-collapsed>
   :not(.layer-path-summary-row){display:none}) ausgeblendeten Pfad-A-Inhalts, wenn Pfad A
   eingeklappt ist, und normal sichtbar, wenn Pfad A aufgeklappt ist. */
.layer-secondary-embedded{margin-top:14px}
/* BMC 022.167: gleiches Kopf-Muster wie .layer-path-panel-head (Badge + Ueberschrift + Untertitel
   + Trennlinie), nur mit eigenem "Zusatz"-Badge statt "Pfad A"/"Pfad B" - siehe embedSecondary()
   (app.js). Blaue Palette identisch zu Pfad A, da der Zusatzstoff Teil von Pfad A ist. */
.layer-secondary-embedded-head{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:10px;
  align-items:center;
  padding:0 0 11px;
  margin-bottom:12px;
  border-bottom:1px solid #dfe9f1;
}
.layer-secondary-embedded-badge{
  grid-row:1/3;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:56px;
  height:26px;
  padding:0 9px;
  border-radius:999px;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.045em;
  text-transform:uppercase;
  color:#16527d;
  background:#dceefa;
  border:1px solid #a9d0e9;
}
.layer-secondary-embedded-head strong{grid-column:2;display:block;color:#17375e;font-size:.92rem}
.layer-secondary-embedded-head small{grid-column:2;color:var(--muted-2)}

/* Eingeklappte Pfad-A-Zeile: eigene, staendige Zusatzstoff-Zeile (Checkbox "2. Anteil" + ggf.
   Name/Volumenanteil/LCA-Badge), bewusst von der Blanket-Ausblendregel oben ausgenommen - "so
   sieht man im geschlossenen Zustand alles" (Nutzerzitat 29.07.2026). Beim Aufklappen von Pfad A
   verschwindet sie wieder, da der vollstaendige Zusatzstoff-Abschnitt (.layer-secondary-embedded)
   dann ohnehin sichtbar ist. */
.layer-path-secondary-line{
  display:none;
  grid-column:1/-1;
  align-items:center;
  gap:10px;
  width:100%;
  margin-top:8px;
  padding-top:8px;
  border-top:1px dashed #d7e2ec;
}
.layer-path-panel.is-lp-collapsed>.layer-path-secondary-line{display:flex!important}
.layer-path-secondary-line .layer-secondary-toggle{margin:0;flex:0 0 auto;white-space:nowrap}
.layer-path-secondary-summary{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.layer-path-secondary-summary strong{font-size:13.5px;font-weight:700;color:#17375e}
.layer-path-secondary-summary small{color:#657383;font-size:12px}

/* Checkbox "2. Anteil" (Nutzerauftrag: "wenn angehakt lca zuordnung und % anteil eingabe") -
   schaltet Baustoffauswahl + Prozentfeld erst frei, statt sie immer editierbar zu zeigen. Es gibt
   seit BMC 022.166 zwei synchronisierte Exemplare (eingeklappte Zeile + aufgeklappter Abschnitt). */
.layer-secondary-toggle{margin-bottom:.5rem}
.is-lp-toggle-off{opacity:.45;pointer-events:none}

/* Volumenanteil-Hinweis in der Kopfzeile der "Aufteilung der Schicht"-Balkengrafik (bewusst nur
   Text, keine Aenderung an der Balkengrafik selbst - siehe Rueckfrage vom 29.07.2026). */
.stud-share-secondary-badge{font-size:11.5px;font-weight:700;color:#5b21b6;background:#ede9fe;padding:4px 10px;border-radius:999px;white-space:nowrap}


/* BMC 022.168 (Nutzerauftrag 29.07.2026, Mockup bestaetigt: "schmaler machen" + "Breite/
   Achsabstand-Feld reduziert und schmal in der Höhe"): konsolidierte, abschliessende Regeln fuer
   die "Aufteilung der Schicht"-Box und ihr Popover - ueberschreiben bewusst die zahlreichen
   aelteren, einander teils widersprechenden .stud-share-inline-editor-Regeln weiter oben (V3.7.131/
   .132/.155 u.a., dort noch fuer die inzwischen entfernte 4-Spalten-Aufteilung inkl.
   Schichtdicke-Feld ausgelegt - siehe die entfernte .stud-share-thickness-field oben). Statt jede
   einzelne Altregel aufzuspueren, gewinnt diese Regel dank spaeterer Position in der Kaskade bei
   gleicher Spezifitaet automatisch fuer die betroffenen Eigenschaften.
   Das Popover fuer Breite/Achsabstand (+ optionaler manueller Pfad-B-Anteil) ist eine kompakte,
   niedrige Box mit nur 3 Zeilen (Anteil manuell vorgeben, Breite+Achsabstand nebeneinander,
   Aktionen) statt der vorherigen breiten Mehrspalten-Karte - der Fokus liegt bewusst auf
   reduzierter HÖHE (Nutzerformulierung: "reduziert und schmal in der Höhe"), nicht auf einer
   eigenen Breitenbegrenzung. */
/* BMC 022.168-Korrektur (Live-Rueckmeldung 29.07.2026, Screenshot mit Markierung: "volle
   breite"): die zuvor hier gesetzte max-width:480px liess neben der Box unschoenen Leerraum
   entstehen, da Kopfleiste und Pfad-A/B-Kacheln daneben weiterhin volle Breite nutzen. Die Box
   nimmt jetzt wieder die volle verfuegbare Breite ein wie alle anderen Elemente - der eigentliche
   Reflow-Bugfix (.stud-share-inline-editor auf flex-column, siehe unten) bleibt davon unberuehrt
   und verhindert weiterhin das Umbrechen bei schmalen Breiten. */
.stud-share-inline-editor{
  display:flex;
  flex-direction:column;
  gap:8px;
  align-items:stretch;
  padding:10px 12px;
}
.stud-share-inline-editor > .stud-layer-dimensions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  width:100%;
  flex:none;
  justify-content:stretch;
}
.stud-share-inline-editor > .stud-share-inline-actions{
  justify-content:flex-end;
  align-self:auto;
}
@media(max-width:420px){
  .stud-share-inline-editor > .stud-layer-dimensions{grid-template-columns:1fr}
}

/* BMC 022.169 (Nutzerauftrag 29.07.2026, Screenshot mit durchgestrichener Zeile: "eine benennung
   kann weg dafuer die mit allen angaben die dann im eingeklappten zustand ebenfalls angezeigt
   werden ... Baustoff aendern muss dann natuerlich in diese verbleibende Kachel wandern"):
   .material-current-assignment (aus enhance() in app.js, gemeinsame Komponente fuer Pfad A,
   Pfad B, Zusatzstoff UND Steg-/I-Traeger-Material) zeigte Name+lambda/rho REDUNDANT zur vollen
   Detailkarte (.material-inline-preview, per updateMaterialPreview() befuellt) direkt darunter.
   .material-current-copy (die redundante Namens-/Werte-Anzeige) wird jetzt ausgeblendet - es
   bleibt nur noch eine schlanke Aktionsleiste (Baustoff aendern / Entfernen / Wiederherstellen)
   direkt ueber der einzigen verbleibenden, alle Angaben zeigenden Detailkarte. Bewusst nur die
   Anzeige ausgeblendet (kein DOM-Umbau, keine Aenderung an Sticky-Positionierung waehrend
   geoeffnetem Katalog) - geringstes Risiko, alle bestehenden Funktionen (Suche, Entfernen,
   Wiederherstellen, Sticky-Verhalten beim Scrollen) bleiben unveraendert erhalten. */
.material-current-copy{display:none!important}
.material-current-assignment{justify-content:flex-end}

/* BMC 022.170 (Nutzerauftrag 29.07.2026: "Die jetzige Karte mit dem Button kommt komplett weg,
   der Button erscheint ... in der Karte mit der Baustoffbeschreibung"): .material-inline-preview
   wird jetzt (siehe enhance() in app.js) physisch in .material-catalog-picker verschoben, direkt
   nach der Aktionsleiste .material-current-assignment. Die Detailkarte verliert dafuer ihre
   eigene Border/Radius/Hintergrundfarbe, da .material-catalog-picker mit seinem eigenen Rahmen
   (border-radius:14px, overflow:hidden) jetzt beide gemeinsam als EINE Kachel einfasst - sonst
   entstuende eine Kachel-in-Kachel-Optik. */
.material-catalog-picker .material-inline-preview{
  border:0;
  border-radius:0;
  background:transparent;
  margin:0;
}

/* BMC 022.171 (Nutzerauftrag 29.07.2026, Screenshots mit rotem Pfeil: "button dahin auch im pfad
   B und der dunkel blaue balken weg" + "der Haken 2. Anteil kann auch darein spart platz"):
   1) die farbige Kopfleiste (bisher hell-blau bei Pfad A / hell-orange bei Pfad B) ueber der
   Detailkarte entfaellt - nur im GESCHLOSSENEN Zustand (:not(.is-open)), damit die bestehende,
   gut sichtbare Sticky-Kopfzeile waehrend der Katalogsuche unangetastet bleibt. Jetzt liegt der
   Button einfach auf demselben weissen Hintergrund wie die Detailkarte darunter - eine
   durchgehend weisse Kachel statt Kopf+Body in zwei Farben.
   2) .material-current-assignment wechselt von Grid auf Flex, damit optional (nur bei Pfad A,
   nur wenn ein Zusatzstoff-Layer existiert) die "2. Anteil"-Checkbox als zusaetzliches Kind VOR
   dem Button eingefuegt werden kann (siehe embedSecondary() in app.js), ohne eine feste
   Spaltenzahl zu sprengen. .material-current-actions wandert per margin-left:auto zuverlaessig an
   den rechten Rand, unabhaengig davon, ob die Checkbox vorhanden ist oder nicht. */
.material-catalog-picker:not(.is-open) .material-current-assignment{
  background:transparent;
  border-bottom:0;
}
.material-current-assignment{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}
.material-current-actions{margin-left:auto}
.material-current-assignment .layer-secondary-toggle{
  margin:0;
  white-space:nowrap;
  font-size:.82rem;
  font-weight:700;
  color:#3a4a5c;
}

/* BMC 022.172 (Nutzerrueckmeldung 29.07.2026, Screenshot Pfad B mit "das macht echt kein spass
   mehr"): Regression aus BMC 022.171. Die Alt-Regel aus V3.7.97
   (.material-current-actions{flex-direction:column;align-items:flex-end}) stapelte die Buttons
   der Aktionsleiste (rotes X "Entfernen" ueber "Baustoff aendern") untereinander - solange links
   daneben noch der sichtbare Namens-Text (.material-current-copy, seit BMC 022.169 ausgeblendet)
   stand, fiel das nicht auf. Seit der Flex-Umstellung in 022.171 blieb dadurch bei Pfad B (zwei
   Buttons) ein hoher, links komplett leerer Kopfblock uebrig. Korrektur: die Buttons stehen
   jetzt nebeneinander in EINER kompakten Zeile, rechtsbuendig. width:100% der
   "Wiederherstellen"-Zeile (V3.7.97) wird fuer das Zeilen-Layout ebenfalls zurueckgenommen. */
.material-current-actions{
  flex-direction:row;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.material-current-actions .material-catalog-previous-top{width:auto}

/* BMC 022.172 Teil 2 (Nutzerklarstellung 29.07.2026, Screenshot mit rotem Kreis + Pfeil, danach:
   "nein in der karte unten rechts der baustofftext oben links der button baustoff ändern passt"):
   die Kopfzeile der geschlossenen Material-Kachel entfaellt als eigene Zeile. Stattdessen:
   Baustofftext (Name/Code/Werte/Badges) beginnt OBEN LINKS in der Karte, "Baustoff ändern"
   (bei Pfad B zusaetzlich das rote X) liegt OBEN RECHTS, die "2. Anteil"-Checkbox (nur Pfad A)
   UNTEN RECHTS auf Hoehe der Badge-Zeile. Umsetzung rein per CSS-Positionierung im geschlossenen
   Zustand (:not(.is-open)): die Aktionsleiste wird zu einer unsichtbaren, klickdurchlaessigen
   Vollflaechen-Ebene (inset:0, pointer-events:none), ihre interaktiven Kinder werden absolut in
   die Ecken gesetzt (pointer-events:auto). KEINE DOM-Aenderung noetig - die Checkbox bleibt
   DOM-Kind der Aktionsleiste (Retry-Logik aus BMC 022.171 unveraendert), und im GEOEFFNETEN
   Katalog-Zustand greift weiterhin die unangetastete Sticky-Kopfzeile (.is-open-Regeln). */
.material-catalog-picker:not(.is-open){position:relative}
.material-catalog-picker:not(.is-open) .material-current-assignment{
  display:block;
  position:absolute;
  inset:0;
  padding:0;
  pointer-events:none;
  z-index:2;
}
.material-catalog-picker:not(.is-open) .material-current-actions{
  position:absolute;
  top:10px;
  right:12px;
  margin:0;
  pointer-events:auto;
}
.material-catalog-picker:not(.is-open) .material-current-assignment .layer-secondary-toggle{
  position:absolute;
  bottom:13px;
  right:13px;
  pointer-events:auto;
}
/* Platz rechts freihalten, damit weder Name (oben) noch Badges (unten) unter die absolut
   positionierten Bedienelemente laufen; Mindesthoehe, damit auch bei leerer Auswahl ("Bitte
   Baustoff auswählen", eine Zeile) der Button bzw. Button+Checkbox in die Karte passen. */
.material-catalog-picker:not(.is-open) .material-inline-preview{padding-right:175px;min-height:46px}
.material-catalog-picker.has-secondary-toggle:not(.is-open) .material-inline-preview{min-height:86px}
