/* BÄDERMAXX Badplaner 0.1.9 – Design: Planung im Vordergrund, klare Flächen, drei wählbare Farbwelten.
   Wird als letztes Stylesheet geladen und überschreibt gezielt die Grundstile.
   Farbwelt: body[data-theme="studio|aurora|nebula"] (Plugin-Einstellung "theme"); alle Farben laufen über Variablen. */

:root{
  --head-h:74px;
  --blue:#0a95c8;--blue-dark:#0678a4;--teal:#13a89e;--amber:#e9a23b;
  --ink:#16222b;--muted:#5f7280;--line:#e6ebee;--soft:#f5f8f9;
  --navy:#12303f;--navy-2:#1b4a60;
  --sky-soft:#e6f4fa;--teal-soft:#e3f5f2;--sand:#f6efe4;--sand-line:#ead9bf;--coral:#e8664f;
  --paper:#fff;--page:#f2f5f6;--canvas-a:#fff;--canvas-b:#eef3f5;
  --grad:linear-gradient(90deg,var(--blue),var(--teal) 55%,var(--amber));
  --grad-diag:linear-gradient(135deg,var(--blue),var(--teal));
  --frame:#f2f5f6;--pad:0px;--rf:0px;
  --head-bg:#fff;--foot-bg:#fff;--on-grad:#fff;
  --shadow:0 10px 30px #12303f14;--radius:12px;--rail-w:330px;
  --glow-a:#13a89e28;--logo-glow:drop-shadow(0 0 2px #0a95c84a) drop-shadow(0 0 6px #13a89e50) drop-shadow(0 0 14px #13a89e2c);--logo-glow-hi:drop-shadow(0 0 2px #0a95c866) drop-shadow(0 0 9px #13a89e70) drop-shadow(0 0 18px #0a95c84c);
}
@media(min-width:1650px){:root{--rail-w:370px}}

/* Aurora: hell, Verlauf Blau → Violett → Magenta */
body[data-theme="aurora"]{
  --blue:#4f6df5;--blue-dark:#3a52d6;--teal:#8b5cf0;--amber:#e052c0;
  --ink:#171a33;--muted:#646a92;--line:#e5e7f5;--soft:#f6f6fd;
  --navy:#1b2145;--navy-2:#34408a;
  --sky-soft:#eceeff;--teal-soft:#f0e9ff;--sand:#f5f0ff;--sand-line:#e1d6f7;--coral:#e0527a;
  --page:#e9e7fb;--canvas-a:#fff;--canvas-b:#eeeefb;
  --grad:linear-gradient(90deg,#2e7be8,#7a5be6 55%,#c14fc8);
  --grad-diag:linear-gradient(135deg,#3b82f6,#7a5be6 55%,#c14fc8);
  --frame:linear-gradient(135deg,#3b82f6 0%,#7a5be6 48%,#d946b8 100%);--pad:12px;--rf:18px;
  --glow-a:#7a5be63c;--logo-glow:drop-shadow(0 0 2px #7a5be67a) drop-shadow(0 0 6px #c14fc860) drop-shadow(0 0 12px #3b82f654) drop-shadow(0 0 21px #c14fc830);--logo-glow-hi:drop-shadow(0 0 2.5px #7a5be699) drop-shadow(0 0 9px #c14fc87a) drop-shadow(0 0 17px #3b82f666) drop-shadow(0 0 28px #c14fc848);
}
/* Nebula: dunkle Werkzeugleisten, Neon-Verlauf Cyan → Violett → Pink */
body[data-theme="nebula"]{
  --blue:#2ec4ee;--blue-dark:#7fdcf5;--teal:#8e7bff;--amber:#e15be0;
  --ink:#e9ecff;--muted:#9aa3d6;--line:#292e5e;--soft:#1b2049;
  --navy:#f1f3ff;--navy-2:#b9c0f0;
  --sky-soft:#1d2b55;--teal-soft:#2a2358;--sand:#211c4f;--sand-line:#3a3270;--coral:#ff7a9c;
  --paper:#12163a;--page:#0a0d26;--canvas-a:#f6f7ff;--canvas-b:#e7e9fb;
  --grad:linear-gradient(90deg,#35d0f0,#8e7bff 50%,#e15be0);
  --grad-diag:linear-gradient(135deg,#2ec4ee,#8e7bff 55%,#e15be0);
  --frame:radial-gradient(900px 520px at 8% 0,#4a23b5aa,transparent 60%),radial-gradient(900px 560px at 100% 100%,#0f7fb8aa,transparent 60%),linear-gradient(135deg,#0b0f2c,#14123a);--pad:12px;--rf:18px;
  --head-bg:#0e1233;--foot-bg:#0e1233;--on-grad:#0a0d26;
  --shadow:0 10px 30px #00000055;
  --glow-a:#8e7bff78;--logo-glow:brightness(1.08) drop-shadow(0 0 1.5px #ffffffb0) drop-shadow(0 0 4.5px #35d0f0a8) drop-shadow(0 0 11px #35d0f090) drop-shadow(0 0 19px #8e7bff90) drop-shadow(0 0 30px #e15be068);--logo-glow-hi:brightness(1.15) drop-shadow(0 0 2px #ffffffd0) drop-shadow(0 0 7px #35d0f0b8) drop-shadow(0 0 15px #35d0f0a8) drop-shadow(0 0 26px #8e7bffa8) drop-shadow(0 0 41px #e15be088);
}
body[data-theme="nebula"] .brand-sub{color:#cdd3ff;text-shadow:0 0 6px #8e7bff,0 0 14px #35d0f088}
body{background:var(--frame);padding:var(--pad);color:var(--ink)}
#planner{border-radius:0 0 var(--rf) var(--rf);overflow:hidden;background:var(--page)}

/* ---------- Kopfzeile: Projekt links, Logo + Strich + „3D Online Planer“ in der Mitte, Aktionen rechts ---------- */
.appheader{height:var(--head-h)!important;padding:0 22px;border-bottom:0;box-shadow:0 1px 0 var(--line);position:relative;z-index:6;
  display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:18px;background:var(--head-bg);border-radius:var(--rf) var(--rf) 0 0}
.appheader:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--grad)}
.header-tag{display:none}
.brand-line{display:block;height:1px;width:100%;background:var(--grad);opacity:.9;-webkit-mask:linear-gradient(90deg,transparent,#000 16%,#000 84%,transparent);mask:linear-gradient(90deg,transparent,#000 16%,#000 84%,transparent)}
.brand-sub b{color:var(--blue);font-weight:800}
.brand-wrap{grid-column:2;justify-self:center;display:grid;justify-items:center;gap:6px;position:relative;line-height:1;padding:3px 0}
.brand-wrap:before{content:"";position:absolute;inset:-16px -38px;background:radial-gradient(ellipse at center,var(--glow-a),transparent 68%);filter:blur(9px);pointer-events:none;animation:bmbHalo 5.5s ease-in-out infinite}
.brand-wrap>*{position:relative}
.appheader .brand{width:176px;height:auto;max-height:38px;object-fit:contain;filter:var(--logo-glow);animation:bmbNeon 4.2s ease-in-out infinite}
.brand-sub{font-size:9.5px;font-weight:700;letter-spacing:.34em;text-transform:uppercase;color:var(--muted);padding-left:.34em;white-space:nowrap}
@keyframes bmbHalo{0%,100%{opacity:.75}50%{opacity:1}}
@keyframes bmbNeon{0%,100%{filter:var(--logo-glow)}50%{filter:var(--logo-glow-hi)}}
@media(prefers-reduced-motion:reduce){.brand-wrap:before,.appheader .brand{animation:none}}
.header-divider{display:none!important}
.header-right{grid-column:3;justify-self:end;display:flex;align-items:center;gap:20px;min-width:0}
.project{grid-column:1;justify-self:start;text-align:left;min-width:0;display:grid;grid-template-columns:auto auto;column-gap:7px;align-items:center;justify-items:start;justify-content:start}
.project strong{font-size:15px;display:block;padding:2px 8px;margin:-2px -8px;border-radius:8px;border-bottom:0!important;text-decoration:none!important;transition:background .15s}
.project strong:hover,.project strong:focus{background:color-mix(in srgb,var(--blue) 9%,transparent);outline:0}
.project .pen{width:13px;height:13px;fill:none;stroke:var(--muted);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;grid-column:2;grid-row:1}
.project>span{grid-column:1/-1;justify-self:start;font-size:11px;color:var(--muted);display:inline-flex;align-items:center;gap:5px;padding:1px 9px;border-radius:99px;background:var(--soft);margin-top:3px}
.header-actions{gap:8px;margin-left:0}
.header-actions .primary,.header-actions .outline,.header-actions .quiet{min-height:38px;border-radius:10px}
.header-actions .primary{background:var(--paper);color:var(--navy);border:1px solid var(--line);box-shadow:none}
.header-actions .primary:hover,.header-actions .outline:hover{background:var(--sky-soft);border-color:var(--blue)}
.header-actions .outline{border-color:var(--line);background:transparent;color:var(--navy)}
.header-actions .quiet{color:var(--navy)}
.header-actions .fs-btn{flex:none;display:inline-grid;place-items:center;width:38px;min-width:38px;padding:0}
.header-actions .fs-btn[hidden]{display:none}
.header-actions .fs-btn .icon{width:18px;height:18px;margin:0}
.header-actions .fs-btn[aria-pressed="true"]{background:color-mix(in srgb,var(--blue) 12%,transparent);border-color:var(--blue);color:var(--blue-dark,var(--blue))}
.pdf-word{white-space:nowrap}
@media print{.fs-btn{display:none!important}}
.embedded .appheader .brand,.embedded .appheader .brand-wrap:before{display:none}   /* der Shop zeigt das Logo schon darüber */
.embedded .brand-sub{font-size:12px;letter-spacing:.3em;padding-left:.3em;color:var(--navy)}
.embedded .brand-line{order:2}
@media(min-width:1151px){#listButton{display:none}}
@media(max-width:1150px){.project{display:none!important}.appheader .brand{width:150px}.brand-sub{font-size:8.5px;letter-spacing:.28em}.appheader{gap:12px;padding:0 16px}.header-actions #saveButton .desktop-word{display:none}}
@media(max-width:760px){.appheader{grid-template-columns:auto minmax(0,1fr)}.brand-wrap{grid-column:1}.header-right{grid-column:2}.embedded .appheader{grid-template-columns:auto minmax(0,1fr)}}
@media(max-width:600px){:root{--head-h:64px}.appheader{display:flex!important;padding:0 12px}.header-right{width:100%}.header-actions{width:100%}}
@media(max-width:600px){.header-actions{gap:6px}.header-actions .fs-btn{width:36px;min-width:36px}}
@media(max-width:389px){.header-actions .pdf-word{display:none}}
@media(max-width:359px){.brand-wrap{display:none}}

/* ---------- Gesamtlayout ---------- */
.workspace{grid-template-columns:292px minmax(0,1fr) var(--rail-w)!important;height:calc(100dvh - var(--head-h) - 64px - 2*var(--pad))!important;min-height:520px}
body.rail-collapsed .workspace{grid-template-columns:292px minmax(0,1fr) 54px!important}
.readonly-info~.workspace{height:calc(100dvh - var(--head-h) - 64px - 59px - 2*var(--pad))!important}
@media(min-width:1650px){.workspace{grid-template-columns:320px minmax(0,1fr) var(--rail-w)!important}body.rail-collapsed .workspace{grid-template-columns:320px minmax(0,1fr) 54px!important}}
@media(max-width:1150px){.workspace{grid-template-columns:260px minmax(0,1fr)!important}body.rail-collapsed .workspace{grid-template-columns:260px minmax(0,1fr)!important}}
@media(max-width:600px){.workspace{height:calc(100dvh - 205px - 2*var(--pad))!important;min-height:430px;display:block}.readonly-info~.workspace{height:calc(100dvh - 264px - 2*var(--pad))!important;min-height:380px}}

/* ---------- Linke Spalte ---------- */
.catalog-panel{background:var(--paper);border-right:1px solid var(--line);color:var(--ink)}
.panel-heading{padding:16px 18px 6px!important}
.panel-heading .eyebrow{display:none}
.panel-heading h1{font-size:19px!important;margin:0!important;letter-spacing:-.2px;color:var(--ink)}
.panel-tabs{display:grid!important;grid-template-columns:repeat(4,auto);gap:3px!important;margin:8px 16px 4px!important;padding:3px;background:var(--soft);border:0!important;border-radius:11px}
.panel-tabs button{padding:8px 6px!important;min-width:0;border:0!important;border-radius:8px;font-size:12px!important;font-weight:600;text-align:center;color:var(--muted);background:transparent}
.panel-tabs button.active{background:var(--paper);color:var(--navy)!important;box-shadow:0 1px 4px #12303f1f}
.panel-content{padding:12px 16px 16px!important}
.panel-content h3{font-size:12px;letter-spacing:.7px;text-transform:uppercase;color:var(--navy-2);margin:14px 0 10px;display:flex;align-items:center;gap:8px}
.panel-content h3:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--teal)}
.panel-content h3.bmb-h:before{background:var(--amber)}
.catalog-footer{background:var(--sand);border-top:1px solid var(--sand-line);padding:10px 16px;font-size:11px;line-height:1.5;color:var(--muted);gap:10px}
.catalog-footer .icon{color:var(--amber)}
.bmb-hint{background:var(--sky-soft);color:var(--navy-2);border-radius:10px;padding:9px 11px}

/* Produktkarten: nichts darf aus der Karte laufen. Das "+" sitzt genau in der Mitte des Kreises. */
.product-card{border:1px solid var(--line)!important;border-radius:var(--radius)!important;background:var(--paper);color:var(--ink);box-shadow:0 1px 2px #12303f0a;transition:box-shadow .15s,border-color .15s,transform .15s;min-width:0;overflow:hidden}
.product-card:hover{border-color:var(--blue)!important;box-shadow:0 8px 22px color-mix(in srgb,var(--blue) 16%,transparent);transform:translateY(-1px)}
.product-card.selected{border-color:var(--blue)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 24%,transparent)}
.product-meta{min-width:0;padding:9px 11px 11px!important;gap:3px!important;overflow:hidden}
.product-meta strong,.product-meta small,.product-meta .maker{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.product-meta strong{font-size:13px!important}
.product-meta small{font-size:11px!important}
.product-meta b{font-size:13px!important;color:var(--navy);font-weight:700}
.add-product{position:absolute!important;right:7px!important;top:7px!important;left:auto!important;bottom:auto!important;display:block!important;box-sizing:border-box!important;width:26px!important;height:26px!important;min-width:0!important;margin:0!important;padding:0!important;font-size:0!important;line-height:0!important;text-indent:0!important;overflow:hidden;border:1px solid var(--line);border-radius:50%;color:var(--blue-dark);background:var(--paper);box-shadow:0 1px 4px #12303f26}
.add-product:before,.add-product:after{content:none!important;display:none!important}
.add-product svg{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;display:block;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
.add-product:hover{background:var(--blue);border-color:var(--blue);color:var(--on-grad)}

/* Bauteile als Kacheln: ruhige Linien-Symbole in einer Farbe, die Zeichnung erklärt das Bauteil */
.bmb-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0 0 6px}
.bmb-tile{position:relative!important;display:flex!important;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:3px;min-width:0;padding:12px 12px 11px!important;border:1px solid var(--line)!important;border-radius:var(--radius)!important;background:var(--paper);color:var(--ink);text-align:left;white-space:normal!important;overflow:hidden;box-shadow:0 1px 2px #12303f0a;transition:box-shadow .15s,border-color .15s,transform .15s}
.bmb-tile:hover{border-color:var(--blue)!important;box-shadow:0 8px 20px color-mix(in srgb,var(--navy) 14%,transparent);transform:translateY(-1px)}
.bmb-tile>.part-ico{width:100%;max-width:54px;height:auto;aspect-ratio:1;padding:5px;border-radius:12px;background:var(--soft);border:1px solid var(--line);flex:none;margin-bottom:6px}
.bmb-tile .bmb-grip{position:absolute!important;right:5px;top:6px;left:auto!important;width:16px;height:22px;margin:0!important;background:transparent!important}
.bmb-tile-name{font-size:13px;font-weight:700;color:var(--ink);line-height:1.2}
.bmb-tile .bmb-grip{left:6px!important;right:auto!important}
.bmb-info{position:absolute;right:7px;top:7px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:var(--blue-dark);background:color-mix(in srgb,var(--blue) 10%,var(--paper));border:1px solid color-mix(in srgb,var(--blue) 30%,var(--line));cursor:pointer;transition:background .15s,color .15s}
.bmb-info svg{width:13px;height:13px;display:block;fill:currentColor;stroke:currentColor;stroke-width:2.1;stroke-linecap:round}
.bmb-info:hover,.bmb-info[aria-expanded="true"]{background:var(--blue);border-color:var(--blue);color:var(--on-grad)}
.bmb-info:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.bmb-pop{position:fixed;z-index:60;width:min(260px,calc(100vw - 16px));padding:12px 14px 13px;border-radius:14px;background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 18px 44px #12303f33,0 2px 6px #12303f14;animation:bmbPop .14s ease-out}
.bmb-pop b{display:block;font-size:13px;margin-bottom:4px}
.bmb-pop p{margin:0;font-size:12px;line-height:1.5;color:var(--muted)}
.bmb-pop:before{content:"";position:absolute;inset:0 0 auto;height:3px;border-radius:14px 14px 0 0;background:var(--grad)}
@keyframes bmbPop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
body[data-theme="nebula"] .bmb-pop{background:#181d48;border-color:#363d7d;color:#e8ecff}
body[data-theme="nebula"] .bmb-pop p{color:#aeb6e6}
.part-ico{color:var(--navy-2);stroke-width:1.5}
.part-ico .f{fill:currentColor;fill-opacity:.08;stroke:none}
.part-ico .a{stroke:var(--blue)}
.part-ico .h{opacity:.45}
.part-ico .k{fill:var(--blue);stroke:none}
.part-ico .fl{opacity:.55}
.opening-list{display:grid;gap:7px;margin:10px 0 4px}
.opening-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:12px;cursor:pointer}
.opening-row span:last-child{color:var(--blue-dark);font-weight:600}
.opening-row.is-selected{background:var(--sky-soft);border-color:var(--blue)}

/* Raum-Formular */
.bmb-wall .field-row{align-items:end}
.field input,.field select,.input-unit input{border-radius:9px;background:var(--paper);color:var(--ink);border-color:var(--line)}
.field input:focus,.field select:focus,.input-unit input:focus{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 22%,transparent);outline:0}

/* ---------- Mitte: Planung ---------- */
.design-area{background:radial-gradient(circle at 20% 0,var(--canvas-a) 0,var(--canvas-b) 100%)}
.canvas-toolbar{left:16px;right:16px;top:14px}
.view-switch,.canvas-tools{background:#fff;border:1px solid #e4e9ec;border-radius:12px;box-shadow:0 6px 18px #12303f14;padding:4px;color:#16222b}
body[data-theme="aurora"] .view-switch,body[data-theme="aurora"] .canvas-tools{border-color:#e5e7f5}
.view-switch button{border-radius:8px;min-width:46px;height:32px;color:#33454f}
.view-switch button.active{background:var(--grad-diag);color:#fff}
.canvas-tools button{color:#33454f}
.canvas-tools button.active{background:#e8f1fb;color:#1c5d85}
.viewport-label{left:22px;top:66px}
.viewport-label b{font-size:12px;letter-spacing:.3px;color:#16222b}
.viewport-label span{color:#6b7c88}
.scene-bottom{height:34px;background:var(--paper);border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
.blue-dot{background:var(--teal)!important}
.plan-viewport{background:transparent}
#floorplan{filter:drop-shadow(0 12px 28px #12303f22)}
#floorplan text{font-family:Inter,"Segoe UI",Arial,sans-serif}
.view-bottom{color:#6b7c88}

/* Drehgriff im Grundriss */
.rot-handle{cursor:grab}
.rot-handle line{stroke:var(--blue);stroke-width:1.4;stroke-dasharray:3 2}
.rot-handle circle{fill:#fff;stroke:var(--blue);stroke-width:1.8}
.rot-handle path{fill:none;stroke:var(--blue-dark);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.rot-handle:hover circle{fill:var(--sky-soft)}
/* 0.1.26: Löschen im Grundriss */
.del-handle{cursor:pointer}
.del-handle circle{fill:#fff;stroke:#c8434f;stroke-width:1.6}
.del-handle path{fill:none;stroke:#b3323f;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.del-handle:hover circle{fill:#fdecee}
.rot-label{fill:var(--blue-dark);font:700 11px Inter,Arial,sans-serif;pointer-events:none}
.rot-row{display:grid;grid-template-columns:minmax(0,1fr) 86px minmax(0,1fr);gap:8px;align-items:end;margin-bottom:4px}
.rot-row .outline{min-height:38px;padding:0 6px;font-size:12px;white-space:nowrap}
.bmb-sub{margin:4px 0 12px;font-size:11px;line-height:1.45;color:var(--muted)}

/* ---------- Wandansicht (frontal) ---------- */
.wall-viewport{display:none;flex-direction:column;background:transparent}
.viewports[data-view="wall"] .plan-viewport,.viewports[data-view="wall"] .scene-viewport{display:none!important}
.viewports[data-view="wall"] .wall-viewport{display:flex}
.wall-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:62px 22px 0 22px;position:relative;z-index:1}
.wall-tabs button{display:grid;gap:1px;min-width:78px;padding:6px 12px;border:1px solid #e1e7ea;border-radius:10px;background:#fff;color:#16222b;text-align:left;font-size:12px;font-weight:700;cursor:pointer}
.wall-tabs button small{font-size:10px;font-weight:500;color:#6b7c88}
.wall-tabs button.active{background:var(--grad-diag);border-color:transparent;color:#fff}
.wall-tabs button.active small{color:#ffffffd0}
.wall-tabs button:hover:not(.active){border-color:var(--blue)}
#wallView{flex:1;min-height:0;width:100%;display:block;padding:6px 14px 30px;touch-action:none}
.wall-viewport .viewport-label{display:none}
.wv-wall{fill:url(#wvTiles);stroke:#8a9aa4;stroke-width:1}
.wv-tile{fill:#f7fafa}.wv-grout{stroke:#dbe3e6;stroke-width:.7;fill:none}
.wv-floor{fill:#cfd8dc}.wv-floorline{stroke:#52636d;stroke-width:2.2}
.wv-ceiling{fill:none;stroke:#52636d;stroke-width:2.2;stroke-linejoin:round}
.wv-hatch-bg{fill:#eef2f4}.wv-hatch{stroke:#aeb9c0;stroke-width:1.2}
.wv-open{cursor:grab}.wv-open-hit{fill:transparent}
.wv-door{fill:#efe3d0;stroke:#8a6a3a;stroke-width:1.6}.wv-door-in{fill:none;stroke:#b79a6b;stroke-width:1}.wv-knob{fill:#8a6a3a}
.wv-window{fill:#fff;stroke:#52636d;stroke-width:2}.wv-glass{fill:#cfe9f4;stroke:#7fb6cc;stroke-width:1}.wv-frame{stroke:#52636d;stroke-width:1.6}.wv-sill{stroke:#52636d;stroke-width:2.4;stroke-linecap:round}
.wv-open.selected .wv-door,.wv-open.selected .wv-window{stroke:var(--blue,#0099cc);stroke-width:2.6}
.wv-item{cursor:grab}
.wv-item.far{opacity:.38}
.wv-body{fill:#f4f7f8;stroke:#7d8d97;stroke-width:1.3}
.wv-outline{fill:none;stroke:#7d8d97;stroke-width:1.2}
.wv-part{fill:url(#wvHatch);stroke:#7d8d97;stroke-width:1.3}
.wv-niche{fill:#c9d4da;stroke:#6d7f8b;stroke-width:1.3}.wv-niche-top{fill:#9fb0ba;opacity:.8}
.wv-shelf{fill:#d9c19b;stroke:#a68a5f;stroke-width:1.2}
.wv-name{fill:#33454f;font:600 11px Inter,Arial,sans-serif;pointer-events:none}
.wv-sel{fill:none;stroke:var(--blue,#0099cc);stroke-width:2.2;stroke-dasharray:6 3;pointer-events:none}
.wv-dim line{stroke:#6b7c88;stroke-width:1}
.wv-dim .wv-lbl{fill:#33454f;font:700 11px Inter,Arial,sans-serif;paint-order:stroke;stroke:#f3f6f8;stroke-width:3px;stroke-linejoin:round}
.wv-dim.wv-gap line{stroke:#d1651b}.wv-dim.wv-gap .wv-lbl{fill:#b34e0b}
.wv-dim.wv-size line{stroke:#0a95c8}.wv-dim.wv-size .wv-lbl{fill:#0678a4}
.wv-dim.wv-total line{stroke:#9aa8b1}.wv-dim.wv-total .wv-lbl{fill:#52636d;font-weight:600}

/* ---------- Rechts: Objektliste (ein- und ausklappbar) ---------- */
.inspector{position:relative}
@media(min-width:1151px){.inspector{display:flex!important}}
@media(max-width:1150px){.inspector:not(.open){display:none!important}.rail-toggle{display:none!important}}
.inspector{flex-direction:column;padding:0!important;overflow:hidden!important;background:var(--paper);border-left:1px solid var(--line);color:var(--ink)}
.rail-toggle{position:absolute;top:12px;right:10px;z-index:3;display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--navy-2);cursor:pointer;transition:background .12s,border-color .12s}
.rail-toggle:hover{background:var(--sky-soft);border-color:var(--blue);color:var(--blue-dark)}
.rail-chev{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.rail-count,.rail-label,.rail-dot{display:none}
.inspector>*:not(.rail-toggle){min-width:0}
.ol-head{padding-right:54px!important}
/* eingeklappt: schmale Leiste mit Zähler und senkrechter Beschriftung */
body.rail-collapsed .inspector>*:not(.rail-toggle){display:none!important}
body.rail-collapsed .rail-toggle{position:static;width:100%;height:100%;border:0;border-radius:0;background:var(--paper);grid-template-rows:auto auto 1fr;justify-items:center;align-content:start;gap:12px;padding:16px 0}
body.rail-collapsed .rail-toggle:hover{background:var(--sky-soft)}
body.rail-collapsed .rail-chev{transform:rotate(180deg)}
body.rail-collapsed .rail-count{display:inline-grid;min-width:26px;height:26px;padding:0 7px;place-items:center;border-radius:13px;background:var(--grad-diag);color:#fff;font-size:12px;font-weight:700}
body.rail-collapsed .rail-label{display:block;writing-mode:vertical-rl;font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--navy-2);padding-top:4px}
body.rail-collapsed .rail-toggle.has-sel .rail-dot{display:block;position:absolute;top:14px;right:14px;width:8px;height:8px;border-radius:50%;background:var(--amber)}
.object-list{display:flex;flex-direction:column;flex:1 1 auto;min-height:150px;border-bottom:1px solid var(--line)}
.ol-head{display:flex;align-items:center;gap:10px;padding:16px 18px 10px}
.ol-head h2{font-size:16px;margin:0;letter-spacing:-.1px;color:var(--ink)}
.ol-count{min-width:24px;height:24px;display:inline-grid;place-items:center;padding:0 7px;border-radius:12px;background:var(--teal-soft);color:var(--blue-dark);font-size:12px;font-weight:700}
.ol-rows{list-style:none;margin:0;padding:0 10px 10px;overflow:auto;flex:1;display:grid;gap:6px;align-content:start}
.ol-empty{display:grid;gap:4px;padding:18px 14px;border:1.5px dashed var(--line);border-radius:var(--radius);text-align:center;font-size:12px;color:var(--muted);line-height:1.5}
.ol-empty b{color:var(--navy);font-size:13px}
.obj-row{display:grid;grid-template-columns:22px 46px minmax(0,1fr) auto auto auto;align-items:center;gap:8px;padding:7px 8px;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:10px;background:var(--paper);cursor:pointer;transition:background .12s,border-color .12s;min-width:0}
.obj-row:hover{background:var(--soft);border-color:var(--blue)}
.obj-row:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.obj-row.selected{background:var(--sky-soft);border-color:var(--blue);border-left-color:var(--blue)}
.obj-num{width:20px;height:20px;border-radius:50%;background:var(--grad-diag);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center}
.obj-thumb{width:46px;height:38px;border-radius:8px;background:#f3f7f8;display:grid;place-items:center;overflow:hidden}
.obj-thumb img{width:100%;height:100%;object-fit:contain;display:block}
.obj-main{min-width:0;display:grid;gap:1px}
.obj-main b{font-size:12.5px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.obj-main small{font-size:10.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.obj-price{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
.obj-link,.obj-del{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;color:var(--muted);background:transparent;border:0;font-size:17px;line-height:1;padding:0;text-decoration:none;cursor:pointer}
.obj-link svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.obj-link:hover{background:var(--sky-soft);color:var(--blue-dark)}
.obj-del:hover{background:color-mix(in srgb,var(--coral) 18%,transparent);color:var(--coral)}

/* Planungs-Check */
.plan-check{flex:none;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--paper);max-height:34%;overflow:auto}
.plan-check:empty{display:none}
.pc-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-bottom:6px}
.pc-head b{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--navy-2)}
.pc-badge{font-size:11px;font-weight:700;border-radius:10px;padding:2px 8px}
.pc-badge.ok{background:var(--teal-soft);color:var(--blue-dark)}
.pc-badge.warn{background:color-mix(in srgb,var(--coral) 18%,transparent);color:var(--coral)}
.pc-badge.hint{background:color-mix(in srgb,var(--amber) 22%,transparent);color:var(--navy-2)}
.pc-ok{margin:0;font-size:11.5px;line-height:1.5;color:var(--muted)}
.pc-list{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.pc-list li{font-size:11.5px;line-height:1.45;padding:6px 9px 6px 11px;border-radius:8px;background:var(--soft);border-left:3px solid var(--amber);color:var(--ink)}
.pc-list li.error,.pc-list li.warn{border-left-color:var(--coral)}
.pc-list li.info,.pc-list li.hint{border-left-color:var(--blue)}
.pc-list li.more{background:transparent;border:0;color:var(--muted);padding:2px 4px}

/* Auswahl-Details */
.inspector-wrap{flex:none;max-height:58%;overflow:auto;padding:14px 18px 16px;background:var(--paper)}
.inspector-wrap.is-empty{padding:12px 18px;background:var(--sand);border-top:0}
.inspector-wrap.is-empty .inspector-top{display:none}
.inspector-wrap.is-empty .bmb-tips{color:var(--muted)}
.bmb-tips{font-size:11.5px;line-height:1.5}
.bmb-tips>b{font-size:12px!important;text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px!important}
.bmb-tips ul{padding-left:15px}
.bmb-tips li{margin:0 0 5px}
.bmb-tips li b{display:inline!important;font-size:inherit}
.inspector-top .eyebrow{font-size:10px;color:var(--blue-dark)}
.inspector h2{font-size:16px;color:var(--ink);margin:2px 0 2px}
.inspector .object-img{display:block;width:100%;height:84px;object-fit:contain;margin:0 0 8px;border-radius:10px;background:var(--soft)}
.inspector .object-price{font-size:15px;margin:6px 0 8px}
.inspector .object-price small{display:inline;margin-left:6px}
.inspector .field-label{margin-top:10px}
.inspector .muted,.inspector small{color:var(--muted)}
.button-pair .outline{background:var(--paper);color:var(--navy-2);border-color:var(--line)}
.button-pair .outline.active{background:var(--sky-soft);border-color:var(--blue);color:var(--blue-dark)}

/* ---------- Fußleiste: Preis leise, Warenkorb als Hauptaktion ---------- */
.planning-footer{height:64px!important;padding:0 22px!important;gap:16px!important;background:var(--foot-bg);border-top:1px solid var(--line);box-shadow:0 -6px 24px #12303f08;color:var(--ink)}
.footer-project{min-width:0!important}
.footer-project>span:last-child b{font-size:13px;color:var(--ink)}
.footer-project small{font-size:11px;color:var(--muted)}
.price-summary{margin-left:auto;gap:8px!important;max-width:none!important;align-items:baseline!important}
.price-summary>span{font-size:11px!important;color:var(--muted)!important;display:block!important}
.price-summary small{display:block!important;max-width:230px!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;font-size:10px!important;line-height:1.3;color:var(--muted)}
.price-summary>span{display:flex!important;flex-direction:column;gap:1px;align-items:flex-end}
.price-summary strong{font-size:13px!important;font-weight:600;letter-spacing:0;color:var(--navy-2)}
#consultButton{min-height:36px;border:0;background:transparent;color:var(--blue-dark);font-size:12px;font-weight:600;padding:0 8px;text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--blue) 50%,transparent)}
#consultButton:hover{color:var(--navy)}
#cartButton{height:42px!important;padding:0 26px!important;border-radius:11px;background:var(--grad-diag);color:var(--on-grad);font-size:15px;font-weight:700;box-shadow:0 6px 18px color-mix(in srgb,var(--teal) 38%,transparent);border:0}
#cartButton:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}
#cartButton:disabled{background:var(--soft);color:var(--muted);box-shadow:none;cursor:not-allowed}

/* ---------- Dialoge / Warenkorb ---------- */
dialog{border:0!important;border-radius:16px!important;box-shadow:0 30px 90px #12303f55!important;background:#fff;color:#16222b}
.modal-header{border-bottom:1px solid #e6ebee}
.modal-actions .primary{background:var(--grad-diag);border-radius:10px;border:0;color:var(--on-grad)}
.cart-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.cart-list li{display:grid;grid-template-columns:56px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:8px 10px;border:1px solid #e6ebee;border-radius:12px}
.cart-list img{width:56px;height:44px;object-fit:contain;border-radius:8px;background:#f3f7f8}
.cart-list b{display:block;font-size:13px}
.cart-list small{color:#5f7280;font-size:11px}
.cart-qty{font-weight:700;color:#1b4a60}
.cart-price{font-weight:600;min-width:80px;text-align:right}
.cart-sum{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 4px;border-top:1px solid #e6ebee;font-size:12px;color:#5f7280}
.cart-sum b{font-size:18px;color:#16222b}
.cart-rest{font-size:12px;background:#f6efe4;border-radius:10px;padding:9px 11px;color:#6b5a3e}
.cart-done{display:grid;justify-items:center;gap:6px;padding:22px 0 10px;text-align:center}
.cart-done svg{width:54px;height:54px;fill:none;stroke:var(--teal);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Nebula: dunkle Flächen im Detail ---------- */
body[data-theme="nebula"] .appheader{box-shadow:0 1px 0 #ffffff12}
body[data-theme="nebula"] .header-actions .primary,body[data-theme="nebula"] .header-actions .outline,body[data-theme="nebula"] .header-actions .quiet{background:#ffffff0d;border:1px solid #ffffff24;color:#e9ecff}
body[data-theme="nebula"] .header-actions .primary:hover,body[data-theme="nebula"] .header-actions .outline:hover{background:#ffffff1c;border-color:var(--blue)}
body[data-theme="nebula"] .header-actions .quiet b{background:#ffffff24;color:#fff}   /* 0.1.15: Zähler der Artikelliste war hell auf hell */
body[data-theme="nebula"] .header-actions .fs-btn[aria-pressed="true"]{background:#35d0f024;border-color:#35d0f0;color:#fff}
body[data-theme="nebula"] .catalog-panel,body[data-theme="nebula"] .inspector{background:var(--paper);color-scheme:dark}
body[data-theme="nebula"] .panel-tabs button.active{background:#262c63;color:#fff!important;box-shadow:inset 0 0 0 1px #8e7bff66}
body[data-theme="nebula"] .product-card,body[data-theme="nebula"] .bmb-tile,body[data-theme="nebula"] .obj-row,body[data-theme="nebula"] .opening-row{background:#181d48;border-color:var(--line)!important}
body[data-theme="nebula"] .product-card:hover,body[data-theme="nebula"] .bmb-tile:hover{box-shadow:0 8px 24px #2ec4ee30}
body[data-theme="nebula"] .product-card img,body[data-theme="nebula"] .product-card .product-image,body[data-theme="nebula"] .product-card .thumb{background:#eef0fb}
body[data-theme="nebula"] .product-meta b,body[data-theme="nebula"] .product-meta strong{color:var(--ink)}
body[data-theme="nebula"] .bmb-tile>.part-ico{background:#222858;border-color:#363d7d}
body[data-theme="nebula"] .part-ico{color:#c7ccf6}
body[data-theme="nebula"] .obj-row.selected{background:#22306a}
body[data-theme="nebula"] .obj-main b{color:var(--ink)}
body[data-theme="nebula"] .obj-thumb{background:#eef0fb}
body[data-theme="nebula"] .pc-list li{background:#1a1f4a}
body[data-theme="nebula"] .field input,body[data-theme="nebula"] .field select,body[data-theme="nebula"] .input-unit input,body[data-theme="nebula"] .input-unit{background:#0e1235;color:var(--ink);border-color:#363d7d}
body[data-theme="nebula"] .input-unit span,body[data-theme="nebula"] label{color:var(--muted)}
body[data-theme="nebula"] body[data-theme="nebula"] body[data-theme="nebula"] .button-pair .outline{background:#181d48;color:var(--ink);border-color:#363d7d}
body[data-theme="nebula"] .button-pair .outline.active{background:#22306a;color:#fff;border-color:var(--blue)}
body[data-theme="nebula"] .outline,body[data-theme="nebula"] .quiet{color:var(--ink)}
body[data-theme="nebula"] .rail-toggle{background:#181d48;border-color:#363d7d;color:#c7ccf6}
body[data-theme="nebula"].rail-collapsed .rail-toggle{background:var(--paper)}
body[data-theme="nebula"] .scene-bottom{background:var(--paper);color:var(--muted)}
body[data-theme="nebula"] .catalog-footer{background:#1a1f4a}
body[data-theme="nebula"] .section-rule{background:var(--line)}
body[data-theme="nebula"] .info-note{background:#1a1f4a;color:var(--muted)}
body[data-theme="nebula"] .object-img{background:#eef0fb;border-radius:10px}
body[data-theme="nebula"] .inspector-wrap.is-empty{background:#1a1f4a}
body[data-theme="nebula"] #consultButton{color:var(--blue)}
body[data-theme="nebula"] .add-product{background:#181d48;border-color:#363d7d;color:var(--blue)}

body[data-theme="nebula"] .project strong{color:var(--ink)}
body[data-theme="nebula"] :where(.catalog-panel,.inspector) button{background:#181d48;color:var(--ink);border-color:#363d7d}
body[data-theme="nebula"] .panel-tabs button:not(.active){background:transparent;border:0}
body[data-theme="nebula"] .shape-grid button.active,body[data-theme="nebula"] .shape-grid button[aria-pressed="true"],body[data-theme="nebula"] .room-button-grid button.active{background:#22306a;border-color:var(--blue);color:#fff;box-shadow:0 0 0 2px #2ec4ee33}
body[data-theme="nebula"] .shape-grid button .icon,body[data-theme="nebula"] .shape-grid button svg{color:currentColor}
body[data-theme="nebula"] .primary{background:var(--grad-diag);color:#0a0d26;border:0}
body[data-theme="nebula"] .rail-toggle,body[data-theme="nebula"] :where(.catalog-panel,.inspector) .icon-button{color:#c7ccf6}
body[data-theme="nebula"] .obj-del,body[data-theme="nebula"] .obj-link{background:transparent;border:0;color:var(--muted)}
body[data-theme="nebula"] .quiet{background:transparent;border:0}
body[data-theme="nebula"] .field-label,body[data-theme="nebula"] .field label{color:var(--muted)}
body[data-theme="nebula"] .check,body[data-theme="nebula"] .checkbox,body[data-theme="nebula"] .toggle-row{background:#181d48;border-color:#363d7d;color:var(--ink)}
body[data-theme="nebula"] .shape-grid button{border-color:#363d7d}

/* ---------- Schmale Bildschirme ---------- */
@media(max-width:1150px){
  .planning-footer{gap:10px!important;padding:0 14px!important}
  .footer-project{display:none!important}
  .price-summary small{display:none!important}
  .inspector.open{top:calc(var(--head-h) + var(--pad));bottom:calc(64px + var(--pad));width:330px;display:flex!important}
}
@media(max-width:600px){
  .planning-footer{height:64px!important;min-height:64px!important;flex-wrap:nowrap;padding:0 10px!important;gap:8px!important}
  .price-summary{margin-left:0}
  .price-summary>span{display:none!important}
  #consultButton{padding:0 4px;font-size:11px}
  #cartButton{flex:1 1 auto;min-width:0;padding:0 12px!important;font-size:13px}
  .appheader:after{height:2px}
  body{padding:0}
  body[data-theme]{--pad:0px;--rf:0px}
}

/* ---------- 0.1.7: Detail-Karte, Schalter, flache Symbole ---------- */
.bmb-apron{fill:none;stroke:#8fa0ab;stroke-linejoin:miter;pointer-events:none}
.bmb-detail{display:grid;gap:10px;margin:0 0 12px}
.bmb-detail-img{border-radius:14px;background:var(--soft);border:1px solid var(--line);padding:8px;display:grid;place-items:center}
.bmb-detail-img .object-img{height:112px;width:100%;margin:0;background:transparent;border-radius:0}
.bmb-detail-head h2{margin:2px 0 2px;font-size:16px;line-height:1.25;overflow-wrap:anywhere}
.bmb-detail-head .muted{margin:0;font-size:12px}
.bmb-detail-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;padding:11px 13px;border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 11%,var(--paper)),color-mix(in srgb,var(--teal) 9%,var(--paper)));border:1px solid color-mix(in srgb,var(--blue) 22%,var(--line))}
.bmb-detail-price span{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.bmb-detail-price b{font-size:20px;color:var(--ink)}
.bmb-detail-price small{flex-basis:100%;font-size:10.5px;color:var(--muted)}
.bmb-spec{margin:0;display:grid;gap:0;font-size:12px}
.bmb-spec div{display:flex;justify-content:space-between;gap:12px;padding:7px 2px;border-bottom:1px solid var(--line)}
.bmb-spec dt{color:var(--muted)}
.bmb-spec dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}
.bmb-switch{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);cursor:pointer}
.bmb-switch input{position:absolute;opacity:0;width:1px;height:1px}
.bmb-switch-ui{flex:none;width:38px;height:22px;border-radius:11px;background:#c5cfd5;position:relative;transition:background .18s}
.bmb-switch-ui:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .18s}
.bmb-switch input:checked+.bmb-switch-ui{background:var(--blue)}
.bmb-switch input:checked+.bmb-switch-ui:after{transform:translateX(16px)}
.bmb-switch input:focus-visible+.bmb-switch-ui{outline:2px solid var(--blue);outline-offset:2px}
.bmb-switch-text b{display:block;font-size:13px}
.bmb-switch-text small{display:block;font-size:11px;color:var(--muted)}
.bmb-shop-link{display:inline-flex;align-items:center;gap:6px;justify-self:start;font-size:12px;font-weight:700;color:var(--blue-dark);text-decoration:none}
.bmb-shop-link svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.bmb-shop-link:hover{text-decoration:underline}
body[data-theme="nebula"] .bmb-detail-img,body[data-theme="nebula"] .bmb-switch{background:#181d48;border-color:#363d7d}
body[data-theme="nebula"] .bmb-detail-img{background:#eef0fb}

.wv-swing{fill:none;stroke:#52636d;stroke-width:1;stroke-linejoin:round;opacity:.75}.wv-swing.dashed{stroke-dasharray:4 3}
.wv-handle{fill:#52636d}
.bmb-seg .seg-ico{width:15px;height:15px;margin-right:6px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;vertical-align:-3px}
.bmb-seg button{white-space:nowrap}

/* ---------- Hilfe-Symbol und Hilfe-Fenster ---------- */
.help-btn{position:relative;width:40px!important;height:40px!important;min-width:0;border-radius:50%!important;border:0!important;padding:0!important;display:grid!important;place-items:center;background:conic-gradient(from 210deg,var(--blue),var(--teal),var(--amber),var(--blue))!important;color:var(--blue-dark)!important;box-shadow:0 5px 16px color-mix(in srgb,var(--blue) 32%,transparent);transition:transform .22s cubic-bezier(.3,1.4,.5,1),box-shadow .22s}
.help-btn:before{content:"";position:absolute;inset:2.5px;border-radius:50%;background:var(--paper)}
.help-btn svg{position:relative;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.help-btn .spark{stroke:var(--amber);stroke-width:1.9}
.help-btn:hover{transform:translateY(-2px) rotate(-8deg);box-shadow:0 9px 22px color-mix(in srgb,var(--blue) 42%,transparent)}
.help-btn:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
dialog#modal.is-help{width:min(640px,calc(100vw - 24px));padding:0;overflow:hidden}
dialog#modal.is-help .modal-header{padding:14px 18px;border-bottom:1px solid var(--line)}
dialog#modal.is-help #modalBody{padding:0 0 18px}
.help-hero{position:relative;padding:24px 24px 20px;background:var(--grad-diag);color:#fff;overflow:hidden}
.help-hero:after{content:"";position:absolute;right:-40px;top:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,#ffffff3d,transparent 68%)}
.help-hero h3{margin:2px 0 6px;font-size:23px;line-height:1.2;color:#fff}
.help-hero p{margin:0;font-size:13px;color:#ffffffe0}
.help-kicker{font-size:10.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#ffffffcc}
.help-steps{list-style:none;margin:0;padding:18px 20px 6px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.help-steps li{position:relative;display:grid;gap:4px;padding:14px 14px 14px 62px;border:1px solid var(--line);border-radius:14px;background:var(--paper);min-height:92px}
.help-steps b{font-size:14px;color:var(--ink)}
.help-steps small{font-size:12px;line-height:1.45;color:var(--muted)}
.help-ico{position:absolute;left:14px;top:14px;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--soft);color:var(--blue-dark)}
.help-ico svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.help-num{position:absolute;right:10px;top:9px;font-size:11px;font-weight:800;color:var(--muted);opacity:.7}
.help-keys{padding:12px 20px 4px}
.help-keys h4{margin:0 0 9px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.help-keys ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.help-keys li{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink);min-width:0}
.help-keys kbd{font:700 11px/1 Arial,sans-serif;padding:5px 7px;border-radius:7px;background:var(--soft);border:1px solid var(--line);border-bottom-width:2px;color:var(--navy);white-space:nowrap}
.help-keys span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
dialog#modal.is-help .modal-actions{padding:14px 20px 0;justify-content:flex-end}
@media(max-width:560px){.help-steps{grid-template-columns:1fr}.help-keys ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
body[data-theme="nebula"] dialog#modal.is-help,body[data-theme="nebula"] .help-steps li{background:#12163a;color:#e9ecff}
body[data-theme="nebula"] dialog#modal.is-help{border:1px solid #363d7d!important}

dialog#modal.is-help .modal-header{background:var(--paper);color:var(--ink)}
dialog#modal.is-help #modalTitle{color:var(--ink)}
dialog#modal.is-help #closeModal{color:var(--ink)}
dialog#modal.is-help .help-hero,dialog#modal.is-help .help-hero *{color:#fff}
dialog#modal.is-help .help-hero p{opacity:.92}
dialog#modal.is-help .help-hero .help-kicker{opacity:.8}
body[data-theme="nebula"] dialog#modal.is-help .help-hero,body[data-theme="nebula"] dialog#modal.is-help .help-hero *{color:#0a0d26}

/* ---------- 0.1.13: aufgeräumt ---------- */
/* Kopfzeile: unter 900 px Logo links, Aktionen rechts. Vorher lag das Logo mittig und überdeckte auf Tablets die Artikelliste. */
@media(max-width:900px){
  .appheader,.embedded .appheader{grid-template-columns:auto minmax(0,1fr)}
  .brand-wrap{grid-column:1;justify-self:start}
  .header-right{grid-column:2}
}
/* Hinweisleiste „Aus der Liste in den Grundriss ziehen“ nur im Reiter Produkte (Bauteile haben den Hinweis im Reiter selbst) */
body[data-panel]:not([data-panel="products"]) .catalog-footer{display:none}
/* Objekt-Details: Vorschaubild klein neben dem Namen, ohne Bild keine leere Fläche, Maße nur einmal (unter „Abmessungen“) */
.bmb-detail{gap:10px;margin:0 0 10px}
.bmb-detail-top{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:center}
.bmb-detail.no-img .bmb-detail-top{grid-template-columns:minmax(0,1fr)}
.bmb-detail.no-img .bmb-detail-img{display:none}
.bmb-detail-top .bmb-detail-img{width:76px;height:76px;padding:4px;border-radius:12px}
.bmb-detail-top .bmb-detail-img .object-img{height:66px}
.bmb-detail-price{padding:9px 12px}
/* Hinweis „Ziehen zum Drehen“ blendet nach der ersten Bedienung aus */
.orbit-hint{transition:opacity .5s ease}
.orbit-hint.is-used{opacity:0}
@media(prefers-reduced-motion:reduce){.orbit-hint{transition:none}}

/* ---------- 0.1.15: Vollbild. Im Vollbild gehört der ganze Bildschirm der Planung: kein Zierrahmen, keine runden Ecken. ---------- */
body.is-fullscreen[data-theme]{--pad:0px;--rf:0px}

/* ---------- 0.1.17: Begehung (walk3d.js). Knopf neben dem Zoom, im Gehen Hinweis oben, Joystick unten links (nur Touch), Punkt im Grundriss. ---------- */
.walk-toggle{position:absolute;right:66px;bottom:21px;z-index:3;display:flex;align-items:center;gap:7px;height:33px;padding:0 14px 0 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-family:inherit;font-size:12px;font-weight:600;line-height:1;box-shadow:var(--shadow);cursor:pointer}
.walk-toggle .walk-ico{display:flex}.walk-toggle .icon{width:17px;height:17px}
.walk-toggle:hover{border-color:var(--blue);color:var(--blue)}
.walk-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.walk-toggle[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff}
.scene-viewport.is-walking .walk-toggle{right:23px}
.scene-viewport.is-walking .orbit-hint,.scene-viewport.is-walking .zoom-controls,.scene-viewport.is-walking .scene-badge,.scene-viewport.is-walking .viewport-label{display:none}
.walk-ui{position:absolute;inset:0;z-index:2;pointer-events:none}
.walk-ui[hidden]{display:none}
.walk-hint{position:absolute;left:50%;top:64px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);margin:0;padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:#ffffffeb;color:var(--ink);font-size:12px;line-height:1.35;text-align:center;box-shadow:var(--shadow);transition:opacity .6s ease}
.walk-hint.is-used{opacity:0}
.walk-joy{position:absolute;left:22px;bottom:22px;display:none;width:112px;height:112px;border:1px solid var(--line);border-radius:50%;background:#ffffffc4;box-shadow:var(--shadow);pointer-events:auto;touch-action:none}
.scene-viewport.has-touch .walk-joy{display:block}
.walk-knob{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:var(--blue);box-shadow:0 4px 12px #0b3d5a40;transition:transform .14s ease}
.walk-joy.is-active .walk-knob{transition:none}
#floorplan .walk-cone{fill:var(--blue);opacity:.22}
#floorplan .walk-dot{fill:var(--blue);stroke:#fff;stroke-width:2.5}
@media(max-width:700px){.walk-hint{top:62px;font-size:11px;border-radius:12px}.walk-toggle{right:23px;bottom:94px;height:32px}.scene-viewport.is-walking .walk-toggle{right:16px;bottom:16px}.walk-joy{left:16px;bottom:16px;width:104px;height:104px}}
@media(prefers-reduced-motion:reduce){.walk-hint,.walk-knob{transition:none}}
@media print{.walk-toggle,.walk-ui{display:none!important}}
/* ---------- 0.1.18: Foto-Rendering (photo3d.js). Knopf links neben „Begehen“, Dialog mit Bild, Blickwinkel, Fortschritt und Speichern. ---------- */
.photo-toggle{position:absolute;right:calc(66px + var(--walk-w,112px) + 8px);bottom:21px;z-index:3;display:flex;align-items:center;gap:7px;height:33px;padding:0 14px 0 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-family:inherit;font-size:12px;font-weight:600;line-height:1;box-shadow:var(--shadow);cursor:pointer}
.photo-toggle .icon{width:17px;height:17px}
.photo-toggle:hover{border-color:var(--blue);color:var(--blue)}
.photo-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.scene-viewport.is-walking .photo-toggle{right:calc(23px + var(--walk-w,112px) + 8px)}
dialog.photo-studio{box-sizing:border-box;width:min(1180px,calc(100vw - 32px));height:min(880px,calc(100dvh - 32px));max-height:none;overflow:hidden;flex-direction:column;background:#fff}
dialog.photo-studio[open]{display:flex}
.ps-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 22px 14px;border-bottom:1px solid var(--line)}
.ps-head h2{margin:0;font-size:19px;line-height:1.25}
.ps-head p{margin:5px 0 0;max-width:64ch;color:var(--muted);font-size:12.5px;line-height:1.5}
.ps-close{flex:none;font-size:22px;line-height:1}
.ps-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:18px;background:var(--soft)}
.ps-canvas{display:block;border-radius:10px;background:#f2f4f5;box-shadow:0 18px 50px #1d334626}
.ps-msg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max-content;max-width:min(440px,calc(100% - 40px));margin:0;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-size:13px;line-height:1.55;text-align:center;box-shadow:var(--shadow)}
.ps-msg[hidden]{display:none}
.ps-foot{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;padding:14px 22px;border-top:1px solid var(--line)}
.ps-views{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.ps-views button{height:30px;padding:0 13px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-family:inherit;font-size:12px;font-weight:600;cursor:pointer}
.ps-views button[aria-pressed="true"]{background:#fff;color:var(--ink);box-shadow:0 1px 4px #1d334622}
.ps-views button:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.ps-progress{flex:1;min-width:200px;display:grid;gap:6px}
.ps-bar{height:5px;overflow:hidden;border-radius:9px;background:#e3eaee}
.ps-bar i{display:block;width:100%;height:100%;background:var(--blue);transform:scaleX(0);transform-origin:left center;transition:transform .25s linear}
.ps-status{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.ps-save{flex:none}
.ps-save:disabled{opacity:.45;cursor:default}
@media(max-width:700px){.photo-toggle{right:calc(23px + var(--walk-w,104px) + 8px);bottom:94px;height:32px}.scene-viewport.is-walking .photo-toggle{right:calc(16px + var(--walk-w,104px) + 8px);bottom:16px}
 dialog.photo-studio{width:100vw;height:100dvh;max-width:none;border:0;border-radius:0}.ps-head{padding:14px 16px 10px}.ps-head h2{font-size:17px}.ps-head p{font-size:12px}.ps-stage{padding:10px}.ps-foot{padding:12px 16px}.ps-progress{order:3;flex-basis:100%}.ps-save{margin-left:auto}}
@media(prefers-reduced-motion:reduce){.ps-bar i{transition:none}}
@media print{.photo-toggle,.photo-studio{display:none!important}}
/* ---------- 0.1.19: Katalog nach Hersteller und Serie, Katalogpaket-Import (catalog-tools.js) ---------- */
.brand-filter{display:grid;gap:5px;margin:12px 0 4px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.brand-filter select{width:100%;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-family:inherit;font-size:13px;font-weight:500;letter-spacing:0;text-transform:none}
.brand-filter select:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.catalog-count{margin:2px 0 8px;color:var(--muted);font-size:11.5px}
.catalog-count:empty{display:none}
.bmb-package{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 14px;padding:14px 16px;border:1px dashed color-mix(in srgb,var(--blue) 45%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--blue) 5%,#fff)}
.bmb-package.is-over{border-style:solid;border-color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,#fff)}
.bmb-package p{margin:4px 0 0;max-width:72ch;color:var(--muted);font-size:12px;line-height:1.5}
.pkg-summary h3{margin:4px 0 8px;font-size:18px}
.pkg-summary p{font-size:13px;line-height:1.6}
.pkg-cats{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 12px}
.pkg-cats span{padding:4px 9px;border:1px solid var(--line);border-radius:999px;background:var(--soft);font-size:11.5px}
.pkg-capacity{font-size:12px!important;color:var(--muted)}
.pkg-note{font-size:11.5px!important;color:var(--muted)}
.pkg-bar{height:6px;margin:14px 0 6px;overflow:hidden;border-radius:9px;background:#e3eaee}
.pkg-bar i{display:block;width:100%;height:100%;background:var(--blue);transform:scaleX(0);transform-origin:left center;transition:transform .2s linear}
.pkg-status{min-height:1.4em;font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--muted)}
.pkg-status.pkg-done{color:var(--ink);font-weight:600}
.pkg-error{color:#b3261e!important}
.pkg-errors{max-height:160px;margin:6px 0 0;padding:8px 12px 8px 26px;overflow:auto;border:1px solid var(--line);border-radius:8px;font-size:12px;line-height:1.5}
.pkg-errors[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.pkg-bar i{transition:none}}
/* Produktname auf der Karte zweizeilig (Herstellernamen wie „Eqio Keramik-Waschtisch + WTU 920 mm“ bleiben unterscheidbar) */
.product-meta strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;white-space:normal;line-height:1.3;min-height:2.6em;overflow-wrap:anywhere}
/* ---------- 0.1.20: Farbvarianten, Wandansicht platzieren, Foto speichern / feiner rechnen ---------- */
.variant-dots{display:flex!important;align-items:center;gap:5px;margin-top:3px;min-height:14px}
.vdot{--c:#d6d6d6;display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px #0000002e;cursor:pointer;flex:none;padding:0;border:0}
.vdot.split{background:linear-gradient(135deg,var(--c) 0 50%,#fff 50% 100%)}
.vdot.active{outline:2px solid var(--blue);outline-offset:1.5px}
.vdot:hover{transform:scale(1.15)}
.variant-dots .vcount{margin-left:2px;font-size:10.5px!important;color:var(--muted)}
.bmb-variants{display:grid;gap:7px;margin:10px 0 2px}
.bmb-variants-label{font-size:12px;color:var(--muted)}
.bmb-variants-label b{color:var(--ink);font-weight:600}
.bmb-variants .vdots{display:flex;flex-wrap:wrap;gap:9px}
.bmb-variants .vdot{width:22px;height:22px}
.bmb-variants .vdot:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.wv-hit{fill:transparent}
.wv-item image{pointer-events:none}
.wv-lasso{fill:color-mix(in srgb,var(--blue) 10%,transparent);stroke:var(--blue);stroke-width:1.2;stroke-dasharray:5 3;pointer-events:none}
.wv-multi{font:600 12px/1 Arial,sans-serif;fill:var(--blue);pointer-events:none}
.wv-preview{fill:color-mix(in srgb,var(--blue) 14%,transparent);stroke:var(--blue);stroke-width:1.6;stroke-dasharray:6 4;pointer-events:none}
.ps-more{min-height:39px}
.ps-saved{margin:0;padding:0 22px 14px;font-size:12.5px;color:var(--muted);line-height:1.5}
.ps-saved b{color:var(--ink)}
.ps-saved.is-error{color:#b3261e}
.ps-saved a{color:var(--blue-dark,#007ba8);text-decoration:underline;margin-left:4px}
@media(max-width:600px){.ps-saved{padding:0 16px 12px}}

/* ---------- 0.1.21: Rahmen um das Logo (body[data-logo-frame], Einstellung „Rahmen um das Logo im Planer“, Vorschau ?rahmen=…) ----------
   glow = Leuchtrahmen: Rand im Markenverlauf läuft langsam um, weicher Schein außen
   neon = Lichtkante: schmale Kante in Türkis, die sanft auf- und abglimmt
   shine = Glanz: Rand im Markenverlauf, alle paar Sekunden zieht ein Lichtstreif über das Logo
   none = wie bis 0.1.20 (nur der weiche Schein hinter dem Logo) */
@property --bmb-a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes bmbSpin{to{--bmb-a:360deg}}
body:is([data-logo-frame="glow"],[data-logo-frame="neon"],[data-logo-frame="shine"]) .brand-wrap{padding:7px 20px 8px;gap:5px;border-radius:14px}
body:is([data-logo-frame="glow"],[data-logo-frame="neon"],[data-logo-frame="shine"]) .appheader .brand{width:160px;max-height:33px}
body[data-logo-frame="glow"] .brand-wrap{border:1.5px solid transparent;background:linear-gradient(var(--head-bg),var(--head-bg)) padding-box,conic-gradient(from var(--bmb-a),var(--blue),var(--teal),var(--amber),var(--blue)) border-box;animation:bmbSpin 8s linear infinite}
body[data-logo-frame="glow"] .brand-wrap:before{inset:-6px;z-index:-1;border-radius:20px;background:conic-gradient(from var(--bmb-a),var(--blue),var(--teal),var(--amber),var(--blue));filter:blur(11px);opacity:.62;animation:bmbSpin 8s linear infinite}
body[data-logo-frame="neon"] .brand-wrap{border:1.5px solid color-mix(in srgb,var(--teal) 88%,#fff);background:var(--head-bg);animation:bmbEdge 3.8s ease-in-out infinite}
body[data-logo-frame="neon"] .brand-wrap:before{display:none}
@keyframes bmbEdge{0%,100%{box-shadow:0 0 0 1px color-mix(in srgb,var(--teal) 18%,transparent),0 0 8px color-mix(in srgb,var(--teal) 32%,transparent),inset 0 0 6px color-mix(in srgb,var(--teal) 12%,transparent)}50%{box-shadow:0 0 0 2px color-mix(in srgb,var(--teal) 28%,transparent),0 0 20px color-mix(in srgb,var(--teal) 58%,transparent),inset 0 0 11px color-mix(in srgb,var(--teal) 24%,transparent)}}
body[data-logo-frame="shine"] .brand-wrap{border:1.5px solid transparent;background:linear-gradient(var(--head-bg),var(--head-bg)) padding-box,var(--grad) border-box;box-shadow:0 7px 18px -9px color-mix(in srgb,var(--blue) 55%,transparent);overflow:hidden}
body[data-logo-frame="shine"] .brand-wrap:before{display:none}
body[data-logo-frame="shine"] .brand-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,#fff0 0 40%,#ffffffc4 48%,#fff0 56%) no-repeat;background-size:260% 100%;background-position:160% 0;animation:bmbShine 6.5s ease-in-out infinite}
@keyframes bmbShine{0%,58%{background-position:160% 0}100%{background-position:-60% 0}}
@media(prefers-reduced-motion:reduce){body[data-logo-frame] .brand-wrap,body[data-logo-frame] .brand-wrap:before,body[data-logo-frame] .brand-wrap:after{animation:none}}
/* Ohne Logo (Smartphone, eingebettet unter dem Shop-Logo) kein Rahmen */
@media(max-width:600px){body[data-logo-frame] .brand-wrap{padding:3px 0;border:0;background:none;box-shadow:none;animation:none}body[data-logo-frame] .brand-wrap:after{display:none}}
.embedded .brand-wrap{padding:3px 0!important;border:0!important;background:none!important;box-shadow:none!important;animation:none!important}
.embedded .brand-wrap:after{display:none}

/* Kopfzeile: Speichern und Drucken als Symbol-Knöpfe (Name als Tooltip und für Screenreader) */
.header-actions .hb-icon{flex:none;display:inline-grid;place-items:center;width:38px;min-width:38px;padding:0}
.header-actions .hb-icon .desktop-word,.header-actions .hb-icon .btn-word{display:none}
.header-actions .hb-icon .icon{width:18px;height:18px;margin:0}
@media(max-width:600px){.header-actions .hb-icon{width:36px;min-width:36px}}

/* ---------- 0.1.21: Reiter in Planungsreihenfolge (Raum → Bauteile → Produkte → Material), passen auch in schmale Spalten ---------- */
.catalog-panel{container-type:inline-size}
@container (max-width:290px){.panel-tabs button{font-size:11.5px!important;padding:8px 4px!important}}
@container (max-width:270px){.panel-tabs{margin-left:12px!important;margin-right:12px!important}.panel-tabs button{font-size:11px!important;padding:8px 3px!important;letter-spacing:-.01em}}

/* ---------- 0.1.21: Dachschräge per Wand-Klick (roof-tools.js) ---------- */
.roof-wall{stroke:var(--amber);stroke-linecap:butt;opacity:.85}
.roof-pick{stroke:transparent;fill:none;cursor:pointer;pointer-events:stroke}
.roof-pick:hover{stroke:color-mix(in srgb,var(--blue) 34%,transparent)}
.roof-pick.on:hover{stroke:color-mix(in srgb,var(--amber) 38%,transparent)}
.roof-side{display:grid;gap:6px;margin:2px 0 12px}
.roof-side-label{font-size:12px;color:var(--muted)}
.roof-walls{display:grid;grid-template-columns:repeat(auto-fit,minmax(54px,1fr));gap:6px}
.roof-walls button{display:grid;gap:1px;justify-items:center;padding:6px 4px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--navy);font:inherit;font-weight:700;font-size:12.5px;cursor:pointer}
.roof-walls button small{font-weight:500;font-size:10.5px;color:var(--muted)}
.roof-walls button:hover{border-color:var(--blue)}
.roof-walls button.active{border-color:var(--amber);background:color-mix(in srgb,var(--amber) 12%,var(--paper));box-shadow:inset 0 0 0 1px var(--amber)}
.roof-side-hint{font-size:11.5px;color:var(--muted)}

/* ---------- 0.1.21: dezenter Hinweis unten im linken Bereich (feedback-tools.js) ---------- */
.planner-feedback{flex:none;margin:0;padding:9px 16px 10px;border-top:1px solid var(--line);font-size:11px;line-height:1.45;color:var(--muted);background:var(--paper)}
.planner-feedback .link-button{display:inline;padding:0;border:0;background:none;font:inherit;font-weight:600;color:var(--blue-dark,var(--blue));text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.planner-feedback .link-button:hover{color:var(--blue)}
.planner-feedback .link-button:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:3px}
#feedbackForm small{font-weight:400;color:var(--muted)}
#feedbackForm textarea{min-height:110px}
#feedbackForm .feedback-consent[hidden]{display:none}

/* ---------- 0.1.22: Produktliste (catalog-tools.js) ---------- */
.cat-head{position:sticky;top:-12px;z-index:3;margin:-12px -16px 8px;padding:12px 16px 8px;background:var(--paper);border-bottom:1px solid var(--line)}
.cat-search{display:flex;gap:6px;align-items:stretch;margin-bottom:8px}.cat-search .search{flex:1 1 auto;min-width:0;margin:0!important}.cat-search .cat-layout{height:auto;min-height:34px;flex:none}
.cat-tools{display:flex;gap:6px;align-items:center}
.cat-tools .brand-filter{flex:1 1 auto;min-width:0;margin:0!important;display:block}
.cat-tools .brand-filter span,.cat-sort span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.cat-sort{flex:0 1 106px;min-width:96px;display:block}
.cat-tools .cat-sort:first-child{flex:1 1 auto}
.cat-sort select{width:100%;height:34px;padding:0 2px 0 6px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font:inherit;font-size:12.5px;font-weight:500;letter-spacing:0;text-transform:none}
.cat-tools .brand-filter select{height:34px}
.cat-layout{display:inline-flex;height:34px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--paper)}
.cat-layout button{display:grid;place-items:center;width:34px;height:100%;padding:0;border:0;border-radius:0;background:transparent;color:var(--muted);cursor:pointer}
.cat-layout button+button{border-left:1px solid var(--line)}
.cat-layout button[aria-pressed="true"]{background:var(--sky-soft);color:var(--blue-dark,var(--blue))}
.cat-layout .icon{width:16px;height:16px;margin:0}
.cat-pills{margin:8px -16px 0;padding:0 16px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-mask:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 22px),transparent);mask:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 22px),transparent)}
.cat-pills::-webkit-scrollbar{display:none}
.cat-pills .filter-pills{flex-wrap:nowrap!important;width:max-content;gap:5px!important;margin:0!important;padding:1px 2px 2px}
.cat-pills .filter-pills button{white-space:nowrap}
.filter-pills button small{margin-left:5px;font-size:10px;font-weight:600;opacity:.65}
.catalog-grid.is-list{grid-template-columns:minmax(0,1fr)!important;gap:7px!important}
.catalog-grid.is-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
.catalog-grid .pc-img{display:block;position:relative;overflow:hidden;background:#f3f6f8}
.catalog-grid .pc-img .product-image{display:block;width:100%;height:100%;aspect-ratio:auto!important;object-fit:contain;background:transparent}
.catalog-grid.is-grid .pc-img{aspect-ratio:1.18}
.catalog-grid.is-list .product-card{display:grid!important;grid-template-columns:72px minmax(0,1fr);align-items:center;padding:6px 38px 6px 6px!important;min-height:84px}
.catalog-grid.is-list .pc-img{width:72px;height:72px;border-radius:8px}
.catalog-grid.is-list .product-meta{padding:0 0 0 11px!important}
.catalog-grid.is-list .add-product{top:50%!important;transform:translateY(-50%)}
.catalog-grid.is-list .bmb-grip{left:2px!important;top:2px!important}
.product-meta .maker{font-size:10px!important;letter-spacing:.06em}
.pc-foot{display:flex!important;align-items:center;gap:6px;margin-top:4px;min-width:0}
.pc-inplan{flex:none;font-style:normal;font-size:10px;font-weight:700;color:var(--teal);background:var(--teal-soft);border-radius:999px;padding:2px 7px}
.cat-group{grid-column:1/-1;display:flex;align-items:baseline;gap:6px;margin:10px 0 0;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--navy-2)}
.cat-group:first-child{margin-top:0}
.cat-group small{font-size:10.5px;font-weight:600;letter-spacing:0;color:var(--muted)}
.set-mosaic{display:grid!important;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:1px;background:var(--line)!important}
.set-mosaic img{display:block;width:100%;height:100%;min-height:0;object-fit:contain;background:#f3f6f8}
.set-mosaic.n1 img{grid-column:1/-1;grid-row:1/-1}
.set-mosaic.n2 img{grid-row:1/-1}
.set-mosaic.n3 img:first-child{grid-row:1/-1}
.set-card .pc-img::after{content:"Set";position:absolute;left:5px;bottom:5px;padding:1px 6px;border-radius:999px;background:var(--navy);color:#fff;font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
body[data-theme="nebula"] .cat-head{background:#13173f}
body[data-theme="nebula"] .catalog-grid .pc-img,body[data-theme="nebula"] .set-mosaic img{background:#eef0fb}

/* ---------- 0.1.22: linken Bereich einklappen (layout.js) ---------- */
.panel-actions{display:flex;align-items:center;gap:8px}
.panel-toggle{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--navy-2);cursor:pointer}
.panel-toggle:hover{background:var(--sky-soft);border-color:var(--blue);color:var(--blue-dark,var(--blue))}
.panel-toggle svg,.panel-rail-open svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.panel-rail{display:none}
body.panel-collapsed .catalog-panel>*:not(.panel-rail){display:none!important}
body.panel-collapsed .panel-rail{display:grid;justify-items:center;align-content:start;gap:6px;padding:12px 0;height:100%;overflow:hidden}
.panel-rail button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--navy-2);cursor:pointer}
.panel-rail button:hover{background:var(--sky-soft);color:var(--blue-dark,var(--blue))}
.panel-rail button.active{background:var(--sky-soft);color:var(--blue-dark,var(--blue))}
.panel-rail .panel-rail-open{border:1px solid var(--line);width:30px;height:30px;margin-bottom:6px}
.panel-rail .icon{width:19px;height:19px;margin:0}
.panel-rail-label{writing-mode:vertical-rl;margin-top:8px;font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--navy-2)}
body.panel-collapsed .workspace{grid-template-columns:54px minmax(0,1fr) var(--rail-w)!important}
body.panel-collapsed.rail-collapsed .workspace{grid-template-columns:54px minmax(0,1fr) 54px!important}
@media(min-width:1650px){body.panel-collapsed .workspace{grid-template-columns:54px minmax(0,1fr) var(--rail-w)!important}body.panel-collapsed.rail-collapsed .workspace{grid-template-columns:54px minmax(0,1fr) 54px!important}}
@media(max-width:1150px){body.panel-collapsed .workspace,body.panel-collapsed.rail-collapsed .workspace{grid-template-columns:54px minmax(0,1fr)!important}}
@media(max-width:600px){.panel-toggle,.panel-rail{display:none!important}}

/* ---------- 0.1.22: Maß im Grundriss anklicken und ändern (plan-tools.js) ---------- */
.bmb-gap .gap-hit{pointer-events:all;cursor:text}
.bmb-gap .gap-hit:hover .pill{stroke:var(--blue);stroke-width:1.6}
.gap-editor{position:fixed;z-index:40;display:flex;align-items:center;gap:3px;transform:translate(-50%,-50%);padding:3px 7px 3px 4px;border:1.5px solid var(--blue);border-radius:999px;background:#fff;box-shadow:0 6px 18px #12303f33}
.gap-editor input{width:58px;height:24px;padding:0 4px;border:0;outline:0;background:transparent;font:700 13px Arial,sans-serif;color:#006b8f;text-align:right}
.gap-editor span{font:700 12px Arial,sans-serif;color:#006b8f}

/* ---------- 0.1.22: ohne Hinweis zu Lieferland/MwSt., ohne „Planung an uns senden“ ---------- */
.price-summary small,.object-price small,.bmb-detail-price small{display:none!important}
#consultButton{display:none!important}
.bmb-mount{margin-top:4px}

/* ---------- 0.1.22: Sets (set-tools.js) ---------- */
.bmb-setnote{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 10px;margin:10px 0 4px;padding:8px 11px;border-radius:9px;background:var(--teal-soft);color:var(--navy-2);font-size:12px;line-height:1.4}
.bmb-setnote .link-button{padding:0;border:0;background:none;font:inherit;font-weight:700;color:var(--blue-dark,var(--blue));text-decoration:underline;cursor:pointer}
.set-table td strong{display:block}.set-table td small,.set-table th small{display:block;color:var(--muted);font-size:11.5px}.set-table th small{display:inline;font-weight:400}
.set-table td .set-thumbs{display:inline-flex;vertical-align:middle;margin-right:10px}
.set-thumbs img{width:34px;height:34px;object-fit:contain;background:#f3f6f8;border:2px solid #fff;border-radius:7px;margin-left:-8px;box-shadow:0 0 0 1px var(--line)}
.set-thumbs img:first-child{margin-left:0}
.set-count{vertical-align:middle;white-space:nowrap}
.set-form .check-row{display:flex;align-items:center;align-self:end;gap:10px;margin:4px 0;padding:10px 12px;font-weight:400;color:var(--ink,#253642);cursor:pointer}
.set-form .check-row input{width:16px;height:16px;margin:0;padding:0;flex:none}
.set-actions{display:flex;gap:6px;justify-content:flex-end}
#newProduct[hidden]{display:none!important}
.set-form .set-items{display:grid;gap:8px}
.set-form .field-label small{font-weight:400;color:var(--muted);text-transform:none;letter-spacing:0}
#setItems{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:min(46vh,420px);overflow:auto}
#setItems li{display:grid;grid-template-columns:44px minmax(0,1fr) 92px 92px auto;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:var(--paper)}
#setItems li:first-child{border-color:var(--blue)}
#setItems li img{width:44px;height:44px;object-fit:contain;background:#f3f6f8;border-radius:6px}
#setItems .set-it-name{min-width:0}#setItems .set-it-name b{display:block;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#setItems .set-it-name small{display:block;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.set-num{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 4px;font-size:10.5px;color:var(--muted)}
.set-num input{grid-column:1;width:100%;height:30px;padding:0 6px;border:1px solid var(--line);border-radius:7px;font:inherit;font-size:12.5px}
.set-num small{grid-column:2;grid-row:2}
.set-it-btns{display:flex;gap:2px}.set-it-btns .icon-button{width:26px;height:26px;font-size:14px}
.set-empty{grid-template-columns:1fr!important;color:var(--muted);font-size:12.5px;border-style:dashed!important}
.set-add{position:relative}
.set-add input{width:100%;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;font:inherit}
.set-hits{display:grid;gap:4px;margin-top:6px;max-height:240px;overflow:auto}
.set-hits button{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--paper);text-align:left;cursor:pointer}
.set-hits button:hover{border-color:var(--blue);background:var(--sky-soft)}
.set-hits img{width:36px;height:36px;object-fit:contain;background:#f3f6f8;border-radius:5px}
.set-hits b{display:block;font-size:12.5px}.set-hits small{display:block;font-size:11px;color:var(--muted)}
@media(max-width:760px){#setItems li{grid-template-columns:44px minmax(0,1fr) auto}#setItems .set-num{grid-column:2}}
/* ---------- 0.1.24: Auswahl „Was suchst du?“ statt Kategorie-Leiste, darunter Hersteller & Serie ---------- */
.cat-select{display:block;margin:0 0 6px}
.cat-select span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.cat-select select{width:100%;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:13.5px;font-weight:600;letter-spacing:0;text-transform:none;cursor:pointer}
.cat-select select:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.cat-more{grid-column:1/-1;justify-self:start;margin:2px 0 6px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--blue-dark,var(--blue));font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
.cat-more:hover{border-color:var(--blue);background:var(--sky-soft)}
.cat-cap{grid-column:1/-1;margin:6px 2px;color:var(--muted);font-size:12px;line-height:1.5}

/* 0.1.26: Fenster – Schalter „Öffnungsrichtung zeigen“ */
.op-arc{margin:12px 0 4px}
/* 0.1.26: Produktliste der Katalogverwaltung (admin-list.js) */
.bmb-list-bar{flex-wrap:wrap;align-items:center}
.backend-toolbar.bmb-list-bar #adminSearch{flex:1 1 260px;width:auto;max-width:none;min-width:200px}
.backend-toolbar.bmb-list-bar select{flex:0 1 190px;min-width:140px}
.backend-toolbar.bmb-list-bar #adminReset{margin-left:0}
.backend-toolbar.bmb-list-bar #catalogReload{margin-left:auto}
.bmb-list-info{display:flex;align-items:center;gap:12px;margin:-2px 0 10px;color:#67707a;font-size:12px}
.bmb-bulk{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 12px;margin:0 0 10px;background:#eef6fb;border:1px solid #bcdbea;border-radius:4px;box-shadow:0 2px 8px #1a3a5014}
.bmb-bulk[hidden]{display:none}
.bmb-bulk .bulk-count{margin-right:6px;font-size:13px}
.bmb-bulk .bulk-count small{color:#67707a}
button.danger,.shopware-backend button.outline.danger{color:#b3323f;border-color:#e2b4b9}
.shopware-backend button.primary.danger,button.primary.danger{color:#fff;background:#c0392b;border-color:#c0392b}
.shopware-backend button.primary.danger:hover{background:#a5301f}
.admin-table.bmb-list .col-check{width:34px;padding-right:0}
.admin-table.bmb-list .col-check input{width:16px;height:16px;margin:0;cursor:pointer;accent-color:var(--accent,#2f7fb0)}
.admin-table.bmb-list tr.is-sel td{background:#f0f7fc}
.admin-table.bmb-list tr.is-saving{opacity:.55}
.admin-table.bmb-list tr.is-saved td{background:#ecf7f0}
.admin-table.bmb-list td.num{white-space:nowrap}
.shopware-backend .admin-table .th-sort,.admin-table .th-sort{display:inline-flex;align-items:center;gap:4px;height:auto;min-height:0;padding:0;border:0;background:none;box-shadow:none;font:inherit;font-weight:600;color:inherit;cursor:pointer}
.admin-table .th-sort:hover,.admin-table .th-sort.is-sorted{color:var(--ink,#16222b)}
.admin-table .sort-ind{font-size:9px;min-width:8px}
.shopware-backend .admin-table .status-toggle,.admin-table .status-toggle{height:24px;min-height:24px;padding:0 9px;border:1px solid transparent;font-size:12px;font-weight:600;cursor:pointer}
.admin-table .status-toggle.model-pill:hover{border-color:#9fd3b4}
.admin-table .status-toggle.draft-badge:hover{border-color:#efc77e}
.qe-text{cursor:text;border-bottom:1px dashed transparent}
.qe-text:hover{border-bottom-color:#9aa9b4}
.shopware-backend .admin-table input.qe-input,.admin-table input.qe-input{height:28px;width:100%;max-width:340px;padding:3px 7px;font-weight:400}
.qe-linked{display:block;color:#1f8a4c;font-size:11px;margin-top:2px}
.qe-price-wrap{display:inline-flex;align-items:center;gap:5px}
.qe-price-wrap i{font-style:normal;color:#67707a}
.shopware-backend .admin-table input.qe-price,.admin-table input.qe-price{width:96px;height:28px;padding:3px 7px;text-align:right}
.shopware-backend .admin-table select.qe-cat,.admin-table select.qe-cat{height:28px;padding:2px 6px;max-width:170px}
.bmb-more{display:flex;align-items:center;gap:12px;margin:12px 0}
/* 0.1.33: Seitenwahl der Produktliste (50 je Seite), über und unter der Tabelle */
.bmb-list-info{flex-wrap:wrap}
.bmb-pager{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.bmb-list-info .bmb-pager{margin-left:auto}
.shopware-backend .bmb-pager button.outline,.bmb-pager button.outline{height:28px;min-height:28px;padding:0 10px;font-size:12px}
.bmb-pager button[disabled]{opacity:.45;cursor:default}
.bmb-pager-sel{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#46555f}
.shopware-backend .bmb-pager select,.bmb-pager select{width:auto;height:28px;min-width:58px;padding:2px 6px;font-size:12px}
.bmb-pager-range{font-size:12px;margin-left:4px}
.bmb-list-info .bmb-pager-range{display:none}
.bulk-notes{margin:8px 0 0 18px;color:#46555f;line-height:1.6}
.set-from-plan{margin-top:10px}
.admin-table.bmb-list .table-product{min-width:260px}
.admin-table.bmb-list .table-product img{flex:none}
.admin-table.bmb-list .table-product strong,.admin-table.bmb-list .table-product small{white-space:normal;overflow-wrap:anywhere}
.admin-table.bmb-list td:last-child,.admin-table.bmb-list th:last-child{width:1%;text-align:right}
.bmb-list-bar [hidden]{display:none!important}
/* Ablagefläche und Katalogpaket nebeneinander */
.bmb-import-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:stretch;margin:0 0 16px}
.bmb-import-row>.bmb-admin-drop,.bmb-import-row>.bmb-package{margin:0;min-width:0}
.bmb-import-row .bmb-drop{padding:14px 16px;height:100%;box-sizing:border-box;align-content:center}
.bmb-import-row .bmb-drop-icon{width:24px;height:24px}
.bmb-import-row .bmb-drop-title{font-size:14px}
.bmb-import-row .bmb-package{flex-direction:column;align-items:flex-start;justify-content:center}
@media(max-width:1000px){.bmb-import-row{grid-template-columns:minmax(0,1fr)}}

/* ---------- 0.1.30: Markenfarbe #0099CC (wie MAXX im Shop-Logo), Logo fetter statt leuchtend, Raumzeile unter dem Grundriss ----------
   Farbwelt Studio: Blau und Türkis sind jetzt beide #0099CC, Verläufe einfarbig. Bernstein bleibt nur für Hinweise und Dachschräge.
   Das Logo ist im SVG fetter (Kontur 0,9 in Logo-Einheiten); das Leuchten ist nur noch ein Hauch und pulsiert nicht mehr. */
:root{
  --blue:#0099cc;--blue-dark:#007ba8;--teal:#0099cc;--teal-soft:#e5f4fa;--sky-soft:#e6f4fa;
  --grad:linear-gradient(90deg,#0099cc,#0099cc);--grad-diag:linear-gradient(135deg,#0099cc,#0099cc);
  --glow-a:#0099cc0d;--logo-glow:drop-shadow(0 1px 2px #0099cc1f);--logo-glow-hi:var(--logo-glow);
}
body[data-theme="aurora"]{--glow-a:#7a5be614;--logo-glow:drop-shadow(0 0 2px #7a5be63a) drop-shadow(0 0 7px #c14fc81c);--logo-glow-hi:var(--logo-glow)}
body[data-theme="nebula"]{--glow-a:#8e7bff2c;--logo-glow:drop-shadow(0 0 1.5px #ffffff70) drop-shadow(0 0 6px #35d0f055) drop-shadow(0 0 14px #8e7bff38);--logo-glow-hi:var(--logo-glow)}
.appheader .brand{animation:none}
.brand-wrap:before{animation:none;opacity:.7}
.brand-sub{color:var(--navy);font-weight:800}
body[data-theme="nebula"] .brand-sub{text-shadow:0 0 5px #8e7bff88}
body:not([data-theme="aurora"]):not([data-theme="nebula"]) .help-btn{background:var(--blue)!important}
#floorplan .bmb-plan-caption{display:none}

/* 0.1.30: Am Handy war der Knopf „Drucken“ leer (style.css blendet dort Symbole in .primary aus, theme.css das Wort) */
.header-actions .hb-icon .icon{display:block}
