:root{
  --accent:#4f46e5; --accent-d:#4338ca; --accent-soft:#eef0ff;
  --grad:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%);      /* Indigo → Violett (Buttons, aktive Navigation) */
  --grad-d:linear-gradient(135deg,#5558e8 0%,#7c4fe0 100%);
  --bg:#f5f6f8; --surface:#ffffff; --border:#e5e7eb; --border-2:#eef0f3;
  --text:#111827; --muted:#6b7280; --faint:#9ca3af;
  --danger:#dc2626; --green:#16a34a; --amber:#d97706;
  --green-soft:#dcfce7; --amber-soft:#fef3c7; --danger-soft:#fde8e8; --green-tx:#15803d; --amber-tx:#b45309; --danger-tx:#b91c1c;
  --side:#0f1524; --side-2:#1b2740; --side-tx:#9aa7bd; --side-lb:#5b6b86;
  --radius:16px; --radius-s:10px;
  --shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.06);
  --shadow-lg:0 12px 34px rgba(16,24,40,.14);
  --app-fs:16px;   /* Basis-Schriftgroesse, steuert nur Text (rem), nicht das Layout */
  --ico-size:20px;   /* Kategorie-Icons (Baum) — einstellbar unter Darstellung */
  --thumb-size:28px; /* Produkt-Miniaturen (Artikelliste) — folgt der Icon-Grösse */
  --panel:#ffffff; --panel2:#eef2f7;   /* Karten/Flächen der Planungs-Module — bisher nur als Fallback in var() */
}
/* Weisser Bild-Hintergrund „transparent" (Multiply) — abschaltbar unter Darstellung */
html[data-icoblend="1"] .cat-ico,html[data-icoblend="1"] .cd-icon,
html[data-icoblend="1"] .prod-thumb:not(.ph),html[data-icoblend="1"] .recent-th:not(.ph){mix-blend-mode:multiply}

/* ===== Theme „Neo" — weich & pastellig: heller Grund, fast-weisse Karten (klarer Vorder-/Hintergrund),
       dunkelgraue Seitenleiste ===== */
html[data-theme="neo"]{
  --accent:#7089c4; --accent-d:#5f78b3; --accent-soft:#e4e9f4;   /* Pastellblau */
  --grad:#7089c4; --grad-d:#5f78b3;
  --bg:#e8eaee; --surface:#f9fafc; --surface-2:#eef0f4; --border-2:rgba(140,148,162,.18);
  --border:rgba(140,148,162,.24);
  --text:#3a4150; --muted:#6f7684; --faint:#9aa1ae;
  --green:#5f9e7f; --amber:#c29a4a; --danger:#c4707c;            /* Pastell-Grün / -Gelb / -Rosé */
  --green-soft:#e3efe8; --amber-soft:#f4eede; --danger-soft:#f3e2e5; --green-tx:#4f8a6c; --amber-tx:#a8863f; --danger-tx:#b06470;
  --side:#2f333a; --side-2:#3c4149; --side-tx:#c3c8d1; --side-lb:#858c98;   /* dunkelgraue Seitenleiste */
  --radius:20px; --radius-s:13px;
  --shadow:-4px -4px 10px rgba(255,255,255,.75),5px 5px 14px rgba(151,158,172,.35);
  --shadow-lg:-6px -6px 16px rgba(255,255,255,.8),9px 9px 24px rgba(151,158,172,.42);
  --neo-inset:inset 2px 2px 6px rgba(151,158,172,.4),inset -2px -2px 6px rgba(255,255,255,.9);
}
html[data-theme="neo"] body{font-family:"Plus Jakarta Sans","Inter",system-ui,sans-serif}
/* Flächen: randlos + extrudiert */
html[data-theme="neo"] .card,html[data-theme="neo"] .kpi,html[data-theme="neo"] .set-card,html[data-theme="neo"] .dash-block{border-color:transparent;box-shadow:var(--shadow)}
/* Listenkarten (Attribute etc.) sichtbar machen: sanfter Schatten statt unsichtbarem Rand */
html[data-theme="neo"] .attr-card{border-color:transparent;box-shadow:-3px -3px 8px rgba(255,255,255,.7),4px 4px 10px rgba(151,158,172,.32)}
html[data-theme="neo"] .attr-card:hover{border-color:transparent;box-shadow:var(--shadow-lg)}
/* Chips/Badges/kleine Buttons: FLACH (kein erhabener Schatten), Pastell statt grell */
html[data-theme="neo"] .chiplet,html[data-theme="neo"] .attr-code{background:#eef0f4;box-shadow:none}
html[data-theme="neo"] .attr-type{box-shadow:none;border-color:transparent}
html[data-theme="neo"] .chiplet.sub{background:var(--accent-soft);color:var(--accent);border-color:transparent}
html[data-theme="neo"] .chiplet.brand{background:#e2ede6;color:#4c7d63;border-color:transparent}
html[data-theme="neo"] .btn.sm,html[data-theme="neo"] .btn.xs{box-shadow:none;background:var(--surface-2);border-color:var(--border-2)}
html[data-theme="neo"] .btn.sm:hover,html[data-theme="neo"] .btn.xs:hover{box-shadow:none;background:#e3e6eb}
html[data-theme="neo"] .btn.sm:active,html[data-theme="neo"] .btn.xs:active{box-shadow:var(--neo-inset)}
html[data-theme="neo"] .kpi-accent{background:var(--surface);border-color:transparent}
html[data-theme="neo"] .kpi-accent .kpi-ic{background:var(--accent);color:#fff}
/* Seitenleiste dunkelgrau — helle Schrift & Icons, aktiver Reiter in Pastellblau */
html[data-theme="neo"] .nav-item{color:var(--side-tx);font-weight:500}
html[data-theme="neo"] .nav-item svg{opacity:.9}
html[data-theme="neo"] .nav-item:hover:not(:disabled){background:var(--side-2);color:#fff}
html[data-theme="neo"] .nav-item.active{background:var(--accent);color:#fff;box-shadow:0 4px 12px rgba(112,137,196,.4)}
html[data-theme="neo"] .settings-gear.active{background:var(--accent);color:#fff}
html[data-theme="neo"] .sidebar-foot .btn{box-shadow:none}
html[data-theme="neo"] .build-tag{color:var(--side-lb)}
/* Eingaben eingelassen */
html[data-theme="neo"] input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),
html[data-theme="neo"] select,html[data-theme="neo"] textarea{background:var(--surface);border-color:transparent;box-shadow:var(--neo-inset)}
html[data-theme="neo"] input:focus,html[data-theme="neo"] select:focus,html[data-theme="neo"] textarea:focus{border-color:transparent;box-shadow:var(--neo-inset),0 0 0 2px var(--accent-soft)}
/* Buttons: erhaben, gedrückt = inset */
html[data-theme="neo"] .btn{background:var(--surface);border-color:transparent;box-shadow:var(--shadow);border-radius:14px;font-weight:600}
html[data-theme="neo"] .btn:hover{background:var(--surface);box-shadow:var(--shadow-lg)}
html[data-theme="neo"] .btn:active{box-shadow:var(--neo-inset)}
html[data-theme="neo"] .btn.primary{background:var(--accent);color:#fff;box-shadow:-4px -4px 10px rgba(255,255,255,.5),4px 4px 12px rgba(112,137,196,.4)}
html[data-theme="neo"] .btn.primary:hover{background:var(--accent-d);box-shadow:-5px -5px 12px rgba(255,255,255,.55),5px 5px 14px rgba(112,137,196,.48)}
/* Kleinkram */
html[data-theme="neo"] .set-nav-item.active{box-shadow:var(--neo-inset)}
html[data-theme="neo"] ::-webkit-scrollbar-thumb{background:rgba(152,158,170,.55)}
html[data-theme="neo"] .sidebar{box-shadow:6px 0 18px rgba(30,34,42,.18)}
html[data-theme="neo"] .nav-badge{background:var(--amber)}
html[data-theme="neo"] .kpi-accent .kpi-ic,html[data-theme="neo"] .user-av{background:var(--accent)}
*{box-sizing:border-box}
html{font-size:var(--app-fs,16px)}
body{margin:0;height:100%}
html{height:100%}
body{font:0.906rem/1.55 "Inter",-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}
.hidden{display:none !important}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#cdd5e0;border-radius:6px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:#b6c0cf;background-clip:padding-box}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border:1px solid var(--border);background:var(--surface);border-radius:10px;cursor:pointer;font:inherit;font-weight:500;color:var(--text);transition:.12s}
.btn:hover{border-color:#cdd6e2;background:#fafbfd}
.btn.primary{background:var(--grad);border-color:transparent;color:#fff;box-shadow:0 2px 8px rgba(99,102,241,.32)}
.btn.primary:hover{background:var(--grad-d);border-color:transparent}
.btn.sm{padding:6px 11px;font-size:.781rem;border-radius:8px}
.btn.danger{color:var(--danger);border-color:#f3c9c9}
.btn.danger:hover{background:#fef2f2}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(rgba(15,23,42,.30),rgba(15,23,42,.30)),url('/branding/login-bg') center/cover no-repeat,radial-gradient(1200px 600px at 50% -10%,#dde7fb,var(--bg))}
.login-card{width:360px;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);padding:32px;display:flex;flex-direction:column;gap:6px}
.login-img{width:200px;max-width:100%;align-self:center;margin:4px 0 16px}
.login-logo{font-size:1.25rem;font-weight:700;color:var(--text)}
.login-sub{color:var(--muted);margin-bottom:14px}
.login-card label{font-size:.75rem;color:var(--muted);margin-top:8px;font-weight:500}
.login-card input{padding:11px 12px;border:1px solid var(--border);border-radius:10px;font:inherit}
.login-card input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.login-card .btn{margin-top:18px;justify-content:center}
.login-err{color:var(--danger);font-size:.813rem;min-height:18px;margin-top:8px}

/* App-Layout */
.app{display:flex;height:100vh}
.sidebar{width:248px;flex:0 0 248px;background:var(--side);color:var(--side-tx);display:flex;flex-direction:column;padding:20px 16px}
.brand{display:flex;flex-direction:column;gap:8px;padding:4px 8px 18px}
.brand-img{width:150px;max-width:100%;display:block}
.brand-name{font-size:.813rem;font-weight:600;color:#fff;letter-spacing:.2px}
.brand .ver{font-size:.625rem;color:var(--side-lb);font-weight:500}
.nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow:auto}
.nav-section{font-size:.656rem;font-weight:700;letter-spacing:1.4px;color:var(--side-lb);margin:16px 12px 6px;text-transform:uppercase}
.nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border:none;background:none;color:var(--side-tx);text-align:left;border-radius:10px;cursor:pointer;font:inherit;font-size:.875rem;font-weight:500;width:100%}
.nav-item svg{width:18px;height:18px;flex:0 0 18px;stroke:currentColor;fill:none;stroke-width:1.8;opacity:.85}
.nav-item .nav-lbl{flex:1}
.nav-item:hover:not(:disabled){background:var(--side-2);color:#fff}
.nav-item.active{background:var(--grad);color:#fff;box-shadow:0 4px 14px rgba(99,102,241,.42)}
.nav-item.active svg{opacity:1}
.nav-item:disabled{opacity:.45;cursor:default}
.soon{font-size:.594rem;background:var(--side-2);color:var(--side-lb);padding:2px 7px;border-radius:10px;font-weight:600;letter-spacing:.3px}
.sidebar-foot{border-top:1px solid var(--side-2);padding-top:12px;margin-top:8px;display:flex;flex-direction:column;gap:10px}
.user-card{display:flex;align-items:center;gap:10px;padding:4px 6px}
.user-av{width:36px;height:36px;flex:0 0 36px;border-radius:10px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.813rem}
.user-info{min-width:0;flex:1}
.user-name{font-size:.813rem;font-weight:600;color:#fff}
.user-role{font-size:.688rem;color:var(--side-lb)}
/* Einstellungen als Zahnrad rechts neben dem User (dreht 90° beim Hover) */
.settings-gear{margin-left:auto;flex:0 0 auto;width:36px;height:36px;border:none;background:transparent;color:var(--side-lb);border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.settings-gear svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;transition:transform .35s ease}
.settings-gear:hover{background:var(--side-2);color:#fff}
.settings-gear:hover svg{transform:rotate(90deg)}
.settings-gear.active{background:var(--grad);color:#fff}
.sidebar-foot .btn{background:var(--side-2);border-color:transparent;color:var(--side-tx);justify-content:center}
.sidebar-foot .btn:hover{background:#243352;color:#fff}
.build-tag{font-size:.625rem;color:var(--side-lb);text-align:center;letter-spacing:.5px}

.main{flex:1;overflow:auto;padding:30px 38px}
/* Klebende Kopfleiste: Suche + Ansichten + Filter bleiben beim Scrollen oben */
.sticky-head{position:sticky;top:0;z-index:30;background:var(--bg);
  margin:0 -38px 18px;padding:14px 38px 12px;
  box-shadow:0 8px 14px -12px rgba(15,23,42,.18)}
/* deckt den 30px-Padding-Streifen von .main ab, damit beim Scrollen
   nichts oberhalb der Leiste durchscheint */
.sticky-head::before{content:'';position:absolute;left:0;right:0;bottom:100%;
  height:36px;background:var(--bg)}
.sticky-head .page-head{margin-bottom:14px}
.sticky-head .view-bar{margin-bottom:0}
.sticky-head .direkt-bar{margin-bottom:12px}
.page-head{display:flex;align-items:flex-end;gap:14px;margin-bottom:22px}
.ph-left{min-width:0}
.ph-eyebrow{font-size:.688rem;font-weight:700;letter-spacing:1.5px;color:var(--accent);text-transform:uppercase;margin-bottom:4px}
.page-head h1{font-size:1.875rem;font-weight:700;margin:0;letter-spacing:-.5px}
.ph-sub{color:var(--muted);font-size:.875rem;margin-top:5px}
.page-head .spacer{flex:1}
.ph-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.muted{color:var(--muted)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}

input,select,textarea{font-family:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

/* Kategorie-Baum */
.tree{display:flex;flex-direction:column;gap:1px}
.tnode{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;cursor:pointer}
.tnode:hover{background:var(--accent-soft)}
.tnode.sel{background:var(--accent-soft)}
.tnode.sel .tname{color:var(--accent);font-weight:600}
.tnode .tog{width:22px;font-size:1.25em;line-height:1;text-align:center;cursor:pointer;color:var(--muted);user-select:none;flex:none}
.tnode .tog:hover{color:var(--accent)}
.tnode .tog.leaf{cursor:default;color:transparent}
.tnode .tname{flex:1;min-width:0;display:flex;align-items:center;gap:7px;font-weight:500;overflow:hidden;white-space:nowrap}
.tnode .tname>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}   /* langer Name → „…" statt hart abgeschnitten */
/* Rechte Seite: feste Spalten (Attribute · Unterkategorien · Ring ganz rechts) */
.tnode .tright{flex:none;display:flex;align-items:center;gap:8px}
.tnode .tcell{display:inline-flex;justify-content:flex-end;align-items:center;min-width:30px}   /* schmaler = mehr Platz für den Namen */
.tnode .tright .st-ring{margin-left:2px}
.tnode .tcount{font-size:.688rem;color:var(--muted);background:#eef2f7;border-radius:10px;padding:2px 9px;font-weight:600}
.tnode .tattr{font-size:.66rem;color:#3f5878;background:#eef3f9;border:1px solid #dde6f0;border-radius:8px;padding:1px 7px;font-weight:600}
.tnode .tcheck{flex:none;width:14px;height:14px;cursor:pointer;accent-color:var(--accent)}
.tnode.ctx{opacity:.45}
/* Verschiebe-Modus (Baum entsperrt) */
.cat-toolbar.unlocked{border-color:var(--accent);background:var(--accent-soft)}
.cat-toolbar .move-hint{font-size:.78rem;color:var(--accent);font-weight:600}
.cat-tree-col.moving .tnode{cursor:grab}
.cat-tree-col.moving .tnode:active{cursor:grabbing}
.tnode.dragging{opacity:.4}
.tnode.drop-into{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent);border-radius:10px}
/* Kategorie-Icon (eigenes Bild) im Baum */
.cat-ico{width:var(--ico-size);height:var(--ico-size);object-fit:contain;border-radius:4px;display:block;flex:none}

/* ---- Status & Fortschritt ---- */
/* Status-Punkt: offen = hohler Ring · in Arbeit = gelb · fertig = grün — klickbar (wechselt den Status) */
.st-dot{flex:none;width:12px;height:12px;border-radius:50%;box-sizing:border-box;cursor:pointer;transition:transform .12s}
.st-dot:hover{transform:scale(1.25)}
.st-dot.s-offen{background:transparent;border:2px solid #9aa4b2}
.st-dot.s-arbeit{background:#f0b429;border:2px solid #f0b429}
.st-dot.s-kontrolle{background:#5b8def;border:2px solid #5b8def}
.st-dot.s-fertig{background:var(--green,#22c55e);border:2px solid var(--green,#22c55e)}
.st-ring{flex:none;display:inline-flex;align-items:center;justify-content:center;line-height:0}
.st-ring svg{display:block}
/* Toolbar (Auswahl + Filter) */
.cat-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px}
.cat-toolbar .sel-all{display:inline-flex;align-items:center;gap:6px;font-size:.84rem;font-weight:600;cursor:pointer}
.cat-toolbar .sel-all .tcheck{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}
.cat-toolbar .flt-lbl{font-size:.78rem;font-weight:700;color:var(--muted)}
/* Status-Segmented-Control im Panel */
.st-seg{display:inline-flex;gap:4px;background:#eef2f7;border-radius:9px;padding:3px}
.st-segb{border:none;background:none;padding:6px 14px;border-radius:7px;cursor:pointer;font:inherit;font-size:.82rem;font-weight:600;color:var(--muted)}
.st-segb.on{background:var(--surface);box-shadow:var(--shadow);color:var(--text)}
.st-segb.s-offen.on{color:#64748b}
.st-segb.s-arbeit.on{color:#b7791f}
.st-segb.s-kontrolle.on{color:#3b62c4}
.st-segb.s-fertig.on{color:#15803d}
/* Fortschritt im Panel */
.cd-prog{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.cd-prog-crit{display:inline-flex;flex-direction:column;gap:4px}
.cd-prog-crit .crit{font-size:.74rem;font-weight:600}
.cd-prog-crit .crit.ok{color:#15803d}
.cd-prog-crit .crit.no{color:var(--faint)}
.cd-status{padding:14px 0;border-bottom:1px solid var(--border)}

/* ---- Kategorien: Vergleichen (Spalten) ---- */
.cmp-area{min-width:0}
.cmp-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.cmp-cols{display:flex;gap:12px;align-items:flex-start;overflow-x:auto;padding-bottom:8px}
/* Zeilen-Layout: Kategorien untereinander, Attribute horizontal */
.cmp-cols.cmp-h{flex-direction:column;overflow-x:visible}
.cmp-cols.cmp-h .cmp-col{flex:none;width:100%}
.cmp-cols.cmp-h .cmp-inh,.cmp-cols.cmp-h .cmp-own{flex-direction:row;flex-wrap:wrap;align-items:center}
.cmp-cols.cmp-h .cmp-attr{flex:none}
.cmp-cols.cmp-h .cmp-attr .ord-nm{flex:none}
.cmp-col{flex:0 0 260px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px;box-shadow:var(--shadow)}
.cmp-head{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.cmp-head .cmp-title{flex:1;min-width:0;font-weight:700;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmp-path{font-size:.7rem;margin-bottom:6px}
.cmp-inh{display:flex;flex-direction:column;gap:4px}
.cmp-own{display:flex;flex-direction:column;gap:4px;min-height:40px;border:1px dashed transparent;border-radius:8px;padding:2px}
.cmp-own.drop-into{border-color:var(--accent);background:var(--accent-soft)}
.cmp-attr{display:flex;align-items:center;gap:5px;padding:5px 6px;background:#f7f9fc;border:1px solid var(--border);border-radius:8px;cursor:grab}
.cmp-attr:active{cursor:grabbing}
.cmp-attr.dragging{opacity:.4}
.cmp-attr.drag-over{border-color:var(--accent);box-shadow:0 -2px 0 -1px var(--accent) inset}
.cmp-attr.ro{cursor:default;background:#f2f5f9;opacity:.9}
.cmp-attr .ord-nm{flex:1;min-width:0;font-weight:600;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmp-attr .ord-grip{color:#b6c2d1;font-size:.8rem;letter-spacing:-1px;user-select:none}
.cmp-attr .cmp-from{font-size:.66rem;color:var(--muted);flex:none}
.cmp-attr .chip-x{border:none;background:none;cursor:pointer;color:var(--faint);font-size:.9rem;line-height:1;padding:1px 4px;border-radius:5px}
.cmp-attr .chip-x:hover{background:#fde8e8;color:#c0392b}

/* ---- Kategorien: Zwei-Spalten (Baum + Einstellungs-Panel) ---- */
.cat-layout{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:14px;align-items:start}
.cat-tree-col{padding:8px;max-height:calc(100vh - 190px);overflow:auto}
.cat-detail-col{padding:18px 20px;min-height:240px}
.cd-empty{padding:30px 6px;font-size:.9rem}
.cd-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-weight:600;color:var(--text)}
.cd-crumbs i{color:var(--faint);font-style:normal;margin:0 2px}
.cd-crumbs span:last-child{color:var(--accent)}
.cd-lvlrow{display:flex;align-items:center;gap:10px;margin:8px 0 14px}
.cd-lvlrow .lvlbadge{font-size:.72rem;font-weight:700;color:#3f5878;background:#eef3f9;border:1px solid #dde6f0;border-radius:7px;padding:3px 9px}
.cd-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.cd-iconrow{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.cd-icon{width:48px;height:48px;object-fit:contain;border-radius:8px;flex:none;mix-blend-mode:multiply}
.cd-icon.ph{display:flex;align-items:center;justify-content:center;border:1px dashed #cbd5e1;background:#f8fafc;color:var(--faint);font-size:.7rem}
.cd-iconrow.drop-over{background:var(--accent-soft);border-radius:10px;box-shadow:inset 0 0 0 2px var(--accent)}

/* ---- Attribut-Gruppen (Kategorie-Editor + Produktformular) ---- */
.cd-lbl{display:flex;align-items:center;gap:8px}
.cd-grp-head{display:flex;align-items:center;gap:8px;margin:12px 0 4px;padding:5px 10px;border-radius:9px;border-left:4px solid var(--gc,#7089c4);background:color-mix(in srgb,var(--gc,#7089c4) 10%,transparent)}
.cd-grp-head .grp-grip{cursor:grab;color:var(--faint);user-select:none;font-size:.85rem;line-height:1;flex:none}
.cd-grp-head .grp-grip:active{cursor:grabbing}
.cd-grp-head.dragging{opacity:.45}
.cd-grp-head.drop-before{box-shadow:inset 0 3px 0 var(--accent)}
.cd-grp-head.drop-after{box-shadow:inset 0 -3px 0 var(--accent)}
.grp-move{border:none;background:none;cursor:pointer;color:var(--faint);font-size:.85rem;line-height:1;padding:1px 4px;border-radius:5px;flex:none}
.grp-move:hover{background:rgba(0,0,0,.07);color:var(--text)}
.grp-color{width:26px;height:24px;padding:1px;border:none;background:none;cursor:pointer;flex:none}
.grp-name{border:none;background:none;font:inherit;font-weight:700;font-size:.85rem;color:var(--text);min-width:80px;flex:1}
.grp-name:focus{outline:none;border-bottom:1px dashed var(--gc,#7089c4)}
.grp-cnt{font-size:.7rem;color:var(--muted);white-space:nowrap}
.grp-tag{display:inline-block;padding:2px 8px;border-radius:7px;font-size:.72rem;font-weight:600;border-left:3px solid var(--gc,#7089c4);background:color-mix(in srgb,var(--gc,#7089c4) 12%,transparent);white-space:nowrap}
/* Combo: aktuell gewählter Eintrag in der offenen Liste */
.combo-item.on{font-weight:700;background:var(--accent-soft)}

/* Mehrfachauswahl kompakt: gewählte Werte als Chips + Suchfeld darunter */
.pf-tags{display:flex;flex-direction:column;gap:4px;min-width:220px}
.pf-tags-row{display:flex;flex-wrap:wrap;gap:4px}
.pf-tags-row:empty{display:none}
.pf-tag{display:inline-flex;align-items:center;gap:2px;padding:2px 6px 2px 9px;border:1px solid var(--border);border-radius:7px;font-size:.8rem;background:var(--accent-soft)}

/* Optional-Gruppen in Vorlagen (⬚): farbig markierte Abschnitte im Editor */
.rte-area .tpl-opt{border-radius:6px;padding:1px 3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}

/* Gruppen-Filter (Attribute-Reiter): Klappliste mit Häkchen — Mehrfachauswahl */
.grpf-wrap{position:relative}
.grpf-btn{min-width:130px;text-align:left;cursor:pointer}
.grpf-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:70;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 26px rgba(20,35,60,.18);padding:8px;min-width:230px;max-height:340px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.grpf-row{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:6px;cursor:pointer;font-size:.8rem;white-space:nowrap}
.grpf-row:hover{background:var(--accent-soft)}
.grp-tag.main{box-shadow:inset 0 0 0 1px var(--gc,#7089c4)}
.grp-tag .chip-x{margin-left:4px}
.attr-grps{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.attr-top .attr-grps{margin-right:16px;justify-content:flex-end}
.grp-dot{width:10px;height:10px;border-radius:3px;background:var(--gc,#7089c4);flex:none;display:inline-block}
.attr-grp-sec{margin:14px 0 6px}
.attr-grp-sec b{font-size:.85rem}
.grp-info{width:100%;border:1px dashed var(--border);border-radius:8px;padding:4px 10px;font:inherit;font-size:.76rem;color:var(--muted);margin:-2px 0 8px;background:none}
.grp-info:focus{outline:none;border-color:var(--accent);color:var(--text)}
/* Kopffelder im Produktformular (Attribute mit „Kopffeld"-Haken) */
.pf-headflds.lay-over-head{outline:2px dashed var(--accent);outline-offset:4px;border-radius:10px}
.phf-attr{position:relative}
.pf-headflds .phf.phf-attr{min-width:110px}   /* gewinnt gegen min-width:0 der allgemeinen Kopf-Regel */
/* Kopffeld-Attribute sehen aus wie die anderen Kopf-Felder: Etikett OBEN, Eingabe volle Breite —
   so wird Breiter-Ziehen sofort sichtbar (vorher: Etikett links, Feld wuchs nicht mit) */
.phf-attr .pf-row{flex-direction:column;align-items:stretch;gap:2px;border-bottom:none;padding:0;width:100%;justify-content:flex-start}
.phf-attr .pf-row .pf-ctrl{flex:0 0 auto}   /* Eingabe klebt am Namen — darf nie nach unten wegwachsen */
.phf-attr .pf-lbl{flex:0 0 auto;font-size:.76rem;color:var(--muted)}
.phf-attr .phf-out{position:absolute;top:-4px;right:74px}
.phf-wbtn{position:absolute;top:-4px;right:14px;font-size:.62rem;padding:1px 6px}
.prod-big-imgcol{display:flex;flex-direction:column;gap:4px;align-items:center;flex:0 0 auto}
.img-tools{display:flex;gap:4px;align-items:center}
/* Varianten-Nr. im Kopf: gleiches Kleid wie die anderen Felder (volle Breite, runde Ecken) */
.pf-headflds #pf-sku{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:inherit;box-sizing:border-box;background:var(--surface)}
.pf-headflds #pf-sku:focus{border-color:var(--accent);outline:none}

/* Auswahl-Fenster: Attribute in die Merkmalsleiste einfügen (seitlich, Leiste bleibt sichtbar) */
.attrpick{position:fixed;top:86px;right:18px;bottom:18px;width:370px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 14px 36px rgba(20,35,60,.22);z-index:60;display:flex;flex-direction:column;padding:12px 14px;gap:6px}
.attrpick-head{display:flex;align-items:center;gap:8px}
.attrpick-list{flex:1;overflow:auto;display:flex;flex-direction:column;gap:2px;margin-top:4px}
.attrpick-list .cd-grp-head{margin:8px 0 2px}
.attrpick-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:8px;cursor:grab;border:1px solid transparent;font-size:.82rem}
.attrpick-row:hover{background:var(--accent-soft);border-color:var(--border)}
.attrpick-row:active{cursor:grabbing}
.attrpick-nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attrpick-type{font-size:.68rem;color:var(--muted);flex:none}
.attrpick-foot{display:flex;align-items:center;gap:8px;border-top:1px solid var(--border);padding-top:8px}

/* Icon-Wähler aus den Medien (Kategorie) */
.icopick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.icopick-item{border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;padding:8px 6px;display:flex;flex-direction:column;align-items:center;gap:6px}
.icopick-item:hover{border-color:var(--accent)}
.icopick-item img{width:44px;height:44px;object-fit:contain}
.icopick-nm{font-size:.68rem;color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-grpwrap{border-radius:10px;padding:4px;min-height:34px}
.cd-grpwrap.grouped{background:color-mix(in srgb,var(--gc,#7089c4) 5%,transparent);border:1px dashed color-mix(in srgb,var(--gc,#7089c4) 30%,transparent);margin-bottom:6px}
.cd-grpwrap.drag-over{outline:2px dashed var(--gc,var(--accent));outline-offset:-2px;background:color-mix(in srgb,var(--gc,#7089c4) 12%,transparent)}
/* ---- Lieferanten-Onboarding: zwei Listen + Verbindungslinien ---- */
.map-overlay{position:fixed;inset:0;z-index:150;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:24px}
.map-modal{background:#fff;border-radius:16px;box-shadow:0 24px 60px rgba(15,23,42,.3);width:min(980px,94vw);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}
/* Kompakte Zuordnungs-Tabelle */
.map2-wrap{flex:1;overflow:auto;padding:12px 20px 18px}
.map2-row{display:grid;grid-template-columns:minmax(170px,1fr) 24px minmax(240px,1.25fr) 92px;gap:10px;align-items:center;padding:5px 8px;border-bottom:1px solid var(--border-2)}
.map2-headrow{position:sticky;top:0;background:#fff;z-index:1;border-bottom:1px solid var(--border);padding-top:2px}
.map2-h{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.map2-term{font-size:.85rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map2-arrow{color:var(--faint);text-align:center}
.map2-sel{font:inherit;font-size:.82rem;padding:6px 9px;border:1px solid var(--border);border-radius:8px;background:#fff;width:100%;box-sizing:border-box}
.map2-row.spez{background:rgba(240,180,41,.08)}
.map2-row.spez .map2-sel{border-color:#e3b341}
.map2-row.auto .map2-term{color:var(--muted);font-weight:500}
.map2-row:hover{background:var(--accent-soft)}
.map2-row.spez:hover{background:rgba(240,180,41,.14)}
.map-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border)}
.map-wrap{position:relative;flex:1;overflow:auto;padding:16px 22px;display:flex;gap:100px;align-items:flex-start;user-select:none}
.map-item[data-term]{cursor:grab}
.map-item[data-term]:active{cursor:grabbing}
.map-item.drop-hot{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--accent-soft)}
.map-svg{position:absolute;top:0;left:0;pointer-events:none}
.map-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;position:relative;z-index:1}
.map-col-h{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:4px}
.map-item{display:flex;align-items:center;gap:7px;padding:4px 9px;border:1.5px solid var(--border);border-radius:8px;background:#fff;cursor:pointer;font-size:.8rem;transition:border-color .12s,box-shadow .12s}
.map-badge{flex:none;font-size:.6rem;font-weight:800;border-radius:6px;padding:1px 6px;letter-spacing:.02em}
.map-badge.auto{background:#eef1f5;color:#7b8494}
.map-badge.spez{background:rgba(240,180,41,.2);color:#b7791f}
.map-item:hover{border-color:var(--accent)}
.map-item.sel{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.map-item.paired{border-color:var(--mc)}
.map-item .map-dot{width:9px;height:9px;border-radius:50%;background:var(--mc,transparent);border:1.5px solid var(--border);flex:none}
.map-item.paired .map-dot{border-color:var(--mc)}
.map-txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-x{border:none;background:none;color:var(--faint);cursor:pointer;font-size:1rem;line-height:1;display:none;padding:0 2px}
.map-item.paired .map-x{display:block}
.map-x:hover{color:var(--danger)}
.map-add{margin-top:6px;padding:6px 10px;border:1.5px dashed var(--border);border-radius:8px;font:inherit;font-size:.8rem;background:transparent}
.map-add:focus{outline:none;border-color:var(--accent)}
/* PDF-Zeile im Auslese-Panel: Dokument + Knöpfe (ansehen/Werte) nebeneinander */
.scrape-docrow{display:flex;align-items:center;gap:8px;margin:3px 0}
.scrape-docrow .scrape-doc{flex:1;margin:0}
.scrape-docrow .btn.sm{flex:none;white-space:nowrap}
/* Bild-Lightbox: gross ansehen im Programm (kein neuer Tab) */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(10,14,22,.82);display:flex;align-items:center;justify-content:center;cursor:zoom-out;flex-direction:column;gap:12px}
.lightbox img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:10px;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox-hint{color:rgba(255,255,255,.75);font-size:.8rem}

/* PDF-Viewer im Panel (Browser-eigener Viewer, 1:1 wie das Original) */
.scrape-pdfframe{width:100%;flex:1;min-height:65vh;border:1px solid var(--border);border-radius:10px;background:#525659}
/* Massen-Änderung (Produkt-Tabelle) */
.pt-bulk{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;margin:0 0 8px;border:1px solid var(--amber,#d97706);border-radius:10px;background:rgba(245,158,11,.07)}
.pt-bulk-lbl{font-size:.8rem;font-weight:700;color:#b45309}
.pt-bulk-opt{font-size:.78rem;display:inline-flex;gap:4px;align-items:center;white-space:nowrap}
.pt-bulk-vorschau{flex-basis:100%;font-size:.78rem;padding:6px 8px;border-radius:8px;background:var(--surface,#fff);border:1px dashed rgba(217,119,6,.45)}
.pt-bulk-bsp{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-bulk-alt{text-decoration:line-through;opacity:.65}

/* Klickbare Prüf-Zeile (öffnet das passende Formular) */
.dash-row-click{cursor:pointer;border-radius:8px}
.dash-row-click:hover{background:var(--accent-soft)}

/* Prüf-Link zur Quelle (Entwurf → Lieferanten-Seite, springt zur Stelle) */
.dash-src{margin-left:8px;font-size:.74rem;font-weight:600;color:var(--accent);text-decoration:none;white-space:nowrap}
.dash-src:hover{text-decoration:underline}

/* „Fehlt"-Filter in der Artikelliste */
.art-missf{font:inherit;font-size:.74rem;padding:4px 6px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer}
.art-missf.on{border-color:var(--amber);color:#b45309;font-weight:600}

/* Was fehlt? — Dashboard-Liste */
.miss-list{display:flex;flex-direction:column}
.miss-row{display:flex;align-items:center;gap:12px;padding:9px 4px;border-bottom:1px solid var(--border-2);cursor:pointer;border-radius:8px}
.miss-row:last-child{border-bottom:none}
.miss-row:hover{background:var(--accent-soft)}
.miss-cnt{flex:none;min-width:34px;height:26px;border-radius:8px;background:rgba(245,158,11,.14);color:#b45309;font-weight:800;font-size:.8rem;display:inline-flex;align-items:center;justify-content:center;padding:0 8px}
.miss-main{flex:1;min-width:0}
.miss-name{font-size:.86rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.miss-fields{font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.miss-open{flex:none;font-size:.76rem;color:var(--accent);font-weight:600}

/* Kategorien-KPI: Status-Balken + Mini-Legende */
.kpi-stbar{display:flex;height:7px;border-radius:5px;overflow:hidden;margin-top:9px;gap:1px}
.kpi-stleg{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:7px}
.kpi-stitem{display:inline-flex;align-items:center;gap:5px;font-size:.7rem;color:var(--muted);white-space:nowrap}

/* Inline-Bearbeitung in der Attribut-Tabelle */
.attr-type-sel{font:inherit;font-size:.72rem;font-weight:700;color:var(--accent);background:var(--accent-soft);border:1px solid transparent;border-radius:999px;padding:2px 6px;cursor:pointer;max-width:100%}
.attr-type-sel:hover{border-color:var(--accent)}
.vis-strip.hot .vico{cursor:pointer;transition:transform .1s}
.vis-strip.hot .vico:hover{transform:scale(1.25)}

/* Gruppen-Trenner in der Vergleichs-Spalte */
.cmp-grp{display:flex;align-items:center;gap:7px;margin:8px 0 3px;padding:4px 9px;border-radius:8px;font-weight:700;font-size:.72rem;letter-spacing:.02em;color:var(--text);border-left:3px solid var(--gc,#7089c4);background:color-mix(in srgb,var(--gc,#7089c4) 9%,transparent)}
/* Farbiger Gruppen-Trenner im Produktformular */
.pf-group{grid-column:1/-1;display:flex;align-items:center;gap:8px;margin:14px 0 0;padding:6px 11px;border-radius:9px;font-weight:700;font-size:.8rem;letter-spacing:.02em;color:var(--text);border-left:4px solid var(--gc,#7089c4);background:color-mix(in srgb,var(--gc,#7089c4) 9%,transparent)}
.pf-group-dot{width:8px;height:8px;border-radius:50%;background:var(--gc,#7089c4);flex:none}

/* Langtext-Felder (Offerte, Intern, Onlineshop, Katalog …) */
.pf-longtext{width:100%;min-height:84px;resize:vertical;padding:9px 11px;border:1px solid var(--border);border-radius:10px;font:inherit;font-size:.86rem;line-height:1.5;box-sizing:border-box;background:var(--surface)}
/* Reiter „Texte": Titel oben, Feld volle Breite darunter, Werkzeug-Knöpfe UNTER dem Feld,
   mindestens ~5 Zeilen hoch und am unteren Rand von Hand vergrösserbar */
.pf-texte{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px;row-gap:12px;padding:4px 2px}
.pf-texte>.txt-feld{grid-column:1/-1;min-width:0}.pf-texte>.txt-feld.kurz{grid-column:auto}.pf-texte>.muted{grid-column:1/-1}
.pf-texte .txt-feld.kurz .rte-area{min-height:44px}
@media (max-width:900px){.pf-texte>.txt-feld.kurz{grid-column:1/-1}}
.pf-texte .pf-row{flex-direction:column;align-items:stretch;gap:4px;border-bottom:none;padding:2px 0}
.pf-texte .pf-lbl{flex:none;width:auto;font-size:.8rem;font-weight:700;color:var(--muted)}
.pf-texte .pf-row{flex:none}   /* nie eine Breiten-Vorgabe als Höhe übernehmen */
.pf-texte .pf-ctrl{width:100%;flex-direction:column;align-items:stretch;gap:6px}   /* Feld volle Breite, KI-/Vorlage-Knöpfe UNTER dem Feld */
.pf-texte .rte-wrap{display:flex;flex-direction:column}
.pf-texte .rte-area{order:1;min-height:128px;resize:vertical;overflow:auto;padding:9px 12px}
.pf-texte .rte-bar{order:2;border-bottom:none;border-top:1px solid var(--border)}
.pf-texte .pf-longtext{min-height:0}
.pf-longtext[readonly]{color:var(--muted);background:#f8fafc}
.cd-attrs{margin-top:16px}
.cd-head{font-weight:700;font-size:.95rem;margin-bottom:10px}
.cd-lbl{font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin:12px 0 6px}
.cd-ownlist{display:flex;flex-wrap:wrap;gap:6px}
.cd-ownchip{display:inline-flex;align-items:center;gap:4px;padding:4px 6px 4px 5px;background:#f7f9fc;border:1px solid var(--border);border-radius:9px;cursor:grab;transition:box-shadow .1s,border-color .1s,opacity .1s}
.cd-ownchip:active{cursor:grabbing}
.cd-ownchip.dragging{opacity:.4}
.cd-ownchip.drag-over{border-color:var(--accent);box-shadow:-3px 0 0 -1px var(--accent)}
.cd-ownchip .ord-grip{color:#b6c2d1;font-size:.8rem;line-height:1;letter-spacing:-1px;user-select:none}
.cd-ownchip .ord-nm{font-weight:600;font-size:.84rem}
.cd-ownchip .ord-unit{color:var(--muted);font-weight:400}
.cd-ownchip .chip-x{border:none;background:none;cursor:pointer;color:var(--faint);font-size:.9rem;line-height:1;padding:1px 4px;border-radius:5px;margin-left:2px}
.cd-ownchip .chip-x:hover{background:#fde8e8;color:#c0392b}
.iconb{border:none;background:none;cursor:pointer;color:var(--faint);font-size:.875rem;padding:4px 7px;border-radius:8px;line-height:1}
.iconb:hover{background:#eef2f7;color:var(--text)}
.iconb.del:hover{color:var(--danger);background:#fef2f2}

/* Einstellungen */
.foot-item{width:100%}
.set-card{max-width:780px;margin-bottom:18px}
/* Breite Karten (Benutzer-Tabelle, Journal): die 780px schnitten rechts die Knöpfe ab (21.08.2026).
   Solche Karten nutzen die volle Breite; die Tabelle rollt bei Bedarf waagrecht statt zu verschwinden. */
.set-card.wide{max-width:none}
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl-scroll>table{min-width:100%}
/* 🛡 Sicherheits-Übersicht: Kennzahl-Kacheln + Balken-Verlauf */
.sec-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:6px 0 16px}
.sec-kpi{border:1px solid var(--border);border-radius:12px;padding:12px 14px;background:var(--surface)}
.sec-kpi .k-lbl{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-weight:600}
.sec-kpi .k-val{font-size:1.7rem;font-weight:700;line-height:1.25;margin-top:2px}
.sec-kpi .k-sub{font-size:.75rem;color:var(--muted)}
.sec-kpi.ok .k-val{color:#2e9e44}.sec-kpi.warn .k-val{color:#c2903f}.sec-kpi.bad .k-val{color:#dc2626}
.sec-chart{display:flex;align-items:flex-end;gap:3px;height:110px;padding:8px 10px;border:1px solid var(--border);border-radius:12px}
.sec-bar{flex:1;min-width:4px;background:var(--border-2);border-radius:3px 3px 0 0;position:relative}
.sec-bar.hat{background:#dc2626}
.sec-bar:hover{outline:2px solid var(--muted)}
.set-h{font-size:1.125rem;margin:0 0 16px;font-weight:700}
.set-sub{font-size:.875rem;color:var(--muted);margin:20px 0 12px;font-weight:600}
.backup-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.backup-row{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid var(--border);border-radius:9px;background:#fafcff}
.backup-when{font-weight:600;font-size:.875rem;font-variant-numeric:tabular-nums}
/* Link-Prüfung */
.link-report{margin-top:14px;max-height:68vh;overflow:auto}
.link-tbl{width:100%}
.link-tbl thead th{position:sticky;top:0;background:var(--surface);z-index:3}
.link-tbl th.filter-aktiv{color:var(--accent)}
/* Klick-Menü im Spalten-Titel (wie Excel-Filter) */
.kopf-menue{position:absolute;top:calc(100% - 4px);left:0;background:var(--surface);border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 14px 34px rgba(15,23,42,.18);min-width:220px;padding:6px;z-index:30;font-weight:400;text-transform:none}
.kopf-menue-e{padding:7px 10px;border-radius:7px;cursor:pointer;font-size:.8rem;white-space:nowrap}
.kopf-menue-e:hover{background:#f1f5f9}
.kopf-menue-e.aktiv{font-weight:700;color:var(--accent)}
.kopf-menue-e:first-child{border-bottom:1px solid #eef2f7;border-radius:7px 7px 0 0;margin-bottom:4px}
.link-sep td{background:#f1f5f9;font-weight:600;font-size:.78rem;color:#475569;padding:8px 10px}
.link-tbl tr.row-ctrl td{background:#f8fafc;color:#64748b}
.link-tbl tr.row-aus td{background:#f8fafc;color:#a3adba}
.link-tbl tr.row-aus .link-url{color:#a3adba}
/* Zeilen-Knöpfe: vier gleich grosse, ruhige Quadrate in einer Reihe */
.link-tbl .link-akt{white-space:nowrap}
.link-tbl .link-akt .btn.xs{width:26px;height:26px;padding:0;margin:0 1px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;vertical-align:middle}
.link-tbl .link-akt .btn.xs .ico{display:flex}
.link-tbl .link-akt .btn.xs .ico svg{width:14px;height:14px}
/* Werkzeug-Leiste: alles gleich hoch und bündig */
.link-werkzeuge{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;margin-bottom:4px}
.link-werkzeuge .btn{height:38px;display:inline-flex;align-items:center;gap:6px;padding:0 14px;margin:0;border-radius:10px;white-space:nowrap}
.lstat.neutral{color:#64748b}   /* 🛡 blockiert = kein Fehler, neutral grau */
.link-tbl .ldetail{font-size:.78rem;color:#64748b;max-width:340px}
/* Suchen & Ersetzen: grosses, ruhiges Fenster — alt in Rot (nicht durchgestrichen), neu in Grün */
.modal-box:has(.se-box){max-width:none;width:min(940px,94vw)}
.se-box{padding:22px}
.se-box input[type=text]{width:100%;box-sizing:border-box;margin:4px 0 12px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;font-size:.86rem}
.se-vorschau{max-height:46vh;overflow:auto;border:1px solid #e2e8f0;border-radius:10px;padding:4px 10px;margin-top:6px}
.se-zeile{display:flex;gap:12px;align-items:flex-start;padding:10px 4px;border-bottom:1px solid #f1f5f9;cursor:pointer}
.se-zeile:last-child{border-bottom:none}
.se-zeile input[type=checkbox]{margin-top:3px}
.se-inhalt{flex:1;min-width:0}
.se-kopfz{display:flex;gap:8px;align-items:center;margin-bottom:3px}
.se-name{font-weight:600;font-size:.82rem}
.se-alt{color:#c0392b;word-break:break-all;font-size:.8rem;line-height:1.5}
.se-neu{color:#1d7a46;word-break:break-all;font-size:.8rem;line-height:1.5}
/* Kategorien-Vorschau: Gruppen-Zwischentitel + eingerückte Einträge */
.se-zeile.se-gruppe{background:#f8fafc;border-radius:8px;margin-top:6px;border-bottom:none}
.se-zeile.se-eintrag{margin-left:20px}
.bl-chip .chip-goto{margin-left:5px;opacity:.6;font-weight:700}
.bl-chip .chip-goto:hover{opacity:1}
/* 🤍 Weisse Logos automatisch sichtbar machen */
img.logo-hell{background:#3f4a5a;border-radius:6px;padding:2px}
img.logo-fremd{filter:drop-shadow(0 0 1px rgba(15,23,42,.5))}
/* Schnellzugriff: ★ Favoriten + 🕘 Verlauf — dynamische Aufklapp-Fenster neben der Seitenleiste */
.schnell-flyout{position:fixed;z-index:200;background:var(--surface);border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 18px 44px rgba(15,23,42,.22);min-width:260px;max-width:360px;padding:8px;max-height:70vh;overflow:auto}
.schnell-titel{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;padding:4px 10px 6px}
.schnell-zeile{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:.84rem}
.schnell-zeile:hover{background:#f1f5f9}
.schnell-lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.schnell-zurueck{font-weight:700}
.schnell-pin{color:var(--accent);font-weight:600;border-bottom:1px solid #eef2f7;border-radius:8px 8px 0 0;margin-bottom:4px}
.schnell-x{border:none;background:none;color:#94a3b8;cursor:pointer;font-size:.9rem;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;flex:none}
.schnell-x:hover{background:#fdecec;color:#c0392b}
.schnell-leer{padding:6px 10px 10px;font-size:.8rem}
.schnell-teilen{color:var(--accent);font-weight:600;border-top:1px solid #eef2f7;border-radius:0 0 8px 8px;margin-top:4px}
/* 🖱 Gummiband-Auswahl im DAM (Rechteck wie im Explorer) */
.dam-gummi{position:fixed;z-index:400;border:1px solid var(--accent);background:rgba(76,110,245,.12);border-radius:3px;pointer-events:none}
.dam-grid{padding-bottom:56px}   /* freie Startfläche fürs Gummiband unter der letzten Reihe */
/* ★ Stern direkt am Datensatz: gefüllt = Favorit */
.fav-stern{border:none;background:none;cursor:pointer;color:#94a3b8;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:0;flex:none}
.fav-stern:hover{background:#f1f5f9;color:#c2903f}
.fav-stern.aktiv{color:#c2903f}
.fav-stern.aktiv svg{fill:currentColor}
.fav-stern svg{width:15px;height:15px}
.link-tbl td{font-size:.82rem;vertical-align:top;padding:7px 10px}
.link-tbl .link-url{font-size:.76rem;word-break:break-all;color:var(--accent);text-decoration:none}
.link-tbl tr.row-bad td{background:#fdecec}
.link-tbl tr.row-warn td{background:#fff7e6}
.lstat{white-space:nowrap;font-weight:700}
.lstat.ok{color:#1d7a46}
.lstat.warn{color:#b7791f}
.lstat.bad{color:#c0392b}
.lkind{display:inline-block;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:1px 6px;border-radius:6px;margin-right:2px}
.lkind.sup{background:var(--accent-soft);color:var(--accent)}
.lkind.br{background:#eef7f0;color:#1d7a46}
/* Festes 3-Spalten-Raster: Label | Feld | Aktion — alle Felder enden auf derselben Fluchtlinie */
.set-row{display:grid;grid-template-columns:140px minmax(0,1fr) 170px;align-items:center;gap:14px;margin-bottom:12px}
.set-row label{font-size:.875rem;color:var(--muted);font-weight:500}
.set-row input,.set-row select{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font:inherit}
.set-row input:disabled{background:#f4f6f9;color:var(--muted)}
.set-row .btn{justify-self:start}
.fs-choice{display:flex;gap:8px;flex-wrap:wrap}
.fs-wrap{display:flex;align-items:center;gap:13px;flex:1}
.fs-slider{flex:1;max-width:320px;accent-color:var(--accent);cursor:pointer;height:6px}
.fs-a{color:var(--muted);font-weight:700;line-height:1}
.fs-a-s{font-size:.8rem}
.fs-a-b{font-size:1.25rem}
.fs-val{font-weight:700;color:var(--accent);min-width:48px}
/* Einstellungen: linkes Menü + Inhalt */
.settings-layout{display:flex;gap:24px;align-items:flex-start}
.settings-nav{flex:0 0 210px;display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px}
.set-nav-item{text-align:left;padding:10px 14px;border:none;background:none;border-radius:9px;cursor:pointer;font:inherit;font-size:.9rem;font-weight:500;color:var(--text)}
.set-nav-item:hover{background:#eef2f7}
.set-nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}
.settings-content{flex:1;min-width:0}
.settings-content .set-card{margin-bottom:0}

.utable{width:100%;border-collapse:collapse;margin-top:4px}
.utable th{text-align:left;font-size:.688rem;color:var(--muted);font-weight:600;padding:8px;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.4px}
.utable td{padding:8px;border-bottom:1px solid var(--border-2);font-size:.844rem;vertical-align:middle}
.utable select{padding:5px 7px;border:1px solid var(--border);border-radius:8px}
.urow-actions{display:flex;gap:4px}
.uadd{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.uadd input,.uadd select{padding:9px 11px;border:1px solid var(--border);border-radius:10px;font:inherit}
.uadd input{flex:1;min-width:120px}

/* Such-/Listen-Felder */
.list-search{padding:10px 13px;border:1px solid var(--border);border-radius:10px;font:inherit;min-width:240px;background:var(--surface)}
.list-add{display:flex;gap:8px;align-items:center;margin-bottom:14px}
.list-add input{flex:1;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font:inherit}
.list-add select{padding:10px 12px;border:1px solid var(--border);border-radius:10px;font:inherit}
.list-table{width:100%;border-collapse:collapse}
.list-table td{padding:6px;border-bottom:1px solid var(--border-2);vertical-align:middle}
.list-table tr:last-child td{border-bottom:none}
.list-table input{width:100%;padding:8px 10px;border:1px solid transparent;border-radius:8px;font:inherit;background:none}
.list-table input:hover{border-color:var(--border)}
.list-table input:focus{border-color:var(--accent);background:var(--surface)}
.ta-right{text-align:right;width:44px}
.sup-st-cell{width:160px}

/* Direktsuche-Leiste */
.direkt-bar{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:6px 8px 6px 16px}
.direkt-bar .direkt-ic{font-size:1.063rem}
.direkt-bar input{flex:1;padding:11px 12px;border:1px solid var(--border);border-radius:10px;font:inherit;background:var(--surface)}

/* Karten (Lieferanten / Marken) */
.lib-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;margin-bottom:12px;cursor:pointer;transition:.14s}
.lib-card:hover{border-color:#cbd9f0;box-shadow:0 4px 14px rgba(37,99,235,.1);transform:translateY(-1px)}
.lib-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.lib-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0}
.lib-logo{height:30px;width:auto;max-width:90px;object-fit:contain;border-radius:6px}
.lib-title .an{font-weight:700;font-size:.969rem}
.lib-title .at{font-size:.688rem;color:var(--muted);background:#eef2f7;border-radius:6px;padding:2px 7px;font-weight:600}
.card-acts{display:flex;gap:2px;flex:0 0 auto}
.sup-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:.781rem}
.sup-meta a{color:var(--accent);text-decoration:none;font-weight:500}
.sup-meta a:hover{text-decoration:underline}
.card-notes{margin:10px 0 0;font-size:.781rem}
.sup-brands{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--accent-soft);border:1px solid #d7e3fb;color:#1e40af;border-radius:8px;padding:4px 10px;font-size:.75rem;font-weight:500}
.brand-chip{cursor:pointer}
.brand-chip:hover{background:#dde8fc}
/* BP-Chips auf der Medien-Kachel: verknüpfte Artikel (auch Varianten) — Klick öffnet den Artikel */
.dam-card-bps{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.dam-bp{font-size:.68rem;font-weight:600;color:#1e40af;background:var(--accent-soft);border:1px solid #d7e3fb;border-radius:7px;padding:1px 7px;cursor:pointer}
.dam-bp:hover{background:#dde8fc}
.dam-bp.mehr{color:var(--muted);background:#eef2f7;border-color:var(--border)}
/* 🔍 Lupe: Bild bildschirmfüllend mit Zoom (Mausrad) und Verschieben (Ziehen) */
.dam-lupe{position:fixed;inset:0;background:rgba(13,18,28,.93);z-index:1700;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:grab}
.dam-lupe.pan{cursor:grabbing}
.dam-lupe-img{max-width:94vw;max-height:92vh;user-select:none;box-shadow:0 8px 40px rgba(0,0,0,.5);background:#fff}
.dam-lupe-bar{position:absolute;top:14px;right:16px;display:flex;gap:6px;align-items:center;background:rgba(255,255,255,.94);border-radius:10px;padding:6px 8px;cursor:default;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.dam-lupe-pct{font-size:.78rem;color:#475569;min-width:44px;text-align:right}
/* Marke entspricht dem Suchbegriff (deshalb ist der Lieferant im Treffer) → gelb statt blau */
.chip.marke-hit{background:#fef3c7;border-color:#fcd34d;color:#92400e}
.chip.marke-hit:hover{background:#fde68a}
.chip.marke-hit .brand-goto{color:#b45309}
.chip-x{cursor:pointer;color:#7d93b8;font-weight:700}
.chip-x:hover{color:var(--danger)}
.chiplet{font-size:.688rem;color:var(--muted);background:#eef2f7;border:1px solid var(--border);border-radius:8px;padding:2px 8px;font-weight:500}
.chiplet.last{background:var(--accent-soft);color:var(--text);border-color:var(--accent);font-weight:600}
.chiplet.type{background:#f1f5fb;color:#42597a;border-color:#e1e9f4}
.qbadge{font-size:.688rem;border-radius:8px;padding:2px 9px;border:1px solid;font-weight:600}
.qbadge.q-good{color:var(--green);background:#ecfdf3;border-color:#bbf7d0}
.qbadge.q-mid{color:var(--amber);background:#fffbeb;border-color:#fde68a}
.qbadge.q-bad{color:var(--danger);background:#fef2f2;border-color:#fecaca}
.type-chips{display:flex;gap:7px;flex-wrap:wrap}
.type-chip{padding:7px 13px;border:1px solid var(--border);background:var(--surface);border-radius:10px;cursor:pointer;font:inherit;font-size:.781rem;font-weight:500;color:var(--muted)}
.type-chip:hover{border-color:#bcd0e6}
.type-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.sup-status{padding:3px 10px;border-radius:8px;font-size:.719rem;border:1px solid var(--border);font-weight:600}
.sup-status.s-on{color:var(--green);border-color:#bbf7d0;background:#ecfdf3}
.sup-status.s-off{color:var(--danger);border-color:#fecaca;background:#fef2f2}
.sup-status.s-wait{color:var(--amber);border-color:#fde68a;background:#fffbeb}
.filter-tag{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px 12px;margin-bottom:12px;font-size:.813rem}

/* Detail-Panel (rechts reinschiebend) */
.panel-overlay{position:fixed;inset:0;background:rgba(15,23,42,.4);opacity:0;pointer-events:none;transition:opacity .2s;z-index:60;backdrop-filter:blur(1px)}
.panel-overlay.open{opacity:1;pointer-events:auto}
.detail-panel{position:fixed;top:0;right:0;height:100vh;width:540px;max-width:94vw;background:var(--surface);box-shadow:-8px 0 40px rgba(15,23,42,.2);transform:translateX(100%);transition:transform .24s cubic-bezier(.4,0,.2,1);z-index:61;display:flex}
.detail-panel.open{transform:translateX(0)}
.panel-inner{display:flex;flex-direction:column;width:100%;height:100%}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border)}
.panel-head h2{margin:0;font-size:1.125rem;font-weight:700}
.panel-body{flex:1;overflow:auto;padding:20px 22px;display:flex;flex-direction:column;gap:14px}
.panel-foot{display:flex;align-items:center;gap:8px;padding:16px 22px;border-top:1px solid var(--border);background:#fafbfd}
.fld{display:flex;flex-direction:column;gap:5px}
.fld label{font-size:.75rem;color:var(--muted);font-weight:600}
.fld input,.fld select,.fld textarea{padding:9px 11px;border:1px solid var(--border);border-radius:10px;font:inherit;width:100%}
.fld textarea{resize:vertical}
.fld-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.search-row{display:flex;gap:8px;align-items:center}
.search-row input{flex:1}
.search-prev{font-size:.75rem;margin-top:6px;word-break:break-all;color:var(--muted)}
.search-prev .tok{background:#fef9c3;color:#854d0e;border-radius:4px;padding:1px 5px;font-weight:700}
.logo-box{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.logo-prev{height:48px;max-width:130px;object-fit:contain;border:1px solid var(--border);border-radius:8px;background:#fff;padding:4px}
.chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px}

/* Ansichts-Umschalter */
.view-bar{display:flex;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.view-switch{display:inline-flex;background:#e9edf3;border-radius:10px;padding:3px}
.vbtn{border:none;background:none;padding:7px 16px;border-radius:8px;cursor:pointer;font:inherit;font-size:.84rem;font-weight:600;color:var(--muted)}
.vbtn.on{background:var(--surface);color:var(--accent);box-shadow:var(--shadow)}
.col-sel{display:inline-flex;align-items:center;gap:6px;font-size:.84rem}
.cbtn{width:30px;height:30px;border:1px solid var(--border);background:var(--surface);border-radius:8px;cursor:pointer;font:inherit;font-weight:600;color:var(--muted)}
.cbtn.on{background:var(--accent);border-color:var(--accent);color:#fff}
.filter-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.filter-ctl{display:flex;flex-direction:column;gap:3px}
.filter-lbl{font-size:.62rem;text-transform:uppercase;letter-spacing:.5px;color:var(--faint);font-weight:700}
.filter-sel{padding:7px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:.82rem;background:var(--surface);cursor:pointer}

/* Kompakt-Ansicht */
.kompakt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:10px}
.kompakt-item{display:flex;align-items:center;gap:9px;padding:9px 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:.12s;overflow:hidden}
.kompakt-item:hover{border-color:#bcd0e6;background:#fafcff}
.ki-logo{height:18px;max-width:34px;object-fit:contain;border-radius:3px}
.ki-dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px}
.ki-dot.s-on{background:var(--green)} .ki-dot.s-off{background:#cbd5e1}
.ki-name{flex:1;font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ki-count{font-size:.7rem;color:var(--muted);background:#eef2f7;border-radius:10px;min-width:20px;text-align:center;padding:1px 6px}
.ki-ind{display:inline-flex;align-items:center;gap:3px;color:var(--faint);flex:0 0 auto}
.ind-ico{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.7;display:block}
.ki-n{font-size:.6rem;font-weight:700}
.line-toggle{margin-top:10px;border:none;background:none;cursor:pointer;font:inherit;font-size:.78rem;font-weight:600;color:var(--muted);padding:2px 0}
.line-toggle:hover{color:var(--text)}

/* Karten-Ansicht (Raster) */
.karten-grid{display:grid;gap:16px}
.karten-grid.cols-2{grid-template-columns:repeat(2,1fr)}
.karten-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.karten-grid.cols-4{grid-template-columns:repeat(4,1fr)}
.mk-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:15px}
.mk-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;cursor:pointer}
.mk-head .an{font-weight:700;font-size:.95rem;flex:1;min-width:0}
.line-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.line-chip{background:#eef2f7;border-color:#e0e6ee;color:#475569}
.mk-add{margin-top:11px;display:flex;gap:8px;flex-wrap:wrap}
.mini-line-add{padding:6px 9px;border:1px dashed #c3d2e6;border-radius:8px;font:inherit;font-size:.8rem;color:var(--accent);background:#f6f9ff;max-width:150px}
.mini-pick{padding:6px 9px;border:1px dashed #c3d2e6;border-radius:8px;font:inherit;font-size:.8rem;color:var(--accent);background:#f6f9ff;cursor:pointer;max-width:100%}

/* Tabelle (Excel) */
.excel-wrap{padding:0;overflow:hidden}
/* Excel-artiger Scroll-Container: horizontal + vertikal scrollbar, Spaltenkopf klebt oben */
.grid-scroll{overflow:auto;max-height:calc(100vh - 16.5rem);border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.grid-scroll .excel-table{table-layout:fixed;border-collapse:collapse}
.grid-scroll .excel-table th{position:sticky;top:0;z-index:3;white-space:nowrap}
.grid-scroll .excel-table th.cb-col{z-index:4}
.grid-scroll .excel-table td{vertical-align:top;overflow:hidden}
/* Inhalt oben ausrichten + vertikale Spaltenlinien (überall in Tabellen) */
.excel-table td,.excel-table th,.utable td,.utable th{vertical-align:top !important;border-right:1px solid var(--border-2)}
.excel-table td:last-child,.excel-table th:last-child,.utable td:last-child,.utable th:last-child{border-right:none}
.excel-table td.ta-center{vertical-align:top !important;padding-top:9px}
.grid-scroll .excel-table .name-in{width:100%;min-width:0;max-width:none}
/* Eingefrorene Spalten: links haften beim horizontalen Scrollen */
.grid-scroll .excel-table td.frozen,.grid-scroll .excel-table th.frozen{position:sticky;background:var(--surface);z-index:2}
.grid-scroll .excel-table th.frozen{z-index:4;background:#f7f9fc}
.grid-scroll .excel-table .fz-cb{left:0}
.grid-scroll .excel-table .fz-name{left:36px;box-shadow:1px 0 0 var(--border)}
.grid-scroll .excel-table tr:hover td.frozen{background:#fafcff}
.grid-scroll .excel-table tr.row-sel td.frozen{background:var(--accent-soft)}
.grid-scroll .excel-table .add-row td.frozen{background:#f7f9fc}
.grid-scroll .excel-table .fz-edge{box-shadow:1px 0 0 var(--border)}
/* Löschen-Spalte rechts festpinnen — der × ist so IMMER sichtbar (kein horizontales Scrollen nötig) */
.grid-scroll .excel-table td.ta-right,.grid-scroll .excel-table th.ta-right{position:sticky;right:0;background:var(--surface);z-index:2;box-shadow:-1px 0 0 var(--border)}
.grid-scroll .excel-table th.ta-right{z-index:4;background:#f7f9fc}
.grid-scroll .excel-table tr:hover td.ta-right{background:#fafcff}
.grid-scroll .excel-table tr.row-sel td.ta-right{background:var(--accent-soft)}
.grid-scroll .excel-table .add-row td.ta-right{background:#f7f9fc}
/* Spaltenkopf mit ▾-Menü — WICHTIG: th bleibt Tabellenzelle (kein display:flex!),
   der Knopf wird absolut positioniert. */
.grid-scroll .excel-table th.col-th{padding-right:24px;overflow:hidden;text-overflow:ellipsis}
.col-th .col-sort{color:var(--accent);font-weight:700;margin-left:3px}
.col-menu-btn{position:absolute;right:3px;top:50%;transform:translateY(-50%);border:none;background:none;cursor:pointer;color:var(--muted);font-size:.7rem;line-height:1;padding:3px 4px;border-radius:5px}
.col-menu-btn:hover{background:var(--border);color:var(--text)}
/* Aufklapp-Menü */
.col-menu{position:fixed;z-index:90;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:6px;min-width:210px;max-width:340px;max-height:60vh;overflow:auto}
.col-menu-item{display:block;width:100%;text-align:left;border:none;background:none;padding:8px 10px;border-radius:7px;font:inherit;font-size:.85rem;cursor:pointer;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.col-menu-item:hover{background:var(--accent-soft)}
.col-menu-item.active{color:var(--accent);font-weight:600}
.col-menu-item.danger:hover{background:#fde8e8;color:#c0392b}
.col-menu-item.disabled{color:var(--muted);cursor:default}
.col-menu-item.disabled:hover{background:none}
.col-menu-head{padding:6px 10px 8px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.col-menu-sep{height:1px;background:var(--border);margin:5px 4px}
/* Produktlinien-Popup (Suchfeld + Chips) */
.col-menu.pop{min-width:300px;max-width:440px;max-height:82vh;overflow:auto}
.bl-note{font-size:.78rem;color:#c0392b;padding:0 4px 6px}
.bl-search{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;margin:2px 0 10px;box-sizing:border-box}
.bl-search:focus{border-color:var(--accent);outline:none}
.bl-chips{display:flex;flex-wrap:wrap;gap:6px;padding:1px}
.bl-chip{cursor:pointer;border:none;font:inherit}
.bl-chip.line-chip:hover{background:var(--accent-soft);color:var(--accent)}
.bl-chip.cat-chip{background:var(--accent-soft);color:var(--accent)}
.bl-chip.cat-chip:hover{background:var(--accent);color:#fff}
.bl-grp{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:12px 2px 6px}
.bl-add{min-width:130px;padding:5px 9px;border:1px dashed var(--border);border-radius:999px;font:inherit;font-size:.8rem;background:none;color:var(--accent)}
.bl-add:focus{border-style:solid;border-color:var(--accent);outline:none}
.bl-chip.dl-chip{background:#eaf7ef;color:#1d7a46}
.bl-chip.dl-chip:hover{background:#1d7a46;color:#fff}
.chip.dl-chip{background:#eaf7ef;color:#1d7a46;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.dl-addrow{display:flex;gap:6px;margin-top:6px}
.dl-addrow .dl-name{flex:0 0 90px;min-width:0;color:var(--text)}
.dl-addrow .dl-url{flex:1;min-width:0;color:var(--text)}
/* Direkt-Links-Editor im Marken-Detail */
.link-rows{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.link-row{display:flex;gap:6px;align-items:center}
.link-row input{flex:1;min-width:0}
.link-row input:first-child{flex:0 0 130px}
.bl-foot{display:flex;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}
.cat-edit{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
/* Ausgeblendete Spalten */
.hidden-cols{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.btn.xs{padding:3px 9px;font-size:.75rem}
/* Schlichte Lupe */
.ic-search{width:16px;height:16px;display:inline-block;vertical-align:middle}
.iconb .ic-search{width:17px;height:17px}
.chiplet .ic-search{width:13px;height:13px;margin-right:4px}
.direkt-ic{color:var(--muted);display:flex;align-items:center}
.direkt-ic .ic-search{width:18px;height:18px}
/* Fortschritt: wie weit ausgefüllt */
.compl{display:flex;align-items:center;gap:8px;margin:10px 0 4px}
.compl-track{flex:1;height:6px;background:var(--border-2);border-radius:99px;overflow:hidden}
.compl-fill{height:100%;border-radius:99px;background:var(--accent);transition:width .2s}
.compl-fill.low{background:#e0526b}
.compl-fill.mid{background:#e0a23a}
.compl-fill.high{background:#2bb673}
.compl-pct{font-size:.72rem;color:var(--muted);font-weight:700;min-width:30px;text-align:right;font-variant-numeric:tabular-nums}
.compl-mini{width:44px;height:5px;background:var(--border-2);border-radius:99px;overflow:hidden;flex:none}
/* %-Spalte vorne in den Tabellen */
.compl-num{font-weight:700;font-size:.78rem;font-variant-numeric:tabular-nums}
.compl-num.low{color:#e0526b}
.compl-num.mid{color:#d98a1f}
.compl-num.high{color:#1d9e63}
.grid-scroll .excel-table th.compl-col,.grid-scroll .excel-table td.compl-col{text-align:center;padding-left:4px;padding-right:4px}
/* Marken-Zelle: viele Chips -> innerhalb der Zelle scrollen, Zeile bleibt kompakt */
.grid-scroll .cell-flex{max-height:92px;overflow:auto;align-content:flex-start}
.excel-table{width:100%;border-collapse:collapse}
.excel-table th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:700;padding:11px 14px;border-bottom:1px solid var(--border);background:#f7f9fc}
.excel-table td{padding:7px 14px;border-bottom:1px solid var(--border-2);vertical-align:middle}
.excel-table tr:hover td{background:#fafcff}
.excel-table input{width:100%;padding:7px 9px;border:1px solid transparent;border-radius:8px;font:inherit;background:none}
/* Name/Code wachsen dynamisch mit dem Inhalt (size-Attribut), statt abzuschneiden */
.excel-table .name-in{width:auto;min-width:150px;max-width:520px;font-weight:600}
.excel-table .code-in{width:auto;min-width:80px;max-width:240px}
.excel-table input:hover{border-color:var(--border)}
.excel-table input:focus{border-color:var(--accent);background:var(--surface)}
.excel-table td{vertical-align:top}
.cell-flex{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.excel-table td:first-child,.excel-table td:nth-child(2){vertical-align:middle}
.excel-table .add-row td{background:#f7f9fc}
.cb-col{width:36px;text-align:center}
.excel-table tr.row-sel td{background:var(--accent-soft)}
.cell-add{min-width:100px;border-style:dashed !important;color:var(--accent)}
/* Massen-Leiste */
.bulk-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;margin-bottom:10px;border:1px solid var(--border);border-radius:10px;background:var(--accent-soft);color:var(--text)}
.bulk-bar.empty{background:var(--surface);color:var(--muted);font-size:.82rem}
.bulk-bar .spacer{flex:1}
.bulk-count{font-weight:700;font-size:.85rem;white-space:nowrap;color:var(--accent)}
.bulk-in{padding:6px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:.82rem;background:var(--surface);color:var(--text);max-width:170px}

/* z-index 2000: Rückmeldungen müssen ÜBER allen Fenstern liegen (Ernten-Panel, Vorschau, Menüs) — sonst unsichtbar */
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(80px);background:#0f172a;color:#fff;padding:12px 18px;border-radius:12px;opacity:0;transition:.25s;z-index:2000;font-size:.844rem;box-shadow:var(--shadow-lg)}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1}
.toast-undo{margin-left:14px;background:none;border:none;color:#7dd3fc;font:inherit;font-weight:700;cursor:pointer;padding:0}
.toast-undo:hover{color:#bae6fd;text-decoration:underline}

/* ===== Einheiten-Modul ===== */
.u-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(max-width:1100px){.u-grid{grid-template-columns:1fr}}
.u-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.u-card:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.u-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.u-icon{width:34px;height:34px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--accent-soft);color:var(--accent)}
.u-icon .u-ico{width:20px;height:20px}
.u-icon-img{width:24px;height:24px;object-fit:contain;border-radius:5px}
.u-ico{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.u-title{flex:1;min-width:0}
.u-name{font-weight:700;font-size:1rem}
.u-count{font-size:.78rem}
.u-base{flex:none;font-size:.72rem;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:3px 9px;border-radius:999px;white-space:nowrap}
.u-chips{display:flex;flex-wrap:wrap;gap:6px}
.u-chip{display:inline-flex;align-items:center;gap:5px;background:#f3f5f9;border:1px solid var(--border-2);border-radius:8px;padding:4px 9px;font-size:.82rem}
.u-chip.base{background:var(--accent-soft);border-color:transparent}
.u-chip b{font-weight:700}
.u-uname{font-size:.76rem}
.u-fac-b{font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}

/* Modal-Dialog */
.modal-ov{position:fixed;inset:0;z-index:120;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:24px}
.modal-box{background:var(--surface);border-radius:16px;box-shadow:0 24px 60px rgba(15,23,42,.3);width:100%;max-width:680px;max-height:90vh;overflow:auto}
.unit-edit{padding:26px 28px}
.unit-edit h2{margin:0 0 18px;font-size:1.25rem}
.ue-lbl{display:block;font-size:.8rem;font-weight:600;color:var(--muted);margin:14px 0 6px}
.unit-edit > input[type=text]{width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:9px;font:inherit;box-sizing:border-box}
.unit-edit > input[type=text]:focus{border-color:var(--accent);outline:none}
.icon-grid{display:flex;flex-wrap:wrap;gap:8px}
.icon-btn{width:42px;height:42px;border:1px solid var(--border);border-radius:9px;background:var(--surface);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text);padding:0}
.icon-btn:hover{border-color:var(--accent)}
.icon-btn.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.icon-btn .u-ico{width:22px;height:22px}
.icon-btn .u-cust{width:26px;height:26px;object-fit:contain}
.icon-up{font-size:1.4rem;color:var(--accent);border-style:dashed}
.unit-head{display:grid;grid-template-columns:1fr 130px 130px 28px;gap:8px;margin:16px 0 6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.unit-rows{display:flex;flex-direction:column;gap:8px}
.unit-row{display:grid;grid-template-columns:1fr 130px 130px 28px;gap:8px;align-items:center}
.unit-row input{padding:9px 11px;border:1px solid var(--border);border-radius:8px;font:inherit;width:100%;box-sizing:border-box}
.unit-row input:focus{border-color:var(--accent);outline:none}
.ue-foot{display:flex;align-items:center;gap:10px;margin-top:22px;padding-top:16px;border-top:1px solid var(--border)}

/* ===== Werte-Modul ===== */
.list-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:4px}
.lchip{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:5px 13px;font:inherit;font-size:.8rem;cursor:pointer;color:var(--text)}
.lchip:hover{border-color:var(--accent)}
.lchip.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.val-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:1300px){.val-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.val-grid{grid-template-columns:1fr}}
.val-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.val-card:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.val-head{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.val-name{font-weight:700;font-size:.95rem}
.val-parent{font-size:.72rem;color:var(--muted)}
.val-list{flex:none;font-size:.7rem;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:2px 9px;border-radius:999px;white-space:nowrap}
.val-syns{display:flex;flex-wrap:wrap;gap:5px}
.syn-chip{display:inline-flex;align-items:center;gap:5px;background:#f3f5f9;border:1px solid var(--border-2);border-radius:8px;padding:3px 9px;font-size:.8rem}
.syn-lang{font-size:.6rem;font-weight:800;letter-spacing:.4px;color:#fff;background:var(--accent);border-radius:4px;padding:1px 4px}
/* Werte-Editor */
.val-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.val-grid2 select,.val-grid2 input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:9px;font:inherit;box-sizing:border-box;margin-top:0}
.val-grid2 input{margin-top:6px}
.unit-edit select{padding:10px 12px;border:1px solid var(--border);border-radius:9px;font:inherit}
.syn-rows{display:flex;flex-direction:column;gap:7px}
.syn-row{display:grid;grid-template-columns:1fr 80px 28px;gap:8px;align-items:center}
.syn-row input{padding:9px 11px;border:1px solid var(--border);border-radius:8px;font:inherit;width:100%;box-sizing:border-box}
.syn-lang-sel{padding:9px 6px;border:1px solid var(--border);border-radius:8px;font:inherit}
.syn-tools{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}

/* ---- Werte: Zwei-Spalten (Listen links, Werte rechts) ---- */
.val-layout{display:flex;align-items:flex-start;gap:0}
.val-lists{flex:0 0 290px;align-self:stretch;border-right:1px solid var(--border);padding-right:14px;position:sticky;top:0;max-height:calc(100vh - 40px);overflow:auto}
.vl-head{display:flex;align-items:center;justify-content:space-between;padding:2px 8px 12px;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--faint)}
.vl-head .iconb{font-size:1.1rem;font-weight:700}
.vl-such{display:block;width:100%;min-width:0;box-sizing:border-box;margin:0 0 10px;padding:8px 11px;font-size:.84rem}/* Listen-Sucher in der linken Spalte (08.09.) */
.vl-items{display:flex;flex-direction:column;gap:2px}
.vl-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;background:none;border-radius:9px;cursor:pointer;font:inherit;text-align:left;color:var(--text)}
.vl-item:hover{background:var(--accent-soft)}
.vl-item.on{background:var(--accent);color:#fff}
.vl-item .vl-name{flex:1;min-width:0;font-weight:600;font-size:.86rem;white-space:normal;overflow-wrap:anywhere;line-height:1.2}/* umbrechen statt „…" (ihr Wunsch 08.09.) */
.vl-item .vl-count{flex:none;font-size:.68rem;font-weight:700;background:#eef2f7;color:var(--muted);border-radius:999px;padding:1px 8px}
.vl-item.on .vl-count{background:rgba(255,255,255,.25);color:#fff}
.vl-item .vl-acts{display:flex;gap:0;flex:none;visibility:hidden}/* Platz bleibt reserviert — die Zahl rutscht beim Drüberfahren nicht mehr (08.09.) */
.vl-item .vl-acts .iconb{padding:3px 4px;font-size:.8rem}
.vl-item:hover .vl-acts{visibility:visible}
.vl-item.on .vl-acts .iconb{color:rgba(255,255,255,.85)}
.vl-item.on .vl-acts .iconb:hover{background:rgba(255,255,255,.2);color:#fff}
.val-main{flex:1;min-width:0;padding-left:26px}
.val-main .page-head{margin-top:0}
@media(max-width:900px){.val-layout{flex-direction:column}.val-lists{flex:none;width:100%;border-right:none;border-bottom:1px solid var(--border);position:static;max-height:none;padding:0 0 12px;margin-bottom:14px}.vl-items{flex-direction:row;flex-wrap:wrap}.vl-item{width:auto}.val-main{padding-left:0}}

/* ---- Werte-Editor: Synonyme als Token in Sprach-Spuren ---- */
.syn-lanes{display:flex;flex-direction:column;gap:7px}
.syn-lane{display:flex;align-items:flex-start;gap:10px;padding:7px 9px;border:1px solid var(--border);border-radius:10px;background:var(--surface);transition:border-color .12s,background .12s}
.syn-lane.lane-none{background:#f7f9fc}
.syn-lane.drop{border-color:var(--accent);border-style:dashed;background:var(--accent-soft)}
.lane-code{flex:0 0 34px;text-align:center;font-size:.72rem;font-weight:800;color:var(--accent);padding-top:7px;letter-spacing:.5px}
.syn-lane.lane-none .lane-code{color:var(--faint)}
.lane-chips{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.lane-in{flex:1;min-width:110px;border:none;background:none;font:inherit;font-size:.86rem;padding:5px 4px;outline:none;color:var(--text)}
.lane-in::placeholder{color:var(--faint)}
.syn-token{display:inline-flex;align-items:center;gap:5px;background:var(--accent-soft);color:var(--accent);border:1px solid #cfe0f2;border-radius:8px;padding:3px 6px 3px 5px;font-size:.84rem;cursor:grab;user-select:none}
.syn-token:active{cursor:grabbing}
.syn-token.dragging{opacity:.45}
.syn-lane.lane-none .syn-token{background:#eef1f5;color:#4a5a6e;border-color:var(--border)}
.tok-grip{color:var(--faint);font-size:.7rem;line-height:1;cursor:grab}
.tok-text{font-weight:500}
.tok-x{border:none;background:none;cursor:pointer;color:inherit;opacity:.65;font-size:.95rem;line-height:1;padding:0 1px;border-radius:5px}
.tok-x:hover{opacity:1;background:rgba(0,0,0,.07)}

/* ---- Einstellungen: Sprachen ---- */
.lang-list{display:flex;flex-direction:column;gap:8px}
.lang-row{display:flex;align-items:center;gap:10px}
.lang-badge{flex:0 0 38px;text-align:center;font-size:.72rem;font-weight:800;color:var(--accent);background:var(--accent-soft);border-radius:7px;padding:5px 0}
.lang-code{flex:0 0 90px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;text-transform:lowercase}
.lang-label{flex:1;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit}
.lang-tools{flex:0 0 auto;display:flex;gap:2px}
.lang-tools .iconb:disabled{opacity:.3;cursor:default}
.lang-foot{display:flex;align-items:center;gap:10px;margin-top:14px}

/* ---- Werte-Editor: Unterwerte + Lieferant ---- */
.sub-box{margin-bottom:6px}
.sub-list{display:flex;flex-direction:column;gap:5px;border:1px solid var(--border);border-radius:10px;padding:8px}
.sub-row{display:flex;align-items:center;gap:8px;padding:5px 7px;border-radius:8px}
.sub-row:hover{background:#f7f9fc}
.sub-name{font-weight:600;font-size:.88rem;cursor:pointer;color:var(--accent)}
.sub-name:hover{text-decoration:underline}
.sub-sup{font-size:.7rem;font-weight:600;color:#4a5a6e;background:#eef1f5;border:1px solid var(--border);border-radius:999px;padding:1px 8px}
.sub-add{display:flex;align-items:center;gap:7px;margin-top:4px;padding-top:8px;border-top:1px dashed var(--border)}
.sub-in{flex:1;min-width:120px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit}
.sub-sup-sel{flex:0 0 auto;padding:8px 8px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:.82rem;max-width:170px}
.chiplet.sub{background:var(--accent-soft);color:var(--accent);border-color:#cfe0f2}
.chiplet.sup{background:#eef1f5;color:#4a5a6e}

/* ---- Lieferant: „Alle Produktlinien"-Sammelchip ---- */
.chip.alllines-chip{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600;cursor:pointer}
.chip.alllines-chip:hover{filter:brightness(1.07)}

/* ---- Werte-Tabelle: Mehrfach-Auswahl, Drag-Griff, Sammel-Leiste ---- */
.excel-table th.fz-check,.excel-table td.fz-check{padding:0;text-align:center;background:var(--surface)}
.excel-table td.fz-check{cursor:grab}
.excel-table td.fz-check:active{cursor:grabbing}
.fz-check{white-space:nowrap}
.row-grip{color:var(--faint);font-size:.7rem;margin-right:2px;vertical-align:middle;cursor:grab}
.excel-table tr.sel td{background:#eaf2fc !important}
.excel-table tr.sel td.frozen{background:#eaf2fc !important}
.vl-item.drop{outline:2px dashed var(--accent);outline-offset:-2px;background:var(--accent-soft)}

/* ---- Wertelisten-Regel: aktives Zahnrad + Pflicht-Eltern-Markierung ---- */
.vl-item .vl-acts .iconb.on{color:var(--accent)}
.vl-item.on .vl-acts .iconb.on{color:#fff;background:rgba(255,255,255,.18)}
.unit-edit select.required{border-color:var(--accent);background:var(--accent-soft)}

/* ---- Verknüpfte Wertelisten: Markierung + Beschreibung ---- */
.vl-item .vl-link{flex:none;font-size:.74rem;opacity:.8;margin-left:-2px}
.vl-item.linked .vl-name{font-weight:600}
.link-banner{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin:-4px 0 14px;padding:9px 13px;background:var(--accent-soft);border:1px solid #cfe0f2;border-radius:10px;font-size:.85rem;color:#2c3e52}
.lb-item{display:inline-flex;align-items:center;gap:5px}
.lb-ic{font-size:.85rem}
.lb-link{color:var(--accent);font-weight:600;text-decoration:none}
.lb-link:hover{text-decoration:underline}

/* ---- Werte: verknüpfte Marken + Lieferanten (Tag-Felder + Chiplets) ---- */
.tag-field{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:7px 8px;border:1px solid var(--border);border-radius:9px;background:var(--surface);min-height:42px;box-sizing:border-box;margin-top:6px}
.tag-chip{display:inline-flex;align-items:center;gap:5px;background:var(--accent-soft);color:var(--accent);border:1px solid #cfe0f2;border-radius:8px;padding:3px 6px 3px 9px;font-size:.84rem;font-weight:500}
.tag-x{border:none;background:none;cursor:pointer;color:inherit;opacity:.65;font-size:.95rem;line-height:1;padding:0 1px;border-radius:5px}
.tag-x:hover{opacity:1;background:rgba(0,0,0,.08)}
.tag-add{flex:1;min-width:130px;border:none;background:none;font:inherit;font-size:.84rem;color:var(--muted);outline:none;cursor:pointer}
.chiplet.brand{background:#eef4ec;color:#3f6b46;border-color:#d6e6d2}
.chiplet.sup{background:#eef1f5;color:#4a5a6e}

/* ---- Export-Dialog: Listenauswahl ---- */
.exp-all{display:flex;align-items:center;gap:8px;font-size:.95rem;margin:6px 0 2px}
/* Attribut-Sichtbarkeit (Matrix) */
.vis-matrix{display:flex;flex-wrap:wrap;gap:7px 16px;padding:8px 10px;background:#f7f9fc;border:1px solid var(--border);border-radius:9px}
.vis-item{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;cursor:pointer}
.vis-item input{accent-color:var(--accent);cursor:pointer}
.export-lists{display:flex;flex-direction:column;gap:2px;max-height:300px;overflow:auto;border:1px solid var(--border);border-radius:9px;padding:6px}
.exp-row{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:7px;cursor:pointer}
.exp-row:hover{background:#f7f9fc}
.exp-name{flex:1;font-size:.88rem}
.exp-count{font-size:.74rem}
/* Attribut-Auswahl mit Reihenfolge (Matrix-Export) */
.exp-picker{margin:2px 0 14px}
.exp-picker-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.exp-attr-list{display:flex;flex-direction:column;gap:2px;max-height:240px;overflow:auto;border:1px solid var(--border);border-radius:9px;padding:6px}
.exp-arow{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:7px;background:#f7f9fc;border:1px solid transparent;cursor:grab}
.exp-arow:active{cursor:grabbing}
.exp-arow.dragging{opacity:.4}
.exp-arow.drag-over{border-color:var(--accent);box-shadow:0 -2px 0 -1px var(--accent) inset}
.exp-arow .ord-grip{color:#b6c2d1;font-size:.8rem;letter-spacing:-1px;user-select:none}
.exp-arow input[type=checkbox]{accent-color:var(--accent);cursor:pointer}

/* ---- Einstellungen: Bilder (Login-Hintergrund) ---- */
.login-bg-prev{margin:8px 0 12px;max-width:360px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#f7f9fc;min-height:80px;display:flex;align-items:center;justify-content:center}
.login-bg-prev img{display:block;width:100%;max-height:140px;object-fit:cover}
.imgbtns{display:flex;align-items:center;gap:10px}

/* ---- Einstellungen: Bilder-Galerie ---- */
.img-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin:8px 0}
.img-tile{position:relative;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#f7f9fc;aspect-ratio:1/1}
.img-tile img{width:100%;height:100%;object-fit:cover;display:block}
.img-del{position:absolute;top:4px;right:4px;width:24px;height:24px;border:none;border-radius:7px;background:rgba(15,23,42,.6);color:#fff;cursor:pointer;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;opacity:0;transition:.12s}
.img-tile:hover .img-del{opacity:1}
.img-del:hover{background:var(--danger)}

/* ---- Attribute-Modul ---- */
.attr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.attr-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:13px 15px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.attr-card:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.attr-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.attr-name{font-weight:600;font-size:.95rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attr-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.attr-type{font-size:.7rem;font-weight:700;color:var(--accent);background:var(--accent-soft);border:1px solid #cfe0f2;border-radius:999px;padding:2px 10px}
.attr-del{position:absolute;top:8px;right:8px;opacity:0;transition:.12s}
.attr-card:hover .attr-del{opacity:1}

/* ---- Attribut: technischer Code ---- */
.attr-code{display:inline-block;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.72rem;color:#5f6b7a;background:#f1f5f9;border:1px solid var(--border);border-radius:6px;padding:1px 7px;margin-bottom:8px}
.unit-edit input.mono{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.2px}

/* ---- Kategorie ↔ Attribut Zuordnung (Panel) ---- */
.cat-attr-panel{padding:20px 22px}
.cat-attr-panel .panel-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}
.cat-attr-panel .panel-head h2{margin:2px 0 0;font-size:1.15rem}
.cat-attr-panel .set-sub{margin:16px 0 8px}
.attr-chips{display:flex;flex-wrap:wrap;gap:7px}
.attr-chip{display:inline-flex;align-items:center;gap:6px;background:var(--accent-soft);color:var(--accent);border:1px solid #cfe0f2;border-radius:8px;padding:4px 8px 4px 11px;font-size:.84rem;font-weight:500}
.attr-chip.inherited{background:#f1f5f9;color:#5f6b7a;border-color:var(--border)}
.attr-chip .chip-src{font-size:.7rem;color:var(--faint);font-weight:400}
.attr-chip .chip-x{border:none;background:none;cursor:pointer;color:inherit;opacity:.6;font-size:.95rem;line-height:1;padding:0 1px;border-radius:5px}
.attr-chip .chip-x:hover{opacity:1;background:rgba(0,0,0,.08)}

/* ---- Lieferanten Kompakt: Logo + Direkt-Links (Website/Portal/Suche) ---- */
.kompakt-item .ki-logo{height:22px;max-width:46px;object-fit:contain;border-radius:4px;flex:none;background:#fff}
.ki-links{display:inline-flex;align-items:center;gap:2px;flex:none}
.ki-ic{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;text-decoration:none;font-size:.95rem;color:var(--faint);cursor:pointer;border:none;background:none}
.ki-ic:hover{background:#eef2f7;color:var(--text)}
.ki-links .iconb{color:var(--faint)}
.ki-links .iconb:hover{color:var(--accent)}

/* ---- Einheitliche einfarbige Linien-Icons (schlicht) ---- */
.ico{display:inline-flex;align-items:center;justify-content:center;color:inherit}
.ico svg{width:16px;height:16px;display:block}
.btn .ico svg{width:15px;height:15px}
.chip .ico svg,.chiplet .ico svg,.bl-grp .ico svg,.lb-ic svg{width:13px;height:13px}
.ki-ic .ico svg{width:16px;height:16px}
.vl-link.ico svg{width:13px;height:13px}

/* ---- Icon + Text Ausrichtung (Chips, Meta-Links) ---- */
.brand-chip,.alllines-chip{display:inline-flex;align-items:center;gap:5px}
.bl-grp{display:flex;align-items:center;gap:5px}
.sup-meta .meta-link{display:inline-flex;align-items:center;gap:5px}
.chiplet .ico{margin-right:2px}

/* ---- Attribut → Kategorie-Zuordnung ---- */
.attr-cats{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.cat-tag{display:inline-flex;align-items:center;font-size:.7rem;font-weight:600;color:#3f5878;background:#eef3f9;border:1px solid #dde6f0;border-radius:6px;padding:2px 7px;line-height:1.3}
.attr-cats-none{font-size:.72rem;color:var(--faint);font-style:italic}
.cat-count{flex:none;font-size:.68rem;font-weight:600;color:#3f5878;background:#eef3f9;border:1px solid #dde6f0;border-radius:6px;padding:2px 6px;cursor:default}

/* ---- Produkte ---- */
.prod-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;cursor:pointer}
.prod-row:hover{background:var(--accent-soft)}
.prod-name{font-weight:600}
.prod-cat{font-size:.82rem}
.prod-vals{font-size:.72rem;color:var(--muted);background:#eef2f7;border-radius:8px;padding:2px 8px;flex:none}
.pf-title{font-weight:700;margin:16px 0 8px;padding-top:12px;border-top:1px solid var(--border)}
.prod-fields{display:flex;flex-direction:column}
.pf-field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.pf-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}
.pf-lbl{flex:0 0 118px;font-size:.8rem;display:flex;align-items:center;gap:3px;overflow:hidden}
.pf-lbl>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-ctrl{flex:1;min-width:0;display:flex;align-items:center;gap:6px}
.pf-ctrl input,.pf-ctrl select{flex:1;min-width:0}
.pf-ctrl .pf-num{flex:0 1 130px}
.pf-head{display:flex;align-items:center;gap:6px;font-weight:700;font-size:.82rem;color:var(--muted);margin:6px 0 4px}
/* Feld-Farben: geerbt/BP = blau · eigen = grün · Pflichtfeld leer = rot · gesperrt = gestrichelt */
.pf-ctrl input.bp,.pf-ctrl select.bp{color:var(--text);background:rgba(47,109,176,.13);border-color:#9bbfe0!important}
.pf-ctrl input.own,.pf-ctrl select.own{background:rgba(46,139,87,.13);border-color:#7bbf9a!important}
/* Layout-Modus (Admin/Power): feines Quadrat-Raster wie in Access, Felder/Gruppen ziehbar */
.prod-fields.layout-on{
  background-image:linear-gradient(to right, rgba(112,137,196,.14) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(112,137,196,.14) 1px, transparent 1px);
  background-size:20px 20px;
  border:1px dashed var(--accent);border-radius:10px;padding:10px}
.lay-badge{font-size:.7rem;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:2px 10px;margin-left:10px}
.layout-on .lay-drag{cursor:grab}
.layout-on .lay-drag.dragging{opacity:.4}
.layout-on .pf-row.lay-drag{border:1px dashed transparent;border-radius:8px;padding:2px 4px}
.layout-on .pf-row.lay-drag:hover{border-color:var(--accent);background:rgba(255,255,255,.55)}
.lay-over{box-shadow:inset 0 3px 0 var(--accent) !important;background:var(--accent-soft) !important}
.lay-end{margin-top:8px;padding:8px;border:1px dashed var(--border);border-radius:8px;text-align:center;font-size:.75rem;color:var(--muted);flex:1 1 100%}
.lay-toolbar{display:flex;align-items:center;gap:10px;margin:6px 0 10px;flex-wrap:wrap}
.lay-tools{position:absolute;top:-8px;right:-4px;display:flex;gap:3px;z-index:5}
.lay-tb{width:22px;height:22px;border-radius:50%;border:1px solid var(--border);background:var(--surface);font-size:.7rem;line-height:1;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.15);display:inline-flex;align-items:center;justify-content:center;padding:0}
.lay-tb:hover{border-color:var(--accent);background:var(--accent-soft)}
.lay-tb.del{color:#b91c1c}
.lay-tb.del:hover{border-color:#b91c1c;background:#fdeaea}
.lock-banner{display:flex;align-items:center;margin:8px 12px;padding:10px 14px;border-radius:10px;background:#fdf3e0;border:1px solid #f3e2c0;color:#8a5a00;font-size:.85rem;font-weight:600}
/* Token-Ansicht im Layout-Modus: kompakte Chips wie im Kategorien-Reiter */
.lay-token{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:.8rem;font-weight:600;flex:0 0 auto;position:relative;cursor:grab;
  border:1px solid color-mix(in srgb, var(--gc) 55%, var(--border));background:color-mix(in srgb, var(--gc) 10%, var(--surface));color:var(--text)}
.lay-token-dot{width:8px;height:8px;border-radius:50%;background:var(--gc);flex:none}
.lay-token .lay-tools{top:-10px;right:-8px}
/* Kopf-Felder (Artikelname / Nr / Kategorie) als Fliess-Layout — global einstellbar */
.pf-headflds{display:flex;flex-flow:row wrap;gap:8px 14px;align-items:flex-start;margin-top:2px}
.pf-headflds .phf{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:2px}
.pf-headflds .phf-name{flex:1 1 100%}
.pf-headflds.layout-on{background-image:linear-gradient(to right, rgba(112,137,196,.14) 1px, transparent 1px),linear-gradient(to bottom, rgba(112,137,196,.14) 1px, transparent 1px);background-size:20px 20px;border:1px dashed var(--accent);border-radius:10px;padding:8px}
.phf-grip{position:absolute;right:-5px;top:20px;bottom:2px;min-height:0}
/* Feldbreiten-Griff: rechts am Feld ziehen (pro Merkmal gespeichert) · Doppelklick = automatisch */
.pf-resize{flex:none;width:7px;align-self:stretch;min-height:26px;cursor:ew-resize;border-radius:4px;background:transparent;margin-left:2px;position:relative}
.pf-resize::before{content:'';position:absolute;left:2px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-left:1px solid var(--border);border-right:1px solid var(--border);opacity:.6}
.pf-resize:hover{background:var(--accent-soft)}
.pf-resize:hover::before{border-color:var(--accent);opacity:1}
/* Pflichtfeld leer: roter Hauch (95% transparent) — gewinnt auch gegen das Neo-Theme */
.pf-ctrl input.req-empty,.pf-ctrl select.req-empty,.pf-ctrl .rte-area.req-empty{background:rgba(214,69,69,.05)!important;border-color:#d64545!important}
.pf-ctrl input.celllock{cursor:not-allowed;border-style:dashed;opacity:.9}
.req-star{color:#d64545;font-weight:700;margin-left:1px}
.req-warn{color:#d64545;font-size:.72rem;font-weight:700;margin-left:6px}
.lock-ic{margin-left:3px;font-size:.7rem;opacity:.6}
/* Kopf */
.prod-big{display:flex;gap:14px;align-items:flex-start;margin-bottom:6px}
.prod-big-img{width:88px;height:88px;border-radius:12px;object-fit:contain;border:none;background:#f7f9fc;flex:0 0 88px;cursor:pointer}
.prod-big-img.ph{display:flex;align-items:center;justify-content:center;color:var(--faint);background:var(--accent-soft);font-size:.72rem;text-align:center}
.prod-big-img.inh{opacity:.5}
.pf-mini{display:block;font-size:.66rem;color:var(--faint);font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin:8px 0 3px}
.prod-name2{width:100%;font-size:1.02rem;font-weight:700;padding:8px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);box-sizing:border-box}
.prod-name2:focus{outline:none;border-color:var(--accent)}
.prod-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:2px}
.prod-meta>div{flex:1;min-width:140px}
.prod-meta input{width:100%;padding:7px 9px;border:1px solid var(--border);border-radius:8px;font:inherit;box-sizing:border-box}
.cat-pick-btn{width:100%;text-align:left;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font:inherit;color:var(--text);box-sizing:border-box}
.cat-pick-btn.empty{color:var(--faint)}
/* Fortschritt */
.prod-prog{display:flex;align-items:center;gap:8px;margin:8px 0 2px;font-size:.72rem;color:var(--faint)}
.prod-prog .bar{flex:1;height:7px;border-radius:99px;background:var(--accent-soft);overflow:hidden}
.prod-prog .fill{height:100%;background:var(--accent);border-radius:99px;transition:width .15s}
.prod-prog .fill.full{background:#2e8b57}
/* Liste: Mini-Bild */
.prod-thumb{width:var(--thumb-size);height:var(--thumb-size);border-radius:7px;object-fit:contain;border:none;background:#f7f9fc;flex:0 0 var(--thumb-size)}
.prod-thumb.sm{width:calc(var(--thumb-size) - 4px);height:calc(var(--thumb-size) - 4px);flex:0 0 calc(var(--thumb-size) - 4px)}
.prod-thumb.ph{display:flex;align-items:center;justify-content:center;background:#eef2f7}
.prod-thumb.ph svg{width:17px;height:17px;stroke:var(--faint);fill:none;stroke-width:1.6}
.pf-name{font-weight:600;font-size:.86rem}
.pf-req{color:#c0392b;font-weight:700}
.pf-inh{font-size:.72rem}
.pf-row input[type=text],.pf-row input[type=number],.pf-row input[type=date],.pf-row select,.pf-field input,.pf-field select{padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;box-sizing:border-box;width:100%}
.pf-row input:focus,.pf-field input:focus,.pf-field select:focus,.pf-row select:focus{border-color:var(--accent);outline:none}
.pf-numwrap,.pf-range{display:flex;align-items:center;gap:8px}
.pf-num{max-width:150px}
.pf-unit{font-size:.82rem;color:var(--muted);flex:none}
.pf-bool{display:inline-flex;align-items:center;gap:7px;font-size:.88rem;cursor:pointer}
.pf-multi{display:flex;flex-wrap:wrap;gap:6px 14px}
.pf-multi-item{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer}
.pf-comb-wrap{display:flex;align-items:center;gap:10px}
.pf-comb{font-weight:700;background:#eef3f9;border:1px solid #dde6f0;border-radius:8px;padding:6px 12px;color:#2b3a52}

/* ---- Attribut-Sichtbarkeit: kompakte Kontext-Icons ---- */
.vis-strip{display:inline-flex;align-items:center;gap:4px;flex:none}
.vico{width:13px;height:13px;display:inline-flex;align-items:center;justify-content:center;color:#ccd5e0;cursor:default;transition:color .1s}
.vico svg{width:13px;height:13px;display:block}
.vico.on{color:var(--accent)}
.attr-vis{display:flex;align-items:center;gap:7px;margin-top:8px}
.attr-vis .vis-lbl{font-size:.7rem;font-weight:600;color:var(--muted)}
.kompakt-item .vis-strip{margin-right:2px}
/* Legende: Icon = Kontext */
.vis-legend{display:flex;flex-wrap:wrap;align-items:center;gap:5px 14px;margin:2px 0 12px;padding:6px 12px;background:var(--surface);border:1px solid var(--border);border-radius:9px;font-size:.72rem;color:var(--muted)}
.vis-legend .vlg-lbl{font-weight:700;color:var(--text)}
.vis-legend .vlg-item{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.vis-legend .vlg-item.clickable{cursor:pointer;padding:3px 8px;border-radius:7px;border:1px solid transparent;transition:.1s}
.vis-legend .vlg-item.clickable:hover{background:var(--accent-soft);border-color:#cfe0f4}
.vis-legend .vlg-item.on{background:var(--accent);border-color:var(--accent);color:#fff}
.vis-legend .vlg-item.on .vico{color:#fff}
.vis-legend .vlg-item.off{background:#f0b429;border-color:#e0a91f;color:#3a2c05}
.vis-legend .vlg-item.off .vico{color:#3a2c05}
.vis-legend .vlg-status{font-weight:700;color:var(--accent)}
.vis-legend .vlg-status.off{color:#b7791f}
.vis-legend .vlg-reset{border:1px solid var(--border);background:var(--surface);cursor:pointer;font:inherit;font-size:.9rem;font-weight:700;color:var(--muted);border-radius:50%;width:22px;height:22px;line-height:1;padding:0}
.vis-legend .vlg-reset:hover{background:#fdeaea;color:#c0392b;border-color:#f2c4c4}
.vis-legend .vico{width:12px;height:12px}
.vis-cat-matrix .vc-h{padding-bottom:7px}
.vis-cat-matrix .vc-h .vico{color:var(--muted)}

/* ---- Sichtbarkeit-Matrix (je Katalog) + Katalog-Verwaltung ---- */
.vis-cat-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:9px;padding:6px}
.vis-cat-matrix{border-collapse:collapse;font-size:.8rem;width:100%}
.vis-cat-matrix th,.vis-cat-matrix td{padding:6px 10px;text-align:center}
.vis-cat-matrix .vc-lbl{text-align:left;font-weight:600;white-space:nowrap;padding-right:18px}
.vis-cat-matrix .vc-lbl .vico{margin-right:7px;vertical-align:-2px;color:var(--accent)}
.vis-cat-matrix .vc-colh,.vis-cat-matrix .vc-ctxh{font-weight:700;color:var(--muted);font-size:.74rem;white-space:nowrap;border-bottom:1px solid var(--border);padding-bottom:7px}
.vis-cat-matrix .vc-ctxh{text-align:left}
.vis-cat-matrix tr:nth-child(even){background:#f7f9fc}
.vis-cat-matrix input{accent-color:var(--accent);cursor:pointer}
.cat-manage{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow:auto}
.cat-manage-row{display:flex;align-items:center;gap:8px;padding:7px 10px;background:#f7f9fc;border:1px solid var(--border);border-radius:8px}
.cat-manage-name{font-weight:600}

.cat-ctl-row{display:flex;align-items:center;gap:4px}

/* ---- Produkte: BP → Varianten ---- */
.prod-row.bp{font-weight:600}
.prod-row.bp .tog{width:16px;flex:none;text-align:center;color:var(--faint);cursor:pointer;user-select:none}
.prod-row.bp .tog.leaf{cursor:default;color:#cbd5e1}
.prod-row.variant{padding-left:34px;background:#fafcff}
.prod-row .var-mark{color:var(--faint);flex:none}
.prod-varc{font-size:.72rem;color:#3f5878;background:#eef3f9;border:1px solid #dde6f0;border-radius:8px;padding:2px 8px;flex:none}
.var-of{font-size:.82rem;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:8px;padding:6px 10px;margin-bottom:12px}
.bp-config{margin-top:8px}
.bp-cfg-row{margin-bottom:14px}
.pf-vardef{font-size:.66rem;font-weight:700;color:#7c3aed;background:#f1eafd;border:1px solid #e2d3fb;border-radius:7px;padding:1px 6px}
.pf-lock{font-size:.66rem;font-weight:700;color:#b7791f;background:#fdf3e0;border:1px solid #f3e2c0;border-radius:7px;padding:1px 6px}
.pf-row.vardef{border-left:3px solid #7c3aed;padding-left:9px;margin-left:-12px}
.pf-inh-hint{font-size:.72rem;color:var(--faint);display:flex;align-items:center;gap:8px;margin-top:3px}
.pf-inh-hint.active{color:var(--muted)}
.pf-reset{border:1px solid var(--border);background:var(--surface);cursor:pointer;font:inherit;font-size:.7rem;font-weight:600;color:var(--accent);border-radius:6px;padding:1px 7px}
.pf-reset:hover{background:var(--accent-soft)}
.pf-locked-val{padding:8px 10px;background:#faf6ee;border:1px dashed #e6d6b8;border-radius:8px;font-weight:600}
.pf-static{padding:8px 0;font-weight:600}

/* ---- Produkte: 3-Spalten (Kategorie · Artikel · Formular) ---- */
.prod-layout{display:grid;grid-template-columns:265px minmax(300px,1fr) minmax(360px,1.15fr);gap:14px;align-items:start}
.prod-catcol,.prod-artcol{padding:0;max-height:calc(100vh - 200px);overflow:auto}
.prod-formcol{padding:14px;max-height:calc(100vh - 200px);overflow:auto}
.col-head{display:flex;align-items:center;gap:8px;padding:11px 14px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:2}
.col-head .spacer{flex:1}
.prod-formcol .col-head{position:static;margin:0;padding:13px 18px}   /* kein Minus-Abstand mehr — die Spalte hat heute padding:0, sonst ragt „Detail" oben aus der Karte */
.prod-catcol .tree{padding:6px}
.prod-catcol .tnode{padding-top:6px;padding-bottom:6px}
.art-list{padding:6px;display:flex;flex-direction:column;gap:2px}
.art-row{display:flex;align-items:center;gap:8px;padding:4px 9px;border-radius:8px;cursor:pointer}
.art-row:hover{background:var(--accent-soft)}
.art-row.sel{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}
/* Basisprodukt-Zeile stärker hervorgehoben: gelbe Karte, fetter Name — kompakt */
.art-row.bp{background:rgba(250,204,21,.14);border:1px solid #eddfa0;border-radius:9px;margin-top:4px;padding:6px 10px}
.art-row.bp .art-name{font-weight:800;font-size:.86rem}
.art-row.bp.sel{background:var(--accent-soft);border-color:#cfe0f4}
.art-row.variant{padding-left:20px;background:#fafcff}
.art-row .pring{margin-left:2px;width:18px;height:18px;flex:0 0 18px}
.art-row .pring::after{width:11px;height:11px}
.art-row .var-mark{color:var(--faint);flex:none}
.art-row .tog{width:26px;flex:none;text-align:center;color:var(--muted);cursor:pointer;user-select:none;font-size:1.2rem;line-height:1;padding:8px 0;border-radius:6px}
.art-row .tog:hover{color:var(--accent);background:rgba(79,109,205,.1)}
.art-row .tog.leaf{cursor:default;color:var(--faint);font-size:.9rem}
.art-row .tog.leaf:hover{color:var(--faint);background:none}
.art-row .tog.leaf{cursor:default;color:#cbd5e1}
.art-ico{width:26px;height:26px;border-radius:6px;background:#eef2f7;flex:none}
.art-ico.sm{width:22px;height:22px}
.art-txt{flex:1;min-width:0}
.art-name{font-weight:600;font-size:.82rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.art-sub{font-size:.7rem;line-height:1.2;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bp-badge{font-size:.64rem;font-weight:800;color:var(--accent);background:var(--accent-soft);border:1px solid #cfe0f4;border-radius:6px;padding:2px 6px;flex:none}
.pf-foot{display:flex;align-items:center;gap:10px;position:sticky;bottom:-14px;margin:10px -14px -14px;padding:12px 14px;background:var(--surface);border-top:1px solid var(--border)}
.prod-formcol .pf-row input[type=text],.prod-formcol .pf-row input[type=number],.prod-formcol .pf-row input[type=date],.prod-formcol .pf-row select,.prod-formcol .pf-field input,.prod-formcol .pf-field select{padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;box-sizing:border-box;width:100%}

/* ---- Provisorische Werte + Dashboard ---- */
.nav-badge{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:11px;background:var(--amber);color:#fff;font-size:.68rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.nav-item.active .nav-badge{background:#fff;color:var(--amber)}
.prov-tag{font-size:.62rem;font-weight:800;letter-spacing:.02em;color:#8a5a00;background:#fdf3e0;border:1px solid #f3e2c0;border-radius:6px;padding:2px 6px;flex:none;text-transform:uppercase}
.prov-tag.sm{padding:1px 5px;font-size:.58rem;margin-left:5px}
/* Provisorisch-Grund: farbiges Etikett (Farbe --pc aus Einstellungen → Provisorisch-Gründe) */
.provr-chip{color:var(--pc);background:color-mix(in srgb, var(--pc) 12%, #fff);border-color:color-mix(in srgb, var(--pc) 35%, #fff);text-transform:none;letter-spacing:0}
.provr-sel{width:100%;font:inherit;font-size:.85rem;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}
.provr-dot{flex:none;width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.12)}
.provr-color{flex:none;width:38px;height:30px;padding:2px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer}
.pf-addprov{display:inline-flex;align-items:center;gap:5px;border:1px dashed #cbd5e1;background:var(--surface);color:var(--accent);cursor:pointer;font:inherit;font-size:.76rem;font-weight:600;border-radius:8px;padding:3px 10px}
.pf-addprov:hover{background:var(--accent-soft);border-color:var(--accent)}
/* Dashboard */
.dash-card{padding:0;overflow:hidden}
.dash-card-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--border)}
.dash-card-title{font-weight:700;font-size:1rem;display:flex;align-items:center;gap:8px}
.dash-badge{min-width:22px;height:22px;padding:0 7px;border-radius:11px;background:var(--amber);color:#fff;font-size:.72rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.dash-empty{padding:26px 18px;color:var(--green);font-weight:600}
.dash-list{display:flex;flex-direction:column}
.dash-row{display:flex;align-items:center;gap:10px;padding:7px 12px;border-bottom:1px solid var(--border-2)}
.dash-row:last-child{border-bottom:none}
.dash-row:hover{background:var(--accent-soft)}
.dash-row-main{flex:1;min-width:0}
.dash-row-name{font-weight:600}
.dash-row-sub{font-size:.78rem;margin-top:1px}
.dash-list-ref{font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:1px 7px}
.dash-row-act{display:flex;align-items:center;gap:8px;flex:none}

/* Speichern-Knopf: nach dem Speichern deaktiviert (kein „aktiv"-Reiz) */
.btn:disabled{cursor:default;opacity:1}
.btn.primary:disabled{background:var(--surface);border-color:var(--border);color:var(--faint);box-shadow:none}

/* ---- Seitenleiste einklappen (schmale Icon-Leiste) ---- */
.sidebar{position:relative;transition:width .15s,flex-basis .15s,padding .15s}
/* runder Knopf auf der rechten Kante, mittig — wie im Prototyp */
/* Seitenleisten-Pfeil: dezenter Kreis, SVG-Chevron exakt zentriert, dreht sich beim Einklappen */
.sb-toggle{position:absolute;top:50%;right:-13px;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:60;box-shadow:0 1px 4px rgba(15,23,42,.15);padding:0;transition:color .15s,border-color .15s,box-shadow .15s,transform .15s}
.sb-toggle svg{width:13px;height:13px;display:block;margin-left:-1px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .22s ease}
.sb-toggle:hover{color:var(--accent);border-color:var(--accent);box-shadow:0 2px 8px rgba(79,70,229,.22)}
.sidebar.collapsed .sb-toggle svg{transform:rotate(180deg);margin-left:1px}
.sidebar.collapsed{width:64px;flex:0 0 64px;padding:16px 8px}
.sidebar.collapsed .brand,.sidebar.collapsed .nav-section,.sidebar.collapsed .nav-lbl,.sidebar.collapsed .user-info,.sidebar.collapsed .build-tag,.sidebar.collapsed #logoutBtn,.sidebar.collapsed .settings-gear{display:none}
.sidebar.collapsed .nav-item{position:relative;justify-content:center;padding:11px 0;gap:0}
.sidebar.collapsed .nav-item svg{opacity:1}
.sidebar.collapsed .user-card{justify-content:center;padding:4px 0}
.sidebar.collapsed .nav-badge{position:absolute;top:3px;right:8px;min-width:16px;height:16px;padding:0 4px;font-size:.58rem}

/* ---- Kategorie-Panel: Name inline + Speicherleiste (gesammeltes Speichern) ---- */
.cd-namerow{margin:8px 0 6px}
.cd-name{width:100%;padding:8px 11px;border:1px solid var(--border);border-radius:9px;font:inherit;font-size:1rem;font-weight:600;color:var(--text);background:var(--surface);box-sizing:border-box}
.cd-name:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.cd-savebar{display:flex;align-items:center;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}
.cd-savebar .spacer{flex:1}

/* ---- Such-Auswahlfeld (Combobox) im Produkt-Formular ---- */
.combo{position:relative;flex:1;min-width:0}
/* dezenter Pfeil: zeigt, dass es eine Auswahl ist */
.combo::after{content:'▾';position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--muted);opacity:.55;font-size:1.44rem;line-height:1;pointer-events:none}
.combo .combo-input{padding-right:34px}
.combo:focus-within::after{opacity:.9;color:var(--accent)}
.combo-input{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit}
.combo-list{position:absolute;top:calc(100% + 3px);left:0;right:0;z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:9px;box-shadow:0 8px 22px rgba(0,0,0,.14);max-height:240px;overflow:auto;padding:4px}
.combo-item{padding:7px 9px;border-radius:7px;cursor:pointer;font-size:.85rem;display:flex;align-items:center;gap:6px}
.combo-item.hi{background:var(--accent-soft)}
.combo-item .prov-tag{margin-left:auto}
.combo-clear{color:var(--muted);font-size:.8rem}
.combo-new{color:var(--accent);font-weight:600;border-top:1px solid var(--border);border-radius:0;margin-top:3px}
.combo-empty{padding:8px 9px;color:var(--muted);font-size:.8rem}

.dash-row-click{cursor:pointer}

/* ---- BP-Formular: Varianten-Abschnitt ---- */
.pf-varsec{margin-top:2px}
.pf-varlist{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.pf-varchip{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface);cursor:pointer;font:inherit}
.pf-varchip:hover{border-color:var(--accent);background:var(--accent-soft)}
.pf-varchip-nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.pf-varsku{font-size:.76rem;color:var(--muted);font-family:ui-monospace,monospace;flex:none}

/* ---- Produkte: volle Tabelle (Bulk-Editor) ---- */
.prod-layout-table{display:grid;grid-template-columns:265px 1fr;gap:14px;align-items:start}
.prod-tablecol{padding:0;height:calc(100vh - 130px);overflow:hidden;display:flex;flex-direction:column}
.ptbl td input,.ptbl td select,.ptbl-namecell .ptbl-name{padding-top:8px;padding-bottom:8px}
.pt-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--border)}
.pt-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pt-title{font-size:.78rem;color:var(--muted);font-weight:600}
.col-search{padding:6px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:.8rem}
.ptbl-wrap{overflow:auto;flex:1}
.ptbl{border-collapse:separate;border-spacing:0;font-size:.8rem;white-space:nowrap}
.ptbl th,.ptbl td{border-bottom:1px solid var(--border);border-right:1px solid var(--border-2);background:var(--surface)}
.ptbl thead th{position:sticky;top:0;z-index:3;background:#f7f9fc;padding:6px 8px;text-align:left;font-weight:700;color:var(--muted)}
.ptbl thead th .th-lbl{margin-right:4px}
.th-freeze,.th-menu{border:none;background:none;cursor:pointer;color:#c3ccd8;font-size:.72rem;padding:0 2px}
.th-freeze.on,.th-menu.on{color:var(--accent)}
.th-freeze:hover,.th-menu:hover{color:var(--text)}
.ptbl td input,.ptbl td select{border:1px solid transparent;background:none;font:inherit;padding:6px 8px;width:100%;box-sizing:border-box;min-width:90px;color:var(--text)}
.ptbl td input:focus,.ptbl td select:focus{outline:none;border-color:var(--accent);background:var(--surface)}
.ptbl td input.bp,.ptbl td select.bp{background:rgba(47,109,176,.13)}
.ptbl td input.own,.ptbl td select.own{background:rgba(46,139,87,.13)}
.ptbl td input.req-empty,.ptbl td select.req-empty{background:rgba(214,69,69,.05)!important;border-color:#d64545!important}
.ptbl td input.celllock{border-style:dashed;cursor:not-allowed;opacity:.85}
.ptbl tr.var td{background:#fafcff}
.ptbl tr.base td{background:rgba(250,204,21,.12)}   /* Basisprodukt-Zeile: dezenter gelber Schleier zum Abheben */
.ptbl-namecell{display:flex;align-items:center;gap:6px;padding:3px 6px;min-width:240px}
.ptbl-namecell.v{padding-left:14px}
.bp-tog{cursor:pointer;color:var(--faint);width:14px;flex:none;user-select:none;text-align:center}
.bp-spacer{width:14px;flex:none}
.ptbl-conn{color:var(--faint);flex:none}
.ptbl-namecell .ptbl-name{font-weight:600;border:1px solid transparent;background:none;padding:6px 8px;min-width:120px;flex:1}
.ptbl-sku{min-width:90px}
.ptbl-comb{display:inline-block;padding:6px 8px;color:#2b3a52;font-weight:600}
.pt-acth{width:64px}
.pt-actc{white-space:nowrap;text-align:center}
.pring{width:20px;height:20px;border-radius:50%;flex:0 0 20px;display:inline-flex;align-items:center;justify-content:center;background:conic-gradient(var(--accent) calc(var(--p,0)*1%),#e6ebf2 0)}
.pring::after{content:"";width:13px;height:13px;border-radius:50%;background:var(--surface)}
.pring.full{background:#22c55e}
.prod-thumb.xs{width:calc(var(--thumb-size) - 4px);height:calc(var(--thumb-size) - 4px);flex:0 0 calc(var(--thumb-size) - 4px)}
.ptbl .frozen{position:sticky;z-index:2}
.ptbl thead th.frozen{z-index:4}
.ptbl .freeze-edge{border-right:2px solid var(--accent)}
.pt-menu{position:fixed;z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:6px;min-width:210px;max-height:70vh;overflow:auto}
.pt-mb{display:block;width:100%;text-align:left;border:none;background:none;padding:7px 9px;border-radius:7px;cursor:pointer;font:inherit;font-size:.82rem}
.pt-mb:hover{background:var(--accent-soft)}
.pt-msep{height:1px;background:var(--border);margin:5px 0}
.pt-mlbl{font-size:.7rem;color:var(--muted);font-weight:700;padding:3px 9px}
.pt-mfilter{max-height:200px;overflow:auto;padding:2px 4px}
.pt-mfitem{display:flex;align-items:center;gap:7px;padding:4px 6px;font-size:.82rem;cursor:pointer}
.pt-mrow{display:flex;gap:8px;justify-content:flex-end;padding:6px 4px 2px}

/* ---- Attribut-Tabelle: Massen-Auswahl ---- */
.excel-table th.ta-center,.excel-table td.ta-center{text-align:center}
.excel-table td.ta-center input,.excel-table th.ta-center input{cursor:pointer;accent-color:var(--accent)}
.excel-table tr.row-sel td{background:var(--accent-soft)}
.excel-table tr.row-sel td.frozen{background:#e6effc}

/* ---- Kategorie: Ebene je Merkmal (BP / V / Beide) — dezente Pillen ---- */
.sc-seg{display:inline-flex;gap:3px;margin-left:auto;flex:none}
.sc-b{border:1px solid transparent;background:transparent;color:var(--faint);cursor:pointer;font:inherit;font-size:.64rem;font-weight:700;padding:2px 9px;border-radius:999px;line-height:1.5;transition:.1s}
.sc-b:hover{background:#eef2f7;color:var(--muted)}
.sc-b.on.bp{background:rgba(34,197,94,.14);color:#15803d;border-color:#bbe7c9}
.sc-b.on.variant{background:#eff2f6;color:#5b6675;border-color:#dbe2ea}
.sc-b.on.both{background:var(--accent-soft);color:var(--accent);border-color:#cfe0f4}
.sc-b.on.provisorisch{background:#fdf3e0;color:#b7791f;border-color:#f3e2c0}
.sc-badge{font-size:.58rem;font-weight:800;border-radius:5px;padding:1px 5px;margin-left:5px}
.sc-badge.bp{background:rgba(34,197,94,.15);color:#15803d}
.sc-badge.variant{background:#eff2f6;color:#5b6675}
.sc-badge.provisorisch{background:#fdf3e0;color:#b7791f}

/* „pro Variante"-Hinweis (Varianten-Merkmal auf dem BP) */
.pf-varonly{color:var(--faint);font-size:.8rem;font-style:italic}
.ptbl-varonly{display:inline-block;padding:6px 8px;color:var(--faint);font-size:.76rem;font-style:italic}

/* „＋ Variante"-Zeile am Ende der BP-Gruppe (Tabelle) */
.ptbl tr.addvar td{background:#fbfdff}
.ptbl-addvar{border:none;background:none;color:var(--accent);cursor:pointer;font:inherit;font-size:.78rem;font-weight:600;padding:6px 8px;border-radius:6px}
.ptbl-addvar:hover{background:var(--accent-soft)}

/* Produktbild-Vorschau beim Drüberfahren */
.img-zoom{position:fixed;z-index:400;width:280px;height:280px;object-fit:contain;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 16px 48px rgba(0,0,0,.28);padding:8px;pointer-events:none}

/* Direkt-Link (z.B. Lieferanten-Seite) neben einem Auswahlfeld */
/* Link öffnen · Lupe · KI-Kopf — EINE Knopf-Optik, egal ob <a> oder <button> (Build 1030) */
a.ext-link,button.ext-link{appearance:none;-webkit-appearance:none;flex:none;width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;box-shadow:none;text-decoration:none;font-size:.95rem;border-radius:6px;line-height:1;cursor:pointer;color:var(--accent,#4f46e5)}
.ext-link:hover{background:var(--accent-soft)}
.ext-link svg{width:15px;height:15px}
.cell-link-wrap{display:flex;align-items:center;gap:1px}
.cell-link-wrap select{flex:1;min-width:0}

/* ---- Website auslesen (Panel) ---- */
.scrape-box{width:min(760px,94vw);max-height:88vh;display:flex;flex-direction:column;padding:0;overflow:hidden}
.scrape-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border)}
.scrape-head .spacer{flex:1}
.scrape-url{font-size:.76rem;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}
.scrape-body{padding:14px 16px;overflow:auto;display:flex;flex-direction:column;gap:8px}
.scrape-title{font-size:1.05rem;font-weight:700}
.scrape-desc{color:var(--muted);font-size:.85rem}
.scrape-bar{display:flex;align-items:center;gap:10px}
.scrape-bar .spacer{flex:1}
.scrape-text{width:100%;min-height:320px;resize:vertical;border:1px solid var(--border);border-radius:9px;padding:10px 12px;font:inherit;font-size:.82rem;line-height:1.5;background:#fbfcfe;color:var(--text)}
.scrape-links{display:flex;flex-direction:column;gap:3px;max-height:220px;overflow:auto;padding:6px 2px}
.scrape-link{font-size:.8rem;color:var(--accent);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scrape-link:hover{text-decoration:underline}
.scrape-imgs{display:flex;flex-wrap:wrap;gap:8px;padding:6px 2px;max-height:260px;overflow:auto}
.scrape-img{width:78px;height:78px;object-fit:contain;border:1px solid var(--border);border-radius:8px;background:#f7f9fc}
.scrape-body details summary{cursor:pointer;font-size:.82rem;font-weight:600;color:var(--muted);padding:6px 0}

.ext-linkwrap{display:inline-flex;align-items:center;flex:none}

/* Website auslesen — Hauptbild + Dokumente */
.scrape-main{max-width:100%;max-height:240px;object-fit:contain;border:1px solid var(--border);border-radius:10px;background:#f7f9fc;cursor:zoom-in;align-self:flex-start}
.scrape-sec-h{font-weight:700;font-size:.86rem;margin-top:4px}
.scrape-docs{display:flex;flex-direction:column;gap:5px}
.scrape-doc{display:flex;align-items:center;gap:9px;padding:7px 10px;border:1px solid var(--border);border-radius:9px;text-decoration:none;background:var(--surface)}
.scrape-doc:hover{border-color:var(--accent);background:var(--accent-soft)}
.doc-kind{flex:none;font-size:.62rem;font-weight:800;padding:2px 7px;border-radius:6px;color:#fff;background:var(--muted)}
.doc-kind.k-pdf{background:#d64545}
.doc-kind.k-cad{background:#2f6db0}
.doc-kind.k-archiv{background:#b7791f}
.doc-kind.k-office{background:#2e8b57}
.doc-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:.84rem}
.doc-ext{flex:none;font-size:.72rem;color:var(--muted);font-family:ui-monospace,monospace}

.scrape-stage{display:flex;align-items:center;padding-bottom:2px}

/* Website auslesen — erkannte Werte (regelbasiert) */
.scrape-specs{display:flex;flex-direction:column;gap:3px}
.spec-row{display:flex;align-items:center;gap:10px;padding:5px 9px;border:1px solid var(--border);border-radius:8px;background:#fbfcfe}
.spec-key{flex:0 0 190px;font-weight:600;font-size:.82rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spec-val{flex:1;min-width:0;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* erkannte Werte → Merkmal-Zuordnung */
.spec-row.ok{border-color:#bbe7c9;background:rgba(34,197,94,.06)}
.spec-match{flex:none;font-size:.7rem;font-weight:700;color:#15803d;background:rgba(34,197,94,.14);border-radius:6px;padding:2px 8px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spec-nomatch{flex:none;font-size:.68rem;color:var(--faint)}
.spec-row .btn.sm{flex:none}
/* schon belegt (eigen oder vom BP geerbt) → nicht nochmal übernehmen */
.spec-row.covered{opacity:.6}
.spec-have{flex:none;font-size:.72rem;font-weight:700;color:#15803d;white-space:nowrap;padding:2px 6px}
.spec-have.bp{color:var(--accent)}
.spec-row .btn.sm.warn{border-color:#f59e0b;color:#b45309}
.spec-row .btn.sm.warn:hover{background:#fffbeb}

/* „Seite auslesen" als frei verschiebbares, grössenveränderbares Fenster — Formular bleibt bedienbar */
.scrape-dock{position:fixed;z-index:115;display:flex;overflow:hidden;resize:both;min-width:360px;min-height:280px;
  background:var(--surface);border-radius:14px;box-shadow:0 24px 70px rgba(15,23,42,.34)}
.scrape-dock .scrape-box{width:100%;max-width:none;height:100%;max-height:none;border-radius:14px;box-shadow:none}
.scrape-head{cursor:move;user-select:none}
.scrape-grip{color:var(--faint);font-size:1rem;letter-spacing:-2px;margin-right:2px;cursor:move}
.scrape-img,.scrape-doc,.scrape-main{cursor:grab}
/* Umschalter: Ausgelesen ⇄ Original-Seite */
.scrape-tabs{display:flex;gap:4px;padding:6px 12px 0;border-bottom:1px solid var(--border);background:var(--surface)}
.sc-tab{border:1px solid transparent;border-bottom:none;background:transparent;color:var(--muted);font-size:.82rem;font-weight:600;padding:7px 14px;border-radius:9px 9px 0 0;cursor:pointer}
.sc-tab:hover{color:var(--text);background:var(--accent-soft)}
.sc-tab.active{color:var(--accent);border-color:var(--border);background:var(--surface);margin-bottom:-1px}
.scrape-shot{width:100%;height:auto;display:block;border:1px solid var(--border);border-radius:8px}
.scrape-variant{font-size:.78rem;font-weight:600;color:#92600a;background:rgba(245,158,11,.14);border-radius:7px;padding:6px 10px}
.scrape-vgrid{display:flex;flex-wrap:wrap;gap:10px;padding:4px 0}
.vcard{display:flex;flex-direction:column;gap:5px;width:150px}
.vimg{width:150px;height:120px;object-fit:contain;border:1px solid var(--border);border-radius:9px;background:#f7f9fc;cursor:grab}
.vimg:active{cursor:grabbing}
.vmain-btn{width:100%}
.scrape-img:active,.scrape-doc:active,.scrape-main:active{cursor:grabbing}

/* Produkt-Medien: Bilder-Galerie + Dokumente + Drop-Zone */
.mv-drop{border:1.5px dashed var(--border);border-radius:12px;padding:10px;min-height:60px;display:flex;flex-direction:column;gap:9px;transition:border-color .15s,background .15s}
.mv-drop.over{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-soft)}
/* Ablage aufs ganze Formular */
#prodFormCol.form-drop{outline:2.5px dashed var(--accent);outline-offset:-8px;background:var(--accent-soft)}
#prodFormCol.form-drop::after{content:'⬇ Bild / Datei hier ablegen';position:sticky;bottom:10px;display:block;text-align:center;color:var(--accent);font-weight:700;font-size:.85rem;pointer-events:none}
.mv-sech{font-size:.7rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.mv-gallery{display:flex;flex-wrap:wrap;gap:10px}
.mv-thumb{position:relative;width:168px;height:168px;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:#f7f9fc}
.mv-thumb img{width:100%;height:100%;object-fit:contain;display:block;cursor:zoom-in}
.mv-thumb.cur{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.mv-mainbadge{position:absolute;top:2px;left:3px;font-size:.8rem;color:#f59e0b;text-shadow:0 1px 2px rgba(0,0,0,.4)}
.mv-acts{position:absolute;top:3px;right:3px;display:flex;gap:3px;opacity:.92;transition:opacity .15s}
.mv-thumb:hover .mv-acts{opacity:1}
.mv-a{border:none;background:rgba(15,23,42,.62);color:#fff;border-radius:6px;width:21px;height:21px;cursor:pointer;font-size:.72rem;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;flex:none}
.mv-a .ki-ico{width:15px;height:15px;margin:0;vertical-align:0;cursor:pointer}   /* Kachel-Regel „Bild = Lupe" gilt nicht für den KI-Knopf */
.mv-a:hover{background:rgba(15,23,42,.85)}
.mv-a.del:hover{background:#d64545}
.mv-docs{display:flex;flex-direction:column;gap:5px}
.mv-doc{display:flex;align-items:center;gap:8px;padding:6px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.mv-doc-ic{flex:none;font-size:.95rem}
.mv-doc-lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;color:var(--text);font-size:.84rem}
.mv-doc-lbl:hover{color:var(--accent);text-decoration:underline}
.mv-doc .mv-a{background:transparent;color:var(--muted)}
.mv-doc .mv-a.del:hover{background:#d64545;color:#fff}
.mv-empty{text-align:center;color:var(--faint);font-size:.82rem;padding:14px 4px}

/* ===== Detail-Panel mit Reitern (Redesign) ===== */
.prod-formcol{padding:0;display:flex;flex-direction:column;max-height:calc(100vh - 190px);overflow:hidden}
.prod-formcol .col-head.pf-tophead{position:static;margin:0;padding:13px 18px;border-bottom:1px solid var(--border)}
.pf-tabs{display:flex;gap:2px;padding:0 12px;border-bottom:1px solid var(--border);background:var(--surface);overflow-x:auto}
.pf-tabs::-webkit-scrollbar{height:0}
.pf-tab{border:none;background:none;font:inherit;font-size:.85rem;font-weight:600;color:var(--muted);padding:12px 13px;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:color .12s,border-color .12s}
.pf-tab:hover{color:var(--text)}
.pf-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.pf-panel{flex:1;overflow:auto;padding:16px 18px}
.prod-formcol .pf-foot{position:static;margin:0;padding:11px 18px;border-top:1px solid var(--border);background:var(--surface)}
.pf-foot .prod-prog{flex:1;margin:0}
.pf-empty{display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;padding:52px 20px;color:var(--muted)}
.pf-empty-ic{font-size:2rem;opacity:.85}
.pf-empty-h{font-weight:700;color:var(--text);font-size:1.06rem}

/* ===== Merkmalsfelder als Fliess-Layout (Label oben; schmale Felder rücken zusammen — Breite pro Merkmal) ===== */
.prod-fields{display:flex;flex-flow:row wrap;gap:13px 14px;align-items:flex-start}
.prod-fields .pf-row{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:0;border-bottom:none}
.prod-fields .pf-row.pf-w-full{flex:1 1 100%}
.prod-fields .pf-lbl{flex:none;font-size:.76rem;font-weight:600;color:var(--muted);gap:5px}   /* 18.10.2026: normale Schreibweise statt GROSS (Aileen) */
.prod-fields .pf-ctrl{flex:none;width:100%;gap:6px}
.prod-fields .pf-ctrl input,.prod-fields .pf-ctrl select,.prod-fields .pf-ctrl .combo{flex:1;min-width:0;width:100%}
.prod-fields .pf-ctrl .pf-num{flex:1;max-width:none}
.prod-fields .pf-numwrap,.prod-fields .pf-range{width:100%;min-width:0}
.prod-fields .pf-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}   /* schmale Spalten: Beschriftung kürzt statt zu blockieren */
/* Gruppen als gefüllte Farbfläche: vom Gruppen-Titel bis zum nächsten Feld/zur nächsten Gruppe */
.pf-grpbox{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:13px 14px;align-items:flex-start;
  background:color-mix(in srgb, var(--gc) 7%, transparent);border-left:3px solid var(--gc);border-radius:10px;padding:10px 12px 12px}
.pf-grpbox>.pf-group{flex:1 1 100%;margin:0}
/* Ablegen: linke Hälfte = davor · rechte Hälfte = dahinter */
.lay-over-l{box-shadow:inset 4px 0 0 var(--accent) !important;background:var(--accent-soft) !important}
.lay-over-r{box-shadow:inset -4px 0 0 var(--accent) !important;background:var(--accent-soft) !important}

/* ===== „Schneller finden"-Karte + Seiten-Navigation ===== */
.find-card{margin:10px 8px 10px;display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:linear-gradient(135deg,var(--accent-soft),#f2f0ff);border:1px solid #e6e3fb}
.find-ic{font-size:1.1rem;line-height:1.2}
.find-h{font-weight:700;font-size:.82rem;color:var(--text)}
.find-tx{font-size:.72rem;color:var(--muted);line-height:1.45;margin-top:2px}
.art-count{font-size:.72rem;color:var(--muted);font-weight:600}
.art-pager{display:flex;align-items:center;gap:8px;padding:9px 12px;border-top:1px solid var(--border);position:sticky;bottom:0;background:var(--surface)}
.pager-nav{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.pgb{min-width:30px;height:30px;padding:0 8px;border:1px solid var(--border);background:var(--surface);border-radius:8px;cursor:pointer;font:inherit;font-size:.82rem;font-weight:600;color:var(--text)}
.pgb:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.pgb.on{background:var(--grad);border-color:transparent;color:#fff}
.pgb:disabled{opacity:.4;cursor:default}
.pg-ell{color:var(--faint);padding:0 2px}
.pager-per{padding:6px 8px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:.8rem;background:var(--surface);cursor:pointer}

/* Kategorie-Spalte: Baum scrollt, „Schneller finden"-Karte bleibt unten sichtbar */
.prod-catcol{display:flex;flex-direction:column;overflow:hidden}
.prod-catcol .tree{flex:1;overflow:auto;min-height:0}
.prod-catcol .find-card{flex:none}

/* ===== Dashboard (Redesign) ===== */
.dash-hello{margin-bottom:18px}
.dash-hello h1{font-size:1.6rem;font-weight:800;color:var(--text);letter-spacing:-.01em}
.dash-hello p{margin:4px 0 0}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px;margin-bottom:12px}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:10px 13px;box-shadow:var(--shadow)}
.kpi-top{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.kpi-ic{width:30px;height:30px;border-radius:9px;background:var(--accent-soft);display:grid;place-items:center;font-size:.95rem}
.kpi-lbl{font-size:.78rem;color:var(--muted);font-weight:600}
.kpi-val{font-size:1.3rem;font-weight:800;color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}
.kpi-sub{font-size:.74rem;color:var(--faint);margin-top:3px}
.kpi-click{cursor:pointer;transition:box-shadow .12s,transform .12s}
.kpi-click:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}
.kpi-accent{background:linear-gradient(135deg,#eef0ff,#f6f0ff);border-color:#ddd8fb}
.kpi-accent .kpi-ic{background:var(--grad);color:#fff}
.kpi-accent .kpi-val{color:var(--accent)}
.kpi-ringrow{display:flex;align-items:center;gap:12px}
.mini-ring{flex:none}.mini-ring svg{width:100%;height:100%;display:block}

.dash-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;align-items:start}
/* Reiter innerhalb einer Einstellungs-Karte (z.B. Glossar) */
.set-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-top:4px}
.set-tab{font:inherit;font-size:.84rem;font-weight:600;padding:8px 14px;border:none;background:transparent;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.set-tab:hover{color:var(--text)}
.set-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
/* Sprach-Glossar-Tabelle */
.lgx-grid{display:grid;gap:6px 8px;align-items:center}
.lgx-head{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--faint)}
/* Titel- & Text-Vorlagen (Einstellungen) */
.tpl-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 4px}
.tpl-chip{font:inherit;font-size:.76rem;font-weight:600;padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--accent);cursor:pointer}
.tpl-chip:hover{background:var(--accent-soft);border-color:var(--accent)}
.tpl-in{width:100%;font:inherit;font-size:.9rem;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}
.tpl-ta{min-height:84px;resize:vertical;margin-bottom:10px}
.tpl-talbl{font-size:.78rem;font-weight:700;color:var(--muted);margin:8px 0 4px}
.tpl-preview{margin-top:8px;font-size:.85rem;padding:8px 10px;border-radius:8px;background:var(--accent-soft)}
/* Rich-Text-Editor (Textfelder + Text-Vorlagen) */
.rte-wrap{border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:visible}
.rte-bar{display:flex;flex-wrap:wrap;gap:2px;padding:4px 6px;border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--surface) 60%, var(--bg))}
.rte-btn{font:inherit;font-size:.8rem;font-weight:700;min-width:26px;height:26px;padding:0 6px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);cursor:pointer}
.rte-btn:hover{background:var(--accent-soft);border-color:var(--border)}
.rte-bar .rte-btn:nth-child(2){font-style:italic}
.rte-bar .rte-btn:nth-child(3){text-decoration:underline}
.rte-area{min-height:96px;padding:10px 12px;font:inherit;font-size:.9rem;line-height:1.5;outline:none;overflow-wrap:break-word}
.rte-area:empty::before{content:attr(data-ph);color:var(--muted);pointer-events:none}
.rte-area a{color:var(--accent)}
.rte-area ul{margin:4px 0 4px 18px}
.rte-view{padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb, var(--surface) 70%, var(--bg));font-size:.9rem;line-height:1.5;min-height:38px}
.rte-view ul{margin:4px 0 4px 18px}
.rte-menuwrap{position:relative;display:inline-flex}
.rte-menu{position:absolute;top:100%;left:0;z-index:60;display:flex;flex-wrap:wrap;gap:2px;max-width:260px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.14)}
.rte-menu-item{font:inherit;font-size:.82rem;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rte-menu-item:hover{background:var(--accent-soft)}
.rte-menu-empty{font-size:.76rem;color:var(--muted);padding:4px 6px;white-space:nowrap}
/* Längen-Vorgaben + Zähler */
.tpl-num{width:84px !important;display:inline-block}
.tpl-limrow{display:flex;align-items:center;gap:16px;margin:6px 0 8px;font-size:.8rem;color:var(--muted)}
.tpl-limrow label{display:inline-flex;align-items:center;gap:6px}
.tpl-cnt{font-size:.72rem;color:var(--muted);margin-top:3px}
.tpl-cnt.over{color:var(--danger);font-weight:700}
/* 🏢 Firmenprofile (10.09.): Zeichenlimit-Zähler + Kürzen-Knopf am Textfeld, Text-Wächter unter dem Editor */
.fp-limit{display:inline-flex;gap:8px;align-items:center;margin-top:3px}
.fp-kurz{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:2px 9px;font:inherit;font-size:.74rem;cursor:pointer;color:var(--text)}
.fp-kurz:hover{background:var(--accent-soft)}
.fp-waechter{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px;padding:6px 10px;border-radius:8px;background:#fde8e8;border:1px solid #f5c2c2;color:#8a1c1c;font-size:.78rem}
.fp-waechter b{font-weight:700}
.fp-waechter .fp-fund{display:inline-flex;gap:4px;align-items:center;background:#fff;border:1px solid #f0b4b4;border-radius:999px;padding:1px 8px}
.fp-waechter .fp-fund button{border:none;background:#8a1c1c;color:#fff;border-radius:999px;padding:0 7px;font-size:.7rem;cursor:pointer;line-height:1.5}
html[data-theme="dunkel"] .fp-waechter{background:#3a1a1a;border-color:#6b2a2a;color:#f3b4b4}
html[data-theme="dunkel"] .fp-waechter .fp-fund{background:#2a1212;border-color:#6b2a2a}
.pf-tplrow{display:flex;gap:6px;margin-top:4px}
.tpl-modal{max-width:760px}
/* Platzhalter-Chips IM Vorlagen-Text: Klick = W ↔ A+W · × = entfernen */
.tpl-ph{display:inline-flex;align-items:center;gap:3px;margin:0 2px;padding:1px 4px 1px 8px;border-radius:999px;font-size:.8rem;font-weight:700;cursor:pointer;user-select:none;
  color:#1d4ed8;background:#e8eefc;border:1px solid #c7d7f7;vertical-align:baseline}
.tpl-ph:hover{border-color:#1d4ed8}
.tpl-ph.aw{color:#6d28d9;background:#f1eafc;border-color:#ddcdf5}
.tpl-ph.aw:hover{border-color:#6d28d9}
.tpl-ph-x{font:inherit;font-size:.78rem;font-weight:800;line-height:1;border:none;background:transparent;color:inherit;opacity:.5;cursor:pointer;padding:0 3px;border-radius:50%}
.tpl-ph-x:hover{opacity:1;background:rgba(0,0,0,.08)}
/* sichtbare Leerzeichen (·) im Vorlagen-Editor */
.rte-ws{color:#c2410c;opacity:.7;font-weight:800}
.rte-btn.on{background:var(--accent);color:#fff;border-color:var(--accent)}
/* Einfüge-Modus für Bausteine: W (Wert) · A (Name) · A+W (Name: Wert) */
.tpl-mode{display:flex;align-items:center;gap:6px;margin:4px 0 6px;font-size:.78rem}
.tplm-btn{font:inherit;font-size:.74rem;font-weight:700;padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer}
.tplm-btn:hover{border-color:var(--accent)}
.tplm-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}
/* Herkunft von Texten: ✎ eigener · ↳ vom BP · ⚡ aus Kategorie-Vorlage */
.src-tag{display:inline-block;font-size:.66rem;font-weight:800;letter-spacing:.02em;border-radius:6px;padding:1px 7px;margin-bottom:3px;border:1px solid transparent}
.src-tag.tag-own{color:#166534;background:#e7f6ec;border-color:#c3e6cd}
.src-tag.tag-bp{color:#1d4ed8;background:#e8eefc;border-color:#c7d7f7}
.src-tag.tag-tpl{color:#6d28d9;background:#f1eafc;border-color:#ddcdf5}
/* Text-Zellen in der Tabelle: Herkunft + Kurzvorschau, Klick öffnet das Formular (Reiter Texte) */
.ptbl-text{display:flex;align-items:center;gap:6px;width:100%;max-width:260px;font:inherit;font-size:.78rem;text-align:left;border:none;background:transparent;color:var(--text);cursor:pointer;padding:2px 4px;border-radius:6px}
.ptbl-text:hover{background:var(--accent-soft)}
.ptbl-text .src-tag{margin-bottom:0;flex:none}
.ptbl-text-prev{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ptbl-text.empty{color:var(--muted)}
/* Dubletten-Hinweise (Attribute) */
.dup-hint{font-size:.76rem;font-weight:600;color:#9a3412;background:#fdeadd;border:1px solid #f5cdb0;border-radius:8px;padding:4px 10px;margin:4px 0 2px}
.dup-chip{font-size:.68rem;font-weight:700;color:#9a3412;background:#fdeadd;border:1px solid #f5cdb0;border-radius:6px;padding:1px 6px;margin-left:6px;flex:none}
/* Glossar-Hinweis unter dem Feld: Klick = Korrektur übernehmen */
.gloss-hint{display:block;width:fit-content;max-width:100%;margin-top:4px;font:inherit;font-size:.75rem;font-weight:600;text-align:left;color:#8a5a00;background:#fdf3e0;border:1px solid #f3e2c0;border-radius:8px;padding:3px 10px;cursor:pointer}
.gloss-hint:hover{background:#fbe9c8}
/* ===== DAM (Medien): Ordner-Spalte + Kachel-Raster + Detail ===== */
.dam-layout{display:flex;gap:16px;align-items:flex-start}
.dam-side{flex:0 0 230px;padding:12px;position:sticky;top:10px}
.dam-side-h{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--faint);margin:10px 0 6px}
.dam-folder{display:block;width:100%;text-align:left;font:inherit;font-size:.84rem;padding:6px 10px;border:none;background:transparent;border-radius:8px;cursor:pointer;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dam-folder:hover{background:var(--accent-soft)}
.dam-folder.on{background:var(--accent-soft);color:var(--accent);font-weight:700}
.dam-folder-row{display:flex;align-items:center;gap:2px}
.dam-ftog{flex:none;width:18px;height:18px;border:none;background:transparent;color:var(--muted);font-size:.7rem;cursor:pointer;padding:0;border-radius:4px}
.dam-ftog:hover{background:var(--accent-soft);color:var(--accent)}
.dam-ftog.ph{cursor:default}
.dam-fsearch{width:100%;margin:2px 0 8px;box-sizing:border-box}
/* Eingabe-Popover (ersetzt die Browser-prompt-Fenster) — erscheint direkt beim Knopf */
.pop-input{position:fixed;z-index:6000;min-width:270px;max-width:340px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 34px rgba(0,0,0,.22);padding:12px}
.pop-input-t{font-size:.8rem;font-weight:700;margin-bottom:8px;white-space:pre-line}
.pop-input input{width:100%;box-sizing:border-box;font:inherit;font-size:.9rem;padding:8px 10px;border:1px solid var(--border);border-radius:8px}
.pop-input-b{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
.dam-flist{max-height:52vh;overflow:auto}
.dam-fparent{font-size:.68rem;color:var(--faint);font-weight:400}
.dam-fbtns{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 14px}
/* Begriff-Auswahl für Datum-Ordner */
.dam-terms{display:flex;flex-wrap:wrap;gap:6px}
.dam-term{font:inherit;font-size:.8rem;font-weight:600;padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);cursor:pointer;color:var(--text);display:inline-flex;align-items:center;gap:4px}
.dam-term:hover{border-color:var(--accent);background:var(--accent-soft)}
.dam-term.own{border-style:dashed;color:var(--accent)}
.dam-term.edit{cursor:default}
.dam-term.edit:hover{border-color:var(--border);background:var(--surface)}
/* Begriff-Auswahl NEU: 2 Spalten mit Luft, Datum gedimmt, Begriff farbig+fett */
.dam-terms2{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.dam-terms2.manage{grid-template-columns:1fr 1fr}
.dam-term2{display:flex;align-items:center;gap:8px;font:inherit;font-size:.86rem;padding:9px 13px;border:1px solid color-mix(in srgb, var(--tc, var(--border)) 45%, var(--border));border-radius:10px;background:color-mix(in srgb, var(--tc, transparent) 7%, var(--surface));cursor:pointer;color:var(--text);text-align:left;min-width:0}
.dam-term2:hover{border-color:var(--tc, var(--accent));box-shadow:0 2px 8px rgba(0,0,0,.08)}
.dam-term2-dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--tc, var(--border))}
.dam-term2-date{flex:none;font-size:.74rem;color:var(--faint)}
.dam-term2-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:color-mix(in srgb, var(--tc, var(--text)) 75%, var(--text))}
.dam-term2.own{border-style:dashed}
.dam-term2.own .dam-term2-name{color:var(--accent)}
.dam-term2.edit{cursor:grab}
.dam-term2-col{flex:none;width:26px;height:22px;padding:1px;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer}
/* Ordner-Sortierung in der Seitenleiste */
.dam-fsort{display:flex;gap:5px;margin:0 0 8px}
/* Such-Treffer als Baum: Vorfahren nur als gedimmter Kontext */
.dam-fctx .dam-folder{opacity:.5;font-weight:400}
/* 🗂🗂 Zwei-Ordner-Ansicht */
.dam-dualwrap{flex:1;min-width:0}
.dam-cmpbar{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:.8rem}
.dam-cmpstat{font-weight:700}
.dam-cmpstat.same{color:#166534;background:#e7f6ec;border-radius:6px;padding:1px 8px}
.dam-dual{display:flex;gap:14px;align-items:flex-start}
.dam-pane{flex:1;min-width:0;border:1px solid var(--border);border-radius:12px;padding:10px;background:color-mix(in srgb, var(--surface) 70%, var(--bg))}
.dam-pane.dam-dropover{outline:2px dashed var(--accent);outline-offset:2px}
.dam-pane-h{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.dam-grid.pane{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));flex:1;min-width:0}
.dam-pane-row{display:flex;gap:10px;align-items:flex-start}
.dam-side.compact{position:static;flex:0 0 205px;padding:8px;font-size:.9em}
.dam-side.compact .dam-flist{max-height:34vh}
.dam-pane-name{font-weight:700;font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dam-by{color:var(--faint)}
.dam-date{color:var(--faint)}
.dam-subfolder{color:var(--accent);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:110px}
.dam-foldercard{border-style:dashed}
.dam-foldercard .dam-thumb.ph{font-size:2.2rem;display:flex;align-items:center;justify-content:center}
.dam-foldercard:hover{border-color:var(--accent)}
/* 🔗 Link-Sammlung im Zeigen & Ernten (Ctrl+Klick) */
.pick-linkbar{display:flex;gap:10px;align-items:center;padding:4px 12px;font-size:.8rem;color:var(--accent)}
.pick-linksel{position:absolute;outline:2px solid #16a34a;background:rgba(22,163,74,.14);pointer-events:none;border-radius:4px}
/* Original-Seite: Rechteck-Schneiden direkt auf dem Vollseiten-Abbild; bei ＋-Zoom scrollt der Wrap */
.shot-wrap{position:relative;display:block;max-width:100%;overflow:auto;cursor:crosshair}
/* ⚠ Pflichtfeld-Meldung ist klickbar (Liste + Anspringen); angesprungene Felder blinken kurz auf */
.req-warn{cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.req-warn:hover{filter:brightness(1.2)}
@keyframes pfblink{0%,100%{outline-color:transparent}50%{outline-color:#dc2626}}
.pf-blink{outline:3px solid #dc2626;outline-offset:3px;border-radius:8px;animation:pfblink .65s ease 3}
.pflicht-row{display:flex;gap:10px;align-items:flex-end;margin-bottom:12px}
.pflicht-row>.pf-row{flex:1;margin:0}
/* 🪄 Direkt-Links: Drop-Zone für Links aus dem Browser (gestrichelt beim Drüberziehen) */
.link-dropbox{border:2px dashed transparent;border-radius:10px;padding:4px;transition:.15s}
.link-dropbox.drop-an{border-color:var(--accent);background:rgba(37,99,235,.06)}
/* 📥 Import-Knopf leuchtet, wenn eine Datei darüber schwebt */
.btn.drop-an,label.drop-an{outline:2px dashed var(--accent);outline-offset:2px;background:rgba(37,99,235,.08)}
@media(max-width:1000px){.dam-dual{flex-direction:column}}
.dam-folder-row .dam-folder{flex:1;min-width:0}
.dam-folder-row .iconb{opacity:0;transition:opacity .12s}
.dam-folder-row:hover .iconb{opacity:.8}
.dam-chips{display:flex;flex-wrap:wrap;gap:5px}
.dam-chip{font:inherit;font-size:.74rem;font-weight:600;padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text)}
.dam-chip:hover{border-color:var(--accent)}
.dam-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.dam-main{flex:1;min-width:0}
.dam-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.dam-main.dam-dropover{outline:2px dashed var(--accent);outline-offset:4px;border-radius:12px}
.dam-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px}
.dam-card{display:flex;flex-direction:column;gap:6px;font:inherit;text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:8px;cursor:pointer;color:var(--text)}
.dam-card:hover{border-color:var(--accent);box-shadow:0 4px 14px rgba(0,0,0,.08)}
.dam-card{position:relative}
.dam-warncard{border-color:#e5b3b3;background:#fdf7f7}
.dam-warnbadge{position:absolute;top:6px;right:6px;z-index:2;font-size:.66rem;font-weight:800;color:#fff;background:#d64545;border-radius:6px;padding:2px 7px;box-shadow:0 1px 4px rgba(0,0,0,.25)}
/* Mehrfachauswahl: Häkchen oben links, gewählte Kachel markiert, Auswahl-Leiste */
.dam-selchk{position:absolute;top:8px;left:8px;z-index:3;width:17px;height:17px;cursor:pointer;accent-color:var(--accent)}
/* ⬇ Einzel-Download auf der Kachel — erscheint beim Überfahren; bei ⚠-Kacheln unter das Badge versetzt */
.dam-dlbtn{position:absolute;top:6px;right:6px;z-index:3;display:none;width:26px;height:26px;line-height:26px;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:7px;cursor:pointer;font-size:.85rem;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.dam-card:hover .dam-dlbtn{display:block}
.dam-dlbtn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.dam-warncard .dam-dlbtn{top:34px}
/* Bildtyp (Pflicht-Metadatum am Bild) */
.dam-itype{font-size:.64rem;font-weight:700;background:var(--accent-soft);color:var(--accent);border-radius:5px;padding:1px 6px}
.dam-itype.missing{background:#fdf3e0;color:#b7791f}
.dam-chip.warnchip{border-color:#f3e2c0;color:#b7791f}
.dam-chip.warnchip.on{background:#b7791f;border-color:#b7791f;color:#fff}
/* Scrape-Panel: ＋-Anhängen-Knopf auf Galerie-Bildern */
.scrape-imgwrap{position:relative;display:inline-block}
.scrape-img-add{position:absolute;top:4px;right:4px;width:22px;height:22px;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;font-size:.8rem;line-height:1;padding:0;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.scrape-img-add:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
/* 📤 Export-Dialog */
.dam-exp-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0}
.dam-exp-row b{font-size:.8rem;min-width:78px}
.dam-exp-chk{display:flex;align-items:center;gap:8px;margin:10px 0;font-size:.85rem;cursor:pointer}
.dam-exp-chk input{accent-color:var(--accent);width:16px;height:16px;flex:none}
.dam-card.dam-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.dam-selbar{display:inline-flex;align-items:center;gap:8px;font-size:.8rem}
.dam-thumb{width:100%;height:110px;object-fit:contain;border-radius:8px;background:color-mix(in srgb, var(--surface) 60%, var(--bg))}
.dam-thumb.ph{display:flex;align-items:center;justify-content:center;font-size:2rem}
.dam-thumb.pdfpage{object-fit:contain;background:#fff;border:1px solid var(--border)}
/* PDF-Deckblatt-Miniatur in Dokument-Listen (Produktformular + Seite auslesen) */
.pdf-mini{flex:none;width:44px;height:58px;object-fit:contain;border:1px solid var(--border);border-radius:6px;background:#fff;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.1)}
.pdf-mini:hover{border-color:var(--accent);box-shadow:0 2px 8px rgba(0,0,0,.18)}
.pdf-mini.ph{display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem}
.dam-card-name{font-size:.78rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dam-card-sub{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted)}
.dam-card-meta{display:flex;flex-wrap:wrap;gap:5px;align-items:center;font-size:.68rem;color:var(--muted)}
.dam-fmt{font-weight:800;letter-spacing:.03em;padding:0 6px;border-radius:5px;background:color-mix(in srgb, var(--border) 45%, transparent);color:var(--text)}
.dam-cs{font-weight:700;padding:0 6px;border-radius:5px;background:#e7f6ec;color:#166534}
.dam-cs.cmyk{background:#fdeaea;color:#b91c1c}
.dam-usage{color:var(--accent);font-weight:700}
.dam-card-tags{display:flex;flex-wrap:wrap;gap:3px}
.dam-minitag{font-size:.62rem;font-weight:700;padding:1px 6px;border-radius:6px;background:var(--accent-soft);color:var(--accent)}
.dam-modal{max-width:920px}
.dam-detail{display:flex;gap:18px;align-items:flex-start}
.dam-det-left{flex:0 0 46%;min-width:0}
.dam-det-right{flex:1;min-width:0}
.dam-prev{width:100%;max-height:320px;object-fit:contain;border-radius:10px;background:color-mix(in srgb, var(--surface) 60%, var(--bg))}
.dam-prev.ph{display:flex;align-items:center;justify-content:center;height:180px;font-size:1rem;color:var(--muted);padding:10px;text-align:center}
.dam-prev-pdf{width:100%;height:340px;border:1px solid var(--border);border-radius:10px;background:#fff}
.dam-det-acts{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
@media(max-width:1000px){.dam-layout{flex-direction:column}.dam-side{position:static;flex:none;width:100%}.dam-detail{flex-direction:column}}
/* Bild-Analyse (aus Bildvergleich V8) */
.dam-ana{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;align-items:center}
.dam-ana-chip{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent)}
.dam-ana-chip.warn{background:#fdeaea;color:#b91c1c}
.dam-ana-warn{flex:1 1 100%;font-size:.74rem;font-weight:600;color:#9a3412;background:#fdeadd;border:1px solid #f5cdb0;border-radius:8px;padding:4px 10px}
.dam-ana-ok{flex:1 1 100%;font-size:.74rem;font-weight:600;color:#166534}
/* Versions-Vergleich: Slider + Differenz */
.dam-cmp-stage{margin-top:10px}
.dam-cmp-wrap{position:relative;width:100%;max-height:440px;overflow:hidden;border-radius:10px;background:#f3f4f6}
.dam-cmp-img{display:block;width:100%;max-height:440px;object-fit:contain}
.dam-cmp-img.top{position:absolute;inset:0}
.dam-cmp-line{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);box-shadow:0 0 0 1px rgba(255,255,255,.7)}
.dam-cmp-tag{position:absolute;bottom:8px;font-size:.68rem;font-weight:800;background:rgba(0,0,0,.55);color:#fff;border-radius:6px;padding:2px 8px}
.dam-cmp-tag.l{left:8px}.dam-cmp-tag.r{right:8px}
.dam-cmp-range{width:100%;margin-top:8px}
.dam-cmp-canvas{width:100%;border-radius:10px;border:1px solid var(--border)}

/* Dashboard: Fluss-Layout (Karten mit Breiten-Klassen), Skeleton, neue Karten */
.dash-flow{display:flex;flex-flow:row wrap;gap:16px;align-items:flex-start}
.dash-flow>.dash-block{margin:0}
.dash-w-full{flex:1 1 100%}
.dash-w-half{flex:1 1 calc(50% - 8px);min-width:320px}
.dash-w-third{flex:1 1 calc(33.33% - 11px);min-width:260px}
.dash-skel{border-radius:16px;background:linear-gradient(100deg,var(--surface) 40%,color-mix(in srgb, var(--surface) 60%, var(--bg)) 50%,var(--surface) 60%);background-size:200% 100%;animation:skel 1.2s infinite linear;margin-bottom:12px}
@keyframes skel{from{background-position:200% 0}to{background-position:-200% 0}}
.dash-upd{font-size:.72rem;color:var(--faint)}
.dash-laydrag{cursor:grab;outline:1px dashed var(--accent);outline-offset:2px}
.dash-hiddenmark{opacity:.45}
.cont-row{display:flex;align-items:center;gap:12px}
.cont-main{flex:1;min-width:0}
.wk-row{display:flex;gap:18px;flex-wrap:wrap}
.wk-item{display:flex;flex-direction:column;gap:2px}
.wk-num{font-size:1.5rem;line-height:1.1}
.provg-list{display:flex;flex-direction:column;gap:6px}
.provg-row{display:flex;align-items:center;gap:10px;font:inherit;font-size:.8rem;border:1px solid transparent;background:transparent;padding:4px 8px;border-radius:8px;cursor:pointer;text-align:left}
.provg-row:hover{background:var(--accent-soft)}
.provg-row.on{border-color:var(--accent);background:var(--accent-soft)}
.provg-name{flex:0 0 180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.provg-track{flex:1;height:10px;border-radius:5px;background:color-mix(in srgb, var(--border) 50%, transparent);overflow:hidden}
.provg-fill{display:block;height:100%;border-radius:5px}
.provg-cnt{flex:none;font-weight:700;min-width:22px;text-align:right}
.provg-clear{font:inherit;font-size:.7rem;font-weight:700;border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:1px 8px;cursor:pointer;margin-left:8px}
.qual-tbl{display:flex;flex-direction:column}
.qual-row{display:grid;grid-template-columns:minmax(120px,1.2fr) minmax(140px,1.6fr) 60px 70px 70px;gap:10px;align-items:center;font:inherit;font-size:.8rem;text-align:left;border:none;background:transparent;padding:6px 8px;border-radius:8px;cursor:pointer;color:var(--text)}
.qual-row:hover{background:var(--accent-soft)}
.qual-head{cursor:default;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--faint)}
.qual-head:hover{background:transparent}
.qual-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.qual-bar{position:relative;height:12px;border-radius:6px;background:color-mix(in srgb, var(--border) 50%, transparent);overflow:hidden}
.qual-fill{display:block;height:100%;border-radius:6px}
.qual-pct{position:absolute;right:4px;top:-2px;font-size:.62rem;font-weight:800;color:var(--muted)}
.qual-warn{color:var(--danger);font-weight:700}
.age-badge{font-size:.68rem;color:var(--muted);margin-left:5px}
.age-badge.old{color:var(--danger);font-weight:700}
.dash-skuin{width:86px;font-size:.76rem;padding:4px 7px;border:1px solid var(--border);border-radius:7px}
.qa-cfg{display:flex;flex-wrap:wrap;gap:4px 14px;border-top:1px dashed var(--border);margin-top:10px;padding-top:4px}
.qa-cfg-item{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;color:var(--muted);cursor:pointer}
/* Aufklappbare Dashboard-Karten (FAQ-Stil) */
.fold-head{cursor:pointer;user-select:none}
.fold-head:hover b{color:var(--accent)}
.fold-chev{flex:none;width:18px;height:18px;color:var(--muted);display:inline-flex;transition:transform .18s}
.fold-chev svg{width:100%;height:100%}
.dash-block:not(.folded) .fold-chev{transform:rotate(90deg)}
.dash-block.folded .dash-fold-body{display:none}
.dash-block.folded .dash-block-h{margin-bottom:0}
.dash-cols-2{grid-template-columns:1.5fr 1fr}
.dash-block{padding:12px 14px}
.dash-block-h{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.dash-block-h b{font-size:1rem;color:var(--text)}
.dash-block-h .muted{margin-left:auto;text-align:right}
.link-btn{margin-left:auto;border:none;background:none;color:var(--accent);font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap}
.link-btn:hover{text-decoration:underline}

.donut-row{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.donut-wrap{position:relative;width:148px;height:148px;flex:none}
.donut{width:148px;height:148px;border-radius:50%}
.donut-hole{position:absolute;inset:26px;background:var(--surface);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}
.donut-hole b{font-size:1.35rem;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.donut-hole span{font-size:.66rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.legend{display:flex;flex-direction:column;gap:9px;flex:1;min-width:170px}
.legend-item{display:flex;align-items:center;gap:9px;font-size:.85rem}
.lg-dot{width:11px;height:11px;border-radius:3px;flex:none}
.lg-name{flex:1;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lg-pct{font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.lg-cnt{color:var(--faint);font-size:.8rem;font-variant-numeric:tabular-nums}

.cbars{display:flex;flex-direction:column;gap:15px}
.cbar-top{display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:6px}
.cbar-pct{font-weight:700;font-variant-numeric:tabular-nums}
.cbar-track{height:8px;background:var(--border-2);border-radius:99px;overflow:hidden}
.cbar-fill{height:100%;border-radius:99px;background:var(--grad)}

.recent-tbl{display:flex;flex-direction:column}
.recent-row{display:flex;align-items:center;gap:12px;padding:9px 6px;border-bottom:1px solid var(--border-2);cursor:pointer;border-radius:8px}
.recent-row:hover{background:var(--accent-soft)}
.recent-row:last-child{border-bottom:none}
.recent-th{width:40px;height:40px;border-radius:8px;object-fit:contain;background:#f7f9fc;flex:none}
.recent-th.ph{background:var(--accent-soft)}
.recent-main{flex:1;min-width:0}
.recent-name{font-weight:600;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recent-sub{font-size:.75rem;color:var(--muted)}
.recent-sku{font-size:.78rem;color:var(--muted);flex:none}
.recent-when{font-size:.75rem;color:var(--faint);flex:none;min-width:70px;text-align:right}

.qa-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.qa-tile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 10px;border:1px solid var(--border);border-radius:14px;background:var(--surface);cursor:pointer;transition:border-color .12s,background .12s,transform .12s}
.qa-tile:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}
.qa-ic{font-size:1.5rem}
.qa-lbl{font-size:.82rem;font-weight:600;color:var(--text)}

.rev-grid{display:flex;flex-direction:column;gap:6px}   /* Abschnitte stapeln dicht — kein Leerraum durch Spalten-Angleich */
.rev-sec-h{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.82rem;color:var(--text);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border-2)}
.rev-empty{font-size:.82rem;color:var(--green);padding:6px 2px}
.ok-badge{color:var(--green);font-size:.78rem;font-weight:700;margin-left:8px}
#dash-review{scroll-margin-top:14px}

@media(max-width:1000px){.dash-cols,.dash-cols-2{grid-template-columns:1fr}}

/* ===== Dashboard: farbige Icons, Kopfzeile, Aktivität, Status ===== */
.ic-box{width:34px;height:34px;flex:none;border-radius:10px;display:grid;place-items:center}
.ic-box svg{width:19px;height:19px}
.btn-ico{display:inline-grid;place-items:center}
.btn-ico svg{width:16px;height:16px;vertical-align:middle}
.kpi-accent .ic-box{background:var(--grad)!important;color:#fff}

/* Heute wichtig — priorisierte Aufgaben-Zeile zuoberst */
.dash-prio{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:7px 12px;margin-bottom:10px;box-shadow:var(--shadow)}
.dash-prio-t{font-size:.82rem;color:var(--muted)}
.dash-prio-chip{font:inherit;font-size:.8rem;font-weight:600;border:1px solid #cfe0f4;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:4px 12px;cursor:pointer}
.dash-prio-chip:hover{border-color:var(--accent)}
.dash-prio-chip.warn{background:#fdf3e0;color:#b7791f;border-color:#f3e2c0}
.dash-prio.done{background:#eaf7ef;border-color:#bbe7c9}
.dash-prio-emoji{font-size:1.25rem}
.dash-topbar{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.dash-topbar h1{font-size:1.3rem;font-weight:800;color:var(--text);letter-spacing:-.01em}
.dash-topbar p{margin:3px 0 0}
.top-acts{display:flex;align-items:center;gap:10px;margin-left:auto;flex-wrap:wrap}
.top-search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:8px 12px;min-width:220px;color:var(--muted)}
.top-search-in{border:none;outline:none;background:none;font:inherit;flex:1;min-width:0;color:var(--text)}
.kbd{border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-size:.7rem;color:var(--faint)}
.top-bell{position:relative;width:40px;height:40px;border:1px solid var(--border);background:var(--surface);border-radius:11px;cursor:pointer;display:grid;place-items:center;color:var(--muted)}
.top-bell:hover{border-color:var(--accent);color:var(--accent)}
.top-bell svg{width:19px;height:19px}
.top-bell-badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:.68rem;font-weight:700;display:grid;place-items:center}
.top-acts .btn .btn-ico{margin-right:3px}

.dash-cols-3{grid-template-columns:1fr 1fr 1fr}
.act-list{display:flex;flex-direction:column}
.act-row{display:flex;align-items:flex-start;gap:11px;padding:9px 2px;border-bottom:1px solid var(--border-2)}
.act-row:last-child{border-bottom:none}
.act-row .ic-box{width:30px;height:30px}
.act-row .ic-box svg{width:16px;height:16px}
.act-main{flex:1;min-width:0}
.act-txt{font-size:.84rem;line-height:1.35}
.act-txt b{color:var(--text);font-weight:600}
.act-sub{font-size:.72rem;color:var(--faint)}
.act-when{font-size:.72rem;color:var(--faint);white-space:nowrap;flex:none}

.io-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-2)}
.io-row:last-child{border-bottom:none}
.io-main{flex:1;min-width:0}
.io-h{font-weight:600;font-size:.9rem}
.io-sub{font-size:.78rem}
.io-row .btn.sm{flex:none}

.qa-tile .ic-box{width:42px;height:42px}
.qa-tile .ic-box svg{width:22px;height:22px}

/* Status-Schalter im Produkt-Formular */
.pf-status{border:1px solid var(--border);border-radius:20px;padding:3px 10px;font:inherit;font-size:.72rem;font-weight:700;cursor:pointer;background:var(--surface)}
.pf-status.s-aktiv{color:#16794f;background:#e7f6ec;border-color:#bfe6cd}
.pf-status.s-inaktiv{color:#9a6a12;background:#fdf3e0;border-color:#f2dca9}
.pf-status.s-entwurf{color:var(--accent);background:var(--accent-soft);border-color:#d6d4fb}
.pf-status.s-archiviert{color:#64748b;background:#eef1f5;border-color:#dbe1ea}

@media(max-width:1100px){.dash-cols-3{grid-template-columns:1fr}}

/* ===== Fix: Spalten auf volle Höhe + Reiter/Fuss nicht stauchen ===== */
.prod-catcol,.prod-artcol,.prod-formcol{height:calc(100vh - 104px);max-height:none}
.prod-artcol{display:flex;flex-direction:column;overflow:hidden}
.prod-artcol .col-head{flex:none}
.prod-artcol .art-list{flex:1;overflow:auto;min-height:0}
.prod-artcol .art-pager{flex:none}
/* Reiter-Kopf, Reiter-Leiste und Fuss behalten ihre Höhe, nur das Panel scrollt */
.prod-formcol .pf-tophead,.prod-formcol .pf-tabs,.prod-formcol .pf-foot{flex:none}
.prod-formcol .pf-tabs{min-height:44px}

/* ===== Vom Basisartikel geerbte Medien (für alle Varianten) ===== */
.mv-inherited{margin-bottom:12px}
.mv-inh-h{font-size:.72rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px;display:flex;align-items:center;flex-wrap:wrap}
.mv-own-h{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:2px 0 8px}
.mv-thumb.inh::after{content:'geerbt';position:absolute;bottom:3px;left:3px;font-size:.56rem;font-weight:700;color:#fff;background:rgba(99,102,241,.85);border-radius:5px;padding:1px 5px;pointer-events:none}
.mv-doc.inh{background:var(--accent-soft);border-color:#d6d4fb}

/* ---- Produkt-Import-Dialog ---- */
.imp-overlay{position:fixed;inset:0;z-index:140;background:rgba(15,23,42,.42);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto}
.imp-modal{background:#fff;border-radius:16px;box-shadow:0 24px 60px rgba(15,23,42,.28);width:min(860px,100%);max-height:calc(100vh - 80px);display:flex;flex-direction:column;overflow:hidden}
.imp-head{display:flex;align-items:center;gap:12px;padding:16px 22px;border-bottom:1px solid var(--border)}
.imp-head .spacer{flex:1}
.imp-body{padding:18px 22px;overflow:auto}
.imp-sec{margin-bottom:16px}
.imp-2col{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.imp-lbl{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin:0 0 6px}
.imp-paste{width:100%;min-height:120px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font:13px/1.5 ui-monospace,'Consolas',monospace;resize:vertical;box-sizing:border-box}
.imp-orrow{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.imp-fname{font-size:.82rem}
.imp-sel{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:#fff;font-size:.86rem}
.imp-actions{display:flex;justify-content:flex-end;margin-top:8px}
.imp-result:empty{display:none}
.imp-result{margin-top:8px;border-top:1px solid var(--border);padding-top:16px}
.imp-map{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.imp-maprow{display:grid;grid-template-columns:1fr 20px 1.3fr;align-items:center;gap:8px}
.imp-h{font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.imp-arr{color:var(--faint);text-align:center}
.imp-msel{padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:.82rem;max-width:100%}
.imp-sum{display:flex;align-items:center;gap:8px;margin:4px 0 16px;flex-wrap:wrap}
.imp-chip{font-size:.76rem;font-weight:700;border-radius:20px;padding:4px 12px}
.imp-chip.new{background:rgba(34,197,94,.14);color:#15803d}
.imp-chip.upd{background:rgba(99,102,241,.14);color:#4f46e5}
.imp-chip.skip{background:rgba(245,158,11,.16);color:#b45309}
.imp-prev{max-height:260px;overflow:auto;border:1px solid var(--border);border-radius:10px}
.imp-prow{display:flex;align-items:center;gap:10px;padding:6px 10px;border-bottom:1px solid var(--border)}
.imp-prow:last-child{border-bottom:none}
.imp-badge{flex:none;font-size:.64rem;font-weight:800;border-radius:6px;padding:2px 7px;letter-spacing:.02em}
.imp-pname{flex:1;min-width:0;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.imp-pnote{flex:none;font-size:.76rem}
@media(max-width:640px){.imp-2col{grid-template-columns:1fr}.imp-maprow{grid-template-columns:1fr 16px 1fr}}

/* ---- Infos & Tipps: Karte (Dashboard + Vorschau) ---- */
.tips-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.tip-item{border:1px solid var(--border);border-left:4px solid var(--tipc,#6366f1);border-radius:10px;padding:12px 14px;background:#fff}
.tip-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.tip-emoji{font-size:1.25rem;line-height:1}
.tip-title{font-weight:700;font-size:.92rem}
.tip-img{width:100%;max-height:160px;object-fit:cover;border-radius:8px;margin:8px 0 4px}
.tip-text{font-size:.85rem;color:var(--muted);line-height:1.5;white-space:pre-wrap;margin-top:4px}
/* ---- Infos & Tipps: Editor ---- */
.tip-editor{display:flex;flex-direction:column;gap:14px}
.tip-edit-row{border:1px solid var(--border);border-radius:10px;padding:12px;background:#fbfcfe}
.tip-edit-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.tip-emoji-in{width:54px;text-align:center;font-size:1.15rem;padding:7px 4px;border:1px solid var(--border);border-radius:8px}
.tip-title-in{flex:1;padding:7px 10px;border:1px solid var(--border);border-radius:8px;font-size:.9rem}
.tip-color-in{width:42px;height:36px;padding:2px;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer;flex:none}
.tip-tools{display:flex;gap:4px;margin-left:auto}
.tip-text-in{width:100%;min-height:62px;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit;font-size:.85rem;resize:vertical;box-sizing:border-box}
.tip-img-prev{margin-top:8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tip-img-prev img{max-width:170px;max-height:110px;border-radius:8px;border:1px solid var(--border);object-fit:cover}
.tip-prev{margin-top:10px}

/* ---- Netzwerk / Graph ---- */
.graph-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.g-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid var(--border);border-radius:100px;background:#fff;font-size:.8rem;color:var(--muted);cursor:pointer;transition:all .15s;opacity:.5}
.g-pill.on{opacity:1;color:var(--text,#0f172a);border-color:var(--border-hover,#cbd5e1);box-shadow:0 1px 3px rgba(0,0,0,.04)}
.g-pill:hover{border-color:var(--accent)}
.g-dot{width:9px;height:9px;border-radius:50%;flex:none}
.g-dot.sm{width:7px;height:7px}
.g-cnt{font-size:.68rem;background:#eef2f7;border-radius:8px;padding:1px 6px;color:var(--muted);font-weight:600}
.graph-stage{position:relative;height:calc(100vh - 200px);min-height:420px;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:radial-gradient(circle at 50% 40%,#fff, #f7f8fc)}
.graph-canvas{display:block;width:100%;height:100%;cursor:default}
.graph-detail{position:absolute;top:14px;right:14px;width:300px;max-height:calc(100% - 28px);overflow:auto;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 30px rgba(15,23,42,.12);padding:16px 16px 14px}
.graph-detail.hidden{display:none}
.g-close{position:absolute;top:8px;right:10px;border:none;background:none;font-size:1.2rem;line-height:1;color:var(--faint);cursor:pointer}
.g-close:hover{color:var(--muted)}
.g-d-type{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.g-d-name{font-size:1.05rem;font-weight:700;margin:4px 0 8px;line-height:1.3}
.g-d-facts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.g-chip{font-size:.72rem;background:var(--surface-2,#f1f5f9);color:var(--muted);border-radius:20px;padding:3px 9px}
.g-chip.pin{background:rgba(148,163,184,.18);color:#475569;font-weight:600}
.g-d-sub{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--faint);margin:6px 0 5px}
.g-d-links{display:flex;flex-direction:column;gap:3px;max-height:220px;overflow:auto}
.g-link{display:flex;align-items:center;gap:7px;padding:5px 7px;border:none;background:none;border-radius:7px;font-size:.82rem;color:var(--text,#0f172a);cursor:pointer;text-align:left;width:100%}
.g-link:hover{background:var(--accent-soft)}
.g-d-acts{display:flex;flex-direction:column;gap:7px;margin-top:12px}
.g-d-acts .btn{width:100%;justify-content:center}

/* ---- Design-Auswahl (Einstellungen → Darstellung) ---- */
.theme-row{display:flex;gap:12px;flex-wrap:wrap}
.theme-opt{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1.5px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer;text-align:left;min-width:230px;transition:.15s;font:inherit;color:var(--text)}
.theme-opt:hover{border-color:var(--faint)}
.theme-opt.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.theme-sw{width:46px;height:46px;border-radius:10px;flex:none;border:1px solid rgba(0,0,0,.06)}
.theme-sw.sw-standard{background:linear-gradient(135deg,#6366f1,#8b5cf6)}
.theme-sw.sw-neo{background:#e7ebf2;box-shadow:inset 3px 3px 6px rgba(158,172,199,.6),inset -3px -3px 6px rgba(255,255,255,.9)}
.theme-name{font-weight:600;font-size:.9rem}
.theme-desc{font-size:.78rem;margin-top:2px}

/* 🕘 Änderungs-Verlauf */
.hist-tbl{border-collapse:collapse;width:100%;font-size:.8rem}
.hist-tbl th{background:#eef0ff;text-align:left;padding:5px 8px;position:sticky;top:0}
.hist-tbl td{padding:4px 8px;border-bottom:1px solid var(--border-2);vertical-align:top}
.hist-old{color:var(--faint);text-decoration:line-through;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.hist-new{color:var(--text);font-weight:600;max-width:200px}
/* 📊 Content-Score je Kanal (Qualitäts-Ampel) */
.chan-score{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600}
.chan-dot{width:10px;height:10px;border-radius:50%;flex:none}
.chan-dot.ok{background:#16a34a}.chan-dot.mid{background:#d97706}.chan-dot.bad{background:#dc2626}
.chan-bar{height:7px;border-radius:5px;background:#eef0f4;overflow:hidden;flex:1;min-width:60px}
.chan-bar span{display:block;height:100%;border-radius:5px}
/* 🧩 Kategorie-Vorlage */
.tpl-pick{display:flex;flex-direction:column;gap:6px}
.tpl-pick-item{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:10px;padding:8px 12px;cursor:pointer;background:var(--surface)}
.tpl-pick-item:hover{border-color:var(--accent);background:var(--accent-soft)}

/* 🧭 Begleiter — geführte Hilfe (ohne KI) */
.beg-fab{position:fixed;right:22px;bottom:22px;z-index:120;width:52px;height:52px;border-radius:50%;border:none;background:var(--grad);color:#fff;padding:0;overflow:hidden;cursor:pointer;box-shadow:0 6px 18px rgba(99,102,241,.4)}
.beg-fab-img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 50%;display:block}
.beg-fab:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(99,102,241,.5)}
.beg-panel{position:fixed;right:22px;bottom:86px;z-index:121;width:360px;max-width:calc(100vw - 44px);max-height:72vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 16px 44px rgba(16,24,40,.24);overflow:hidden}
.beg-head{display:flex;align-items:center;gap:8px;padding:12px 14px;background:var(--side);color:#fff}
.beg-head b{font-size:.95rem}
.beg-logo{display:inline-flex}
.beg-logo img{width:22px;height:22px;border-radius:50%;object-fit:cover;object-position:50% 50%;display:block}
.beg-back,.beg-x{border:none;background:rgba(255,255,255,.14);color:#fff;width:26px;height:26px;border-radius:7px;cursor:pointer;font-size:1rem;line-height:1}
.beg-back:hover,.beg-x:hover{background:rgba(255,255,255,.28)}
.beg-sub{padding:10px 14px;font-size:.8rem;color:var(--muted);border-bottom:1px solid var(--border-2)}
.beg-list{overflow:auto;padding:6px}
.beg-topic{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:none;background:none;padding:10px 12px;border-radius:10px;cursor:pointer;font:inherit;font-size:.86rem;color:var(--text)}
.beg-topic:hover{background:var(--accent-soft)}
.beg-ic{font-size:1.1rem;width:24px;text-align:center}
.beg-arrow{margin-left:auto;color:var(--faint);font-size:1.1rem}
.beg-steps{overflow:auto;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.beg-step{display:flex;align-items:flex-start;gap:9px;font-size:.83rem;line-height:1.5}
.beg-num{flex:none;width:20px;height:20px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:.72rem;display:flex;align-items:center;justify-content:center;margin-top:1px}
.beg-goto{flex:none;margin-left:auto;border:1px solid var(--border);background:var(--surface);color:var(--accent);width:26px;height:26px;border-radius:7px;cursor:pointer;font-weight:700}
.beg-goto:hover{background:var(--accent);color:#fff;border-color:var(--accent)}

/* KI-Android-Icon (ersetzt das 🤖-Emoji auf allen KI-Knöpfen) */
.ki-ico{width:17px;height:17px;border-radius:50%;object-fit:cover;object-position:50% 50%;vertical-align:-4px;margin-right:6px;background:#eef2f8;box-shadow:0 0 0 1px rgba(0,0,0,.06)}
button:disabled .ki-ico{opacity:.5}


/* Marken-Chip beim Lieferanten: kleiner „→" springt zur Marke */
.brand-chip{display:inline-flex;align-items:center}
.brand-chip .brand-goto{margin-left:6px;padding:0 5px;border-radius:6px;color:var(--accent);font-weight:700;opacity:.6;cursor:pointer}
.brand-chip .brand-goto:hover{opacity:1;background:var(--accent-soft)}

/* 🌾 Web-Ernte im Auslesen-Panel: Auswahl-Häkchen + Sammel-Leiste */
.harvest-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--border);background:var(--accent-soft);border-radius:0 0 12px 12px}
.hv-chk{position:absolute;top:4px;left:4px;z-index:3;width:17px;height:17px;accent-color:var(--accent);cursor:pointer;background:#fff;border-radius:4px}
.scrape-imgwrap{position:relative;display:inline-block}
.scrape-docrow .hv-chk{position:static;flex:none;margin-right:2px}
.scrape-img-logo{right:auto;left:4px;top:auto;bottom:4px;width:auto;padding:0 7px;font-size:.7rem;font-weight:700}

/* 🖱 Zeigen & Ernten: klickbares Seiten-Abbild mit Element-Landkarte */
.pick-wrap{overflow:auto;flex:1;min-height:200px;border:1px solid var(--border);border-radius:10px;background:#fff}
.pick-inner{position:relative;cursor:crosshair}
.pick-shot{display:block;width:100%;height:auto;user-select:none}
.pick-hl{position:absolute;border:2px solid var(--accent);background:rgba(79,109,205,.12);pointer-events:auto;cursor:grab;border-radius:3px;z-index:2}
.pick-hl:active{cursor:grabbing}
.pick-lbl{position:absolute;background:var(--accent);color:#fff;font-size:.68rem;padding:1px 6px;border-radius:4px;pointer-events:none;white-space:nowrap;z-index:4}
.pick-sel{position:absolute;border:2px solid #2f9e63;background:rgba(47,158,99,.15);pointer-events:none;border-radius:3px;z-index:1}
.pick-rubber{position:absolute;border:2px dashed var(--accent);background:rgba(79,109,205,.1);pointer-events:none;z-index:3}
.pick-menu{position:absolute;display:flex;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px;box-shadow:0 8px 24px rgba(0,0,0,.18);z-index:6}

/* 🔀 Kategorien umsortieren: Einfüge-Linien beim Ziehen + ↑/↓ beim Zeigen */
.tnode.drop-before{box-shadow:inset 0 3px 0 var(--accent)}
.tnode.drop-after{box-shadow:inset 0 -3px 0 var(--accent)}
.tnode .tmove{display:inline-flex;opacity:0;transition:opacity .12s}
.tnode:hover .tmove{opacity:.9}
.tmove .iconb{padding:1px 4px;font-size:.72rem;line-height:1.2}

/* 📄 Datenblatt-Vorlagen: Briefkopf-Zeile, Abschnitts-Liste, Logo-Vorschau */
.stpl-row{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}
.stpl-lbl{font-size:.78rem;font-weight:600;color:var(--muted);min-width:64px}
.stpl-logo{display:inline-flex;align-items:center;gap:6px}
.stpl-logo img{height:30px;max-width:110px;object-fit:contain;background:#fff;border:1px solid var(--border);border-radius:6px;padding:2px 6px}
.stpl-secs{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.stpl-sec{display:flex;align-items:center;gap:8px;padding:3px 6px;border-radius:8px;font-size:.85rem;cursor:pointer}
.stpl-sec:hover{background:var(--hover, rgba(0,0,0,.04))}
.stpl-sec.off .stpl-sec-nm{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}
.stpl-sec-nm{flex:1}
.stpl-sec .iconb{padding:0 5px;font-size:.75rem}
.stpl-texts{display:flex;flex-wrap:wrap;gap:4px 14px;margin:2px 0 4px 30px}
.stpl-txt{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:var(--muted);cursor:pointer}

/* 🖊 Blatt-Editor (Datenblatt-Vorlage direkt auf dem Blatt gestalten) */
.modal-box:has(.shd-wrap){max-width:none;width:min(1240px,95vw);padding:12px}
.shd-wrap{display:flex;flex-direction:column;height:min(860px,86vh)}
.shd-head{display:flex;align-items:center;gap:10px;padding:2px 4px 10px;border-bottom:1px solid var(--border)}
.shd-body{flex:1;display:flex;gap:12px;min-height:0;padding-top:10px}
.shd-frame-wrap{flex:1;overflow:auto;background:var(--bg, #eef1f6);border:1px solid var(--border);border-radius:10px;display:flex;justify-content:center;padding:14px}
.shd-frame{width:820px;min-width:820px;height:100%;border:none;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.14);border-radius:4px}
.shd-side{width:264px;flex:0 0 264px;overflow:auto;display:flex;flex-direction:column;gap:10px}
.shd-box{border:1px solid var(--border);border-radius:10px;padding:10px;font-size:.85rem}
.shd-box.flash{outline:2px solid var(--accent);transition:outline .2s}

/* Baustein-Chip im Vorlagen-Editor: ⠿-Griff zum Verschieben (nur der Griff ist ziehbar) */
.tpl-ph-grip{cursor:grab;opacity:.5;margin-right:4px;font-size:.82em;user-select:none}
.tpl-ph:hover .tpl-ph-grip{opacity:.9}
.tpl-ph-grip:active{cursor:grabbing}

/* 📂 Verschieben-Fenster: Kategorie-Liste wie der Katalog-Baum — aktuell GELB, Ziel beim Zeigen BLAU */
.catpick-row{display:flex;align-items:center;gap:8px;padding:7px 10px;border:none;background:none;border-radius:8px;cursor:pointer;font:inherit;font-size:.88rem;text-align:left;width:100%}
.catpick-row:hover{background:var(--accent-soft);color:var(--accent)}
.catpick-row.cur{background:#fdf3d2;cursor:default}
.catpick-row.cur:hover{background:#fdf3d2;color:inherit}
.catpick-row .cat-ico{width:20px;height:20px;object-fit:contain;flex:none}
.catpick-row .cat-ico-ph{width:20px;flex:none}
.catpick-cur{margin-left:auto;font-size:.68rem;font-weight:700;color:#8a6d1a;background:#f6e3a1;border-radius:8px;padding:1px 8px}

/* ⬚-Gruppen im Vorlagen-Editor: sichtbare Eckklammern [ ] an den Rändern der farbigen Gruppe */
.rte-area .tpl-opt::before{content:'[';font-weight:800;color:#5a6472;margin-right:1px}
.rte-area .tpl-opt::after{content:']';font-weight:800;color:#5a6472;margin-left:1px}
.rte-area .tpl-ph{cursor:grab}
.rte-area .tpl-ph:active{cursor:grabbing}

/* Baustein-Palette im Titel-Dialog: GRÜN = steckt schon in der Vorlage (BP oder Variante) */
.tpl-chip.used{background:#e7f6ec;border-color:#22c55e;color:#15803d;font-weight:600}
.tpl-chip.used::before{content:'✓ ';font-weight:800}

/* ⬚ Klick-Gruppier-Modus: gewählte Bausteine gelb umrandet, Hinweis-Zeile unter der Werkzeugleiste */
.rte-area .tpl-ph.gsel{outline:2px solid #f0b429;outline-offset:1px;border-radius:6px;background:#fdf3d2}
.rte-area.grp-mode .tpl-ph{cursor:pointer}
.rte-btn.on{background:var(--accent-soft);color:var(--accent)}
.rte-grphint{font-size:.75rem;color:#8a6d1a;background:#fdf6dd;border-bottom:1px solid #f0dfa8;padding:5px 10px}

/* 🚦 Artikelliste: BP-Zeilen-Ampel — orange = Planung, gelb = unvollständig, grün = vollständig */
.art-row.bp.st-plan:not(.sel){background:rgba(234,124,32,.15);border-color:#f0cba4}
.art-row.bp.st-todo:not(.sel){background:rgba(250,204,21,.14);border-color:#eddfa0}
.art-row.bp.st-done:not(.sel){background:rgba(34,197,94,.11);border-color:#bfe3ca}

/* 📝 Lücken begründen: Status-Punkte im Dialog */
.gap-dot{width:10px;height:10px;border-radius:50%;flex:none}
.gap-dot.ok{background:#22c55e}
.gap-dot.fehlt{background:#f0b429}

/* ⏳ Lade-Spinner (Seite auslesen / Zeigen & Ernten) — sichtbares „es läuft" */
.lade-spin{width:34px;height:34px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex:none;animation:ladespin .8s linear infinite;margin-bottom:10px}
@keyframes ladespin{to{transform:rotate(360deg)}}

/* Typ-Etiketten an Bildern/Dokumenten (Bildtyp, Dokumenttyp, Sprache) — steuern die Datei-Benennung */
.mv-typ{position:absolute;left:5px;bottom:5px;z-index:2;font-size:.82rem;line-height:1;padding:5px 9px;border-radius:9px;
  border:1px solid var(--border);background:var(--bg);color:var(--muted);cursor:pointer;opacity:.92;font-weight:600}
.mv-typ:hover{border-color:var(--accent);color:var(--accent);opacity:1}
.mv-typ.on{background:var(--accent-soft, #eaf0fb);border-color:var(--accent);color:var(--accent);font-weight:700}
.mv-typ.dok{position:static;flex:none;font-size:.8rem;border-radius:9px}
.mv-typ.warn{border-style:dashed;color:#b0812c;border-color:#d9b970}
/* z-index ÜBER .hovzoom(1300) — das Schnitt-Menü öffnet mitten im Vorschau-Panel und war sonst dahinter versteckt */
.typ-menu{position:fixed;z-index:1400;background:var(--bg);border:1px solid var(--border);border-radius:10px;
  box-shadow:0 10px 30px rgba(0,0,0,.16);padding:4px;display:flex;flex-direction:column;gap:2px;min-width:190px;max-height:320px;overflow:auto}
.typ-mi{text-align:left;border:0;background:none;padding:6px 10px;border-radius:7px;font-size:.8rem;cursor:pointer;color:var(--text)}
.typ-mi:hover{background:var(--accent-soft, #eaf0fb)}
.typ-mi.on{font-weight:700;color:var(--accent)}
.typ-in{margin:4px;padding:5px 8px;border:1px solid var(--border);border-radius:7px;font-size:.78rem}
/* 🔍 Hover-Lupe: grosse Vorschau neben der Miniatur (PDF-Deckblatt / Bild) */
.hovzoom{position:fixed;z-index:1300;background:var(--bg);border:1px solid var(--border);border-radius:12px;
  box-shadow:0 14px 44px rgba(0,0,0,.22);padding:6px;pointer-events:none;max-width:540px;max-height:600px;overflow:hidden}
.hovzoom img{display:block;max-width:520px;max-height:580px;width:auto;height:auto;border-radius:8px;background:#fff}
/* Gepinnte Vorschau: linke Bildschirmhälfte, 90% Höhe — bleibt stehen, rechts bleibt alles bedienbar */
.hovzoom.pin{left:12px;top:50%;transform:translateY(-50%);max-width:calc(50vw - 24px);max-height:92vh;
  pointer-events:auto;padding:8px}
/* Flüchtig (nur Drüberfahren): für die Maus durchsichtig — fängt keine Klicks, erst der Klick auf die Miniatur stellt fest */
.hovzoom.pin.fluechtig{pointer-events:none}
.hovzoom.pin.fluechtig .hz-x{display:none}
.hovzoom.pin img{max-width:calc(50vw - 44px);max-height:88vh}
.hz-x{position:absolute;top:6px;right:6px;z-index:2;width:26px;height:26px;border-radius:8px;border:1px solid var(--border);
  background:var(--bg);color:var(--muted);cursor:pointer;font-size:.8rem;line-height:1}
.hz-x:hover{color:#c0392b;border-color:#c0392b}
.hz-lade{display:flex;align-items:center;gap:12px;padding:34px 46px;color:var(--muted);font-size:.85rem}
.hz-lade .lade-spin{margin-bottom:0;width:26px;height:26px}
/* Blättern in der grossen PDF-Vorschau */
.hz-pdf{position:relative;display:flex;flex-direction:column;gap:6px;align-items:center;min-width:min(600px,calc(50vw - 48px))}
.hz-pdf img{max-width:calc(50vw - 44px);max-height:calc(88vh - 60px)}
/* width:0 + min-width:100%: die Leiste darf die Panel-Breite NIE mitbestimmen — sonst springt das
   Bild bei jedem Status-Wechsel seitlich unter der Maus weg (ihr „kann das Bild nicht speichern") */
.hz-bar{display:flex;gap:6px;align-items:center;justify-content:center;padding:2px 0;cursor:default;width:0;min-width:100%}
.hz-nav{width:38px;height:27px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);cursor:pointer;font-size:1.05rem;line-height:1}
.hz-nav:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.hz-nav:disabled{opacity:.35;cursor:default}
.hz-nav.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.hz-pg{font-size:.8rem;color:var(--muted);min-width:96px;text-align:center}
/* Eigene, IMMER vorhandene Zeile unter den Knöpfen — feste Höhe/Breite, nichts verrutscht beim Text-Wechsel */
.hz-status{display:block;width:0;min-width:100%;min-height:1.2em;text-align:center;padding:0 8px 2px;
  font-size:.82rem;font-weight:700;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mv-cadbtn{border:none;background:none;cursor:pointer;padding:0}
.mv-cadbtn:hover{filter:brightness(1.2)}
.cad3d-canvas{border-radius:8px;background:#fff;cursor:grab;max-width:calc(50vw - 44px);max-height:88vh}
.cad3d-canvas:active{cursor:grabbing}
/* 🔖 Vorgemerkte Verknüpfungen (URL-Merkzettel am Produkt) */
.reln{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border);border-radius:10px;padding:8px 10px}
.reln-status{font-size:.68rem;font-weight:700;padding:2px 7px;border-radius:8px;background:var(--bg);border:1px solid var(--border);color:var(--muted)}
.reln-status.s-offen{color:#b0812c;border-color:#d9b970}
.reln-status.s-uebernommen{color:var(--accent);border-color:var(--accent)}
.reln-status.s-erledigt{color:#2e8b57;border-color:#7bbf9a}
.reln-status.s-abgelehnt{color:#c0392b;border-color:#d99}
.reln.reln-erledigt,.reln.reln-abgelehnt{opacity:.62}
/* 🔢 Markierungen auf Zeichnung/PDF (Original scheint durch, ohne Rand) — ziehbar in die Formularfelder.
   Gelb = Zahl · Blau (sehr transparent) = Textstück */
.zahl-wrap{position:relative;display:inline-block}
/* Beim Anzeige-Zoom (＋) wird das Bild GRÖSSER als das Panel → der Wrap scrollt, Chips bleiben am Inhalt */
.hz-pdf .zahl-wrap{overflow:auto;max-width:calc(50vw - 44px);max-height:calc(88vh - 96px)}
.zahl-chip{position:absolute;z-index:3;background:rgba(255,214,0,.35);border:none;border-radius:4px;
  cursor:grab;user-select:none;box-sizing:border-box}
.zahl-chip:active{cursor:grabbing}
.zahl-chip:hover{background:rgba(255,214,0,.55)}
.txt-chip{position:absolute;z-index:2;background:rgba(37,99,235,.10);border:none;border-radius:4px;
  cursor:grab;user-select:none;box-sizing:border-box}
.txt-chip:active{cursor:grabbing}
.txt-chip:hover{background:rgba(37,99,235,.28)}
.zahl-ghost{position:fixed;top:-200px;left:0;background:#ffd600;color:#111;font-weight:700;font-size:1rem;
  padding:4px 12px;border-radius:8px;box-shadow:0 3px 10px rgba(0,0,0,.3);z-index:9999;max-width:420px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zahl-ghost.blau{background:#3b82f6;color:#fff;font-weight:600;font-size:.85rem}
/* 🧺 Block-Auswahl: markierte Chips + schwebende Leiste (ziehen/kopieren/aufheben) */
.zahl-chip.sel{outline:2px solid var(--accent);background:rgba(255,214,0,.55)}
.txt-chip.sel{outline:2px solid var(--accent);background:rgba(37,99,235,.30)}
.zahl-selbar{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);z-index:7;display:flex;gap:8px;align-items:center;
  background:var(--bg);border:1px solid var(--accent);border-radius:10px;padding:4px 10px;box-shadow:0 4px 14px rgba(0,0,0,.18);font-size:.8rem;white-space:nowrap}
.selbar-drag{cursor:grab;font-weight:700;color:var(--accent)}
.selbar-drag:active{cursor:grabbing}
.selbar-btn{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:7px;padding:2px 8px;cursor:pointer;font-size:.75rem}
.selbar-btn:hover{border-color:var(--accent);color:var(--accent)}
/* 🔀 Bilder-Galerie sortieren: Einfüge-Kante beim Ziehen */
.mv-thumb{cursor:grab}
.mv-thumb.ins-links{box-shadow:-3px 0 0 var(--accent)}
.mv-thumb.ins-rechts{box-shadow:3px 0 0 var(--accent)}
input.drop-wert{outline:2px solid var(--accent);outline-offset:1px}
.zahl-wrap img{cursor:crosshair}   /* Rechteck über eine übersehene Zahl aufziehen = gezielte Nachlese */
.zahl-rect{position:absolute;z-index:4;border:1.5px dashed var(--accent);background:rgba(37,99,235,.08);
  border-radius:3px;pointer-events:none}
/* Vorschau „Nach Schema benennen": alt → neu */
.srn-row{display:flex;gap:10px;align-items:center;padding:5px 16px;font-size:.8rem;border-bottom:1px solid var(--border)}
.srn-row.bleibt{opacity:.66}
.srn-alt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.srn-pfeil{flex:none;color:var(--muted)}
.srn-neu{flex:1;min-width:0;overflow-wrap:anywhere;color:var(--accent)}

/* ===== Spalten einklappen im Produkte-Formular (Fokus-Modus, z.B. Laptop) ===== */
.prod-layout.l-nocat{grid-template-columns:36px minmax(300px,1fr) minmax(360px,1.15fr)}
.prod-layout.l-noart{grid-template-columns:265px 36px minmax(360px,1.15fr)}
.prod-layout.l-nocat.l-noart{grid-template-columns:36px 36px 1fr}
.prod-colrail{height:calc(100vh - 104px);background:var(--surface);border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:12px;cursor:pointer;user-select:none;color:var(--muted)}
.prod-colrail:hover{background:var(--accent-soft);color:var(--accent);border-color:#d6d4fb}
.prod-colrail .rail-ic{font-weight:700;line-height:1}
.prod-colrail .rail-tx{writing-mode:vertical-rl;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.col-hide{flex:none}

/* ===== Einklapp-Pfeil gross und fest oben in der Ecke (Wunsch Aileen 16.07.2026) ===== */
.prod-catcol,.prod-artcol{position:relative}
button.col-hide{position:absolute;top:9px;right:9px;z-index:6;width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:1.15rem;font-weight:700;line-height:1;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--muted);cursor:pointer;padding:0}
button.col-hide:hover{background:var(--accent-soft);color:var(--accent);border-color:#d6d4fb}
.prod-catcol .col-head,.prod-artcol .col-head{padding-right:48px}
.prod-colrail .rail-ic{font-size:1.15rem}

/* ===== Artikel-Kopfzeile: eine Zeile, Pfad gekuerzt, nichts ueberlappt (16.07.2026) ===== */
.prod-artcol .col-head{flex-wrap:nowrap}
.art-htitle{flex:0 1 auto;min-width:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prod-artcol .col-head .art-missf{flex:0 1 auto;min-width:72px;max-width:180px}
.prod-artcol .col-head .art-count{white-space:nowrap}
.prod-artcol .col-head .btn{white-space:nowrap;flex:none}

/* 💬 Rückfragen-Gespräch (Prüf-Liste): Blasen + Kürzel/Foto + Antwortfeld */
.rf-chat { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; max-width: 640px; }
.rf-msg { display: flex; align-items: flex-start; gap: 8px; }
.rf-msg.rf-mein { flex-direction: row-reverse; }
.rf-ava { width: 28px; height: 28px; border-radius: 50%; flex: none; object-fit: cover; border: 2px solid transparent; }
.rf-ava-txt { display: flex; align-items: center; justify-content: center; color: #fff; font-size: .72rem; font-weight: 700; letter-spacing: .02em; }
.rf-bubble { background: var(--panel2, #f1f5f9); border: 1px solid var(--line, #e2e8f0); border-radius: 12px; padding: 6px 10px; max-width: 82%; }
.rf-mein .rf-bubble { background: color-mix(in srgb, var(--acc, #2563eb) 8%, var(--panel, #fff)); }
.rf-kopf { font-size: .7rem; opacity: .65; margin-bottom: 2px; }
.rf-text { font-size: 1rem; line-height: 1.4; word-break: break-word; }
.rf-text a { text-decoration: underline; }
.rf-schreib { display: flex; gap: 6px; margin-top: 2px; }
.rf-in { flex: 1; min-width: 0; font: inherit; font-size: .95rem; line-height: 1.35; padding: 7px 10px; border: 1px solid var(--line, #cbd5e1); border-radius: 8px; background: var(--panel, #fff); color: inherit; resize: vertical; }
.rf-schreib { align-items: flex-end; }

/* Prüf-Liste kompakt: enge Zeilen, Knöpfe nah am Inhalt, Chat-Zeile oben ausgerichtet */
.rev-sec .dash-row { padding: 4px 10px; gap: 8px; }
.rev-sec .dash-row-main { flex: 1 1 auto; }   /* Knöpfe wieder exakt bündig in einer Spalte */
.rev-sec .dash-row-act { margin-left: 8px; }
.dash-row.rf-row { align-items: flex-start; }
.dash-row.rf-row .prov-tag, .dash-row.rf-row .dash-row-act { margin-top: 2px; }
.rev-fold { font-size: .72rem; opacity: .7; }
.rf-vorschau { display: flex; align-items: center; gap: 6px; margin-top: 3px; font-size: .85rem; cursor: pointer; user-select: none; min-width: 0; }
.rf-vorschau:hover { text-decoration: underline; }
.rf-vorschau .muted { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rf-pfeil { font-size: .7rem; opacity: .7; flex: none; }

/* Gruppen-Überschrift in der Provisorisch-Liste (statt gleicher Chip vor jeder Zeile) */
.prov-grp-h { display: flex; align-items: baseline; gap: 4px; font-weight: 700; font-size: .78rem; padding: 8px 10px 2px; color: var(--text); }
.prov-grp-h:first-child { padding-top: 2px; }

/* FAQ-Pfeil an Gesprächs-Zeilen (dreht sich beim Öffnen) + zweispaltige Werte-Liste */
.rf-chev { display: flex; align-items: center; flex: none; width: 18px; opacity: .65; }
.rf-chev svg { width: 16px; height: 16px; transition: transform .18s ease; }
.rf-chev.offen svg { transform: rotate(180deg); }
.dash-list.zweispaltig { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); column-gap: 26px; }
.dash-list.zweispaltig .prov-grp-h { grid-column: 1 / -1; }

/* Mehrzeilige Eingabe im Popup (Rückfragen): 4 Zeilen, angenehme Breite */
.pop-input textarea { min-width: 440px; font: inherit; font-size: .95rem; line-height: 1.35; padding: 7px 10px; border: 1px solid var(--line, #cbd5e1); border-radius: 8px; background: var(--panel, #fff); color: inherit; }

/* Prüf-Panel: jeder Abschnitt als eigene Karte — Titel gross, Gruppen klein mit Linie, Zeilen mit Luft */
.rev-grid { gap: 12px; }
.rev-grid .rev-sec { background: var(--panel2, #f6f8fb); border: 1px solid var(--border-2, #e2e8f0); border-radius: 12px; padding: 10px 14px 8px; }
.rev-grid .rev-sec-h { font-size: .98rem; padding-bottom: 8px; }
.rev-sec .dash-row { padding: 6px 10px; }
.dash-list.zweispaltig { grid-template-columns: repeat(auto-fill, minmax(430px, 1fr)); column-gap: 36px; }
.prov-grp-h { align-items: baseline; padding: 12px 10px 4px; border-bottom: 1px solid var(--border-2, #e2e8f0); margin-bottom: 2px; }
.prov-grp-t { font-size: .86rem; font-weight: 700; }
.prov-grp-ctx { font-size: .74rem; opacity: .65; margin-left: 12px; font-weight: 400; }

/* Dashboard-Module: KPI-Verlaufskurven, Top-5-Liste, Radar */
.kpi-spark { margin-top: 4px; line-height: 0; }
.low5-row { width: 100%; text-align: left; background: none; border: none; cursor: pointer; }
.low5-pct { flex: none; font-weight: 700; font-size: .78rem; padding: 3px 8px; border-radius: 999px; }
.radar-box { line-height: 0; color: var(--text, #1f2937); }

/* Verwendungs-Chip (Prüf-Liste) + Breiten-Wahl im Anpassen-Modus */
.verw-chip { flex: none; font-size: .74rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; background: rgba(99, 102, 241, .1); color: #4f46e5; white-space: nowrap; }
.lay-breite { display: inline-flex; gap: 3px; margin-left: 8px; }
.lay-breite .lay-tb.lay-an { background: var(--acc, #2563eb); color: #fff; border-color: var(--acc, #2563eb); }

/* Aufgaben, Tickets & Termine */
.auf-kopf { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.auf-filter { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.auf-trenn { width: 1px; height: 20px; background: var(--border-2, #e2e8f0); margin: 0 4px; }
.auf-row { align-items: flex-start; }
.auf-prio { flex: none; width: 10px; height: 10px; border-radius: 50%; margin-top: 8px; }
.auf-status { font-size: .8rem; padding: 4px 6px; border-radius: 8px; border: 1px solid var(--border-2, #cbd5e1); background: var(--panel, #fff); color: inherit; max-width: 130px; }
.auf-beschr { font-size: .88rem; margin-top: 3px; white-space: pre-wrap; }
.auf-durch { text-decoration: line-through; opacity: .6; }
.auf-spaet { color: #dc2626; font-weight: 600; }
.auf-form .auf-feld { display: flex; flex-direction: column; gap: 3px; margin-bottom: 8px; flex: 1; }
.auf-lbl { font-size: .74rem; font-weight: 600; opacity: .7; }
.auf-form input, .auf-form select, .auf-form textarea { font: inherit; padding: 7px 10px; border: 1px solid var(--border-2, #cbd5e1); border-radius: 8px; background: var(--panel, #fff); color: inherit; }
.auf-reihe { display: flex; gap: 10px; }

/* Ticket-Themen + Anhänge */
.auf-thema { background: rgba(139, 92, 246, .12); color: #7c3aed; margin-left: 4px; }
.auf-anh { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
.auf-anh-chip { display: inline-flex; align-items: center; gap: 4px; font-size: .78rem; padding: 3px 9px; border-radius: 999px; background: var(--panel2, #f1f5f9); border: 1px solid var(--border-2, #e2e8f0); text-decoration: none; color: inherit; }
a.auf-anh-chip:hover { text-decoration: underline; }
.auf-th-gruppe { border: 1px solid var(--border-2, #e2e8f0); border-radius: 10px; padding: 8px 10px; margin-bottom: 8px; }
.auf-th-kopf { display: flex; align-items: center; margin-bottom: 6px; }
.auf-th-chips { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.auf-thema-zeile { align-items: flex-end; gap: 6px; }

/* Web-Suche-Menü */
.ws-menue { position: fixed; z-index: 1500; width: 360px; background: var(--panel, #fff); border: 1px solid var(--border-2, #cbd5e1); border-radius: 12px; box-shadow: 0 12px 34px rgba(15, 23, 42, .18); padding: 8px; }
.ws-kopf { display: flex; align-items: center; gap: 8px; padding: 2px 4px 8px; border-bottom: 1px solid var(--border-2, #e2e8f0); margin-bottom: 6px; }
.ws-maschine { font-size: .8rem; padding: 4px 6px; border-radius: 8px; border: 1px solid var(--border-2, #cbd5e1); background: var(--panel, #fff); color: inherit; }
.ws-zeile { display: flex; align-items: baseline; gap: 8px; width: 100%; text-align: left; background: none; border: none; cursor: pointer; padding: 6px 8px; border-radius: 8px; color: inherit; }
.ws-zeile:hover { background: var(--accent-soft, #eff6ff); }
.ws-name { font-weight: 600; font-size: .84rem; flex: none; }
.ws-preview { font-size: .74rem; opacity: .6; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ws-frei-zeile { padding: 6px 4px; }
.ws-frei { width: 100%; font-size: .85rem; padding: 6px 10px; border: 1px solid var(--border-2, #cbd5e1); border-radius: 8px; background: var(--panel, #fff); color: inherit; }
.ws-ki { border-top: 1px solid var(--border-2, #e2e8f0); border-radius: 0 0 8px 8px; margin-top: 2px; }
.ws-vw-zeile { display: flex; align-items: center; gap: 8px; padding: 4px 0; }

/* Token-Editor (Korrigieren & freigeben): Chips ziehen = verschmelzen, ∦ = trennen */
.tok-zeile { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-height: 42px; padding: 8px; border: 1px dashed var(--border-2, #cbd5e1); border-radius: 10px; }
.tok-chip { display: inline-flex; align-items: center; gap: 4px; padding: 5px 10px; border-radius: 999px; background: rgba(99, 102, 241, .1); border: 1.5px solid transparent; font-size: .88rem; font-weight: 600; cursor: grab; }
.tok-chip.tok-ueber { border-color: var(--acc, #2563eb); background: rgba(37, 99, 235, .16); }
.tok-text { cursor: text; }
.tok-edit { font: inherit; font-size: .88rem; padding: 2px 6px; border: 1px solid var(--border-2, #cbd5e1); border-radius: 6px; width: 160px; }
.tok-neu { font-size: .85rem; padding: 6px 10px; border: 1px solid var(--border-2, #cbd5e1); border-radius: 8px; background: var(--panel, #fff); color: inherit; min-width: 170px; }

/* Verwendungs-Tabelle (Klick auf den Artikel-Chip) */
.verw-klick { cursor: pointer; border: none; }
.verw-klick:hover { text-decoration: underline; }
.verw-tbl { width: 100%; border-collapse: collapse; font-size: .86rem; }
.verw-tbl th { text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; opacity: .6; padding: 4px 8px; border-bottom: 1px solid var(--border-2, #e2e8f0); }
.verw-tbl td { padding: 6px 8px; border-bottom: 1px solid var(--border-2, #eef2f7); }
.verw-zeile { cursor: pointer; }
.verw-zeile:hover { background: var(--accent-soft, #eff6ff); }

/* Trennen-Knopf im Token: deutlich abgesetzt und beschriftet */
.tok-trenn { margin-left: 10px; font-size: .72rem; font-weight: 600; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--border-2, #cbd5e1); background: var(--panel, #fff); color: inherit; cursor: pointer; opacity: .85; }
.tok-trenn:hover { border-color: var(--acc, #2563eb); color: var(--acc, #2563eb); opacity: 1; }

/* Antwort-Bausteine im Popup (Ablehnen/Rückfrage) */
.pop-bausteine { display: flex; flex-direction: column; align-items: stretch; gap: 6px; margin: 8px 0 10px; max-width: 460px; }
.pop-baustein { font-size: .9rem; line-height: 1.35; text-align: left; padding: 7px 12px; border-radius: 10px; border: 1px solid var(--border-2, #cbd5e1); background: var(--panel2, #f6f8fb); color: inherit; cursor: pointer; }
.pop-baustein:hover { border-color: var(--acc, #2563eb); color: var(--acc, #2563eb); }

/* Popup mit Bausteinen/Textfeld: breiter + grössere Titelschrift, damit alles gut lesbar ist */
.pop-input:has(textarea), .pop-input:has(.pop-bausteine) { max-width: 520px; }
.pop-input:has(textarea) .pop-input-t { font-size: .92rem; }
.pop-input textarea { min-width: 0; width: 100%; box-sizing: border-box; }

/* Produktfotos in der Artikel-Liste immer klar: eigener weisser Grund statt Verrechnung mit der Ampel-Farbe */
.art-row .prod-thumb:not(.ph) { mix-blend-mode: normal !important; background: #fff; border-radius: 6px; }

/* Planungs-Übersicht: KPI-Zeile + Spalten-Ansicht (Kanban) */
.auf-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 12px; }
.auf-kpi { background: var(--panel, #fff); border: 1px solid var(--border-2, #e2e8f0); border-radius: 12px; padding: 10px 14px; }
.auf-kpi-zahl { font-size: 1.5rem; font-weight: 800; line-height: 1.1; }
.auf-kpi-lbl { font-size: .74rem; font-weight: 600; opacity: .65; margin-top: 2px; }
.auf-kpi-sub { font-size: .72rem; opacity: .75; margin-top: 2px; }
.kb-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; align-items: start; }
@media (max-width: 1100px) { .kb-grid { grid-template-columns: repeat(2, 1fr); } }
.kb-col { background: var(--panel2, #f6f8fb); border: 1px solid var(--border-2, #e2e8f0); border-radius: 12px; padding: 8px; min-height: 160px; }
.kb-col.kb-ueber { border-color: var(--acc, #2563eb); background: rgba(37, 99, 235, .06); }
.kb-kopf { display: flex; align-items: center; gap: 6px; padding: 2px 6px 8px; font-size: .88rem; }
.kb-anzahl { font-size: .72rem; font-weight: 700; background: var(--panel, #fff); border: 1px solid var(--border-2, #e2e8f0); border-radius: 999px; padding: 1px 8px; }
.kb-karten { display: flex; flex-direction: column; gap: 8px; min-height: 40px; }
.kb-karte { background: var(--panel, #fff); border: 1px solid var(--border-2, #e2e8f0); border-radius: 10px; padding: 8px 10px; cursor: grab; }
.kb-karte:hover { border-color: var(--acc, #2563eb); }
.kb-karte-kopf { display: flex; align-items: center; gap: 7px; }
.kb-karte-kopf .auf-prio { margin-top: 0; }
.kb-titel { flex: 1; min-width: 0; font-weight: 600; font-size: .86rem; line-height: 1.3; }
.kb-karte-kopf .rf-ava { width: 22px; height: 22px; font-size: .6rem; }
.kb-meta { display: flex; align-items: center; gap: 8px; margin-top: 5px; font-size: .74rem; flex-wrap: wrap; }

/* Kalender (Tag/Woche) */
.kal-wrap { padding: 12px 14px; }
.kal-kopf { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.kal-titel { margin-left: 8px; font-size: .95rem; }
.kal-grid { display: grid; gap: 2px; }
.kal-tag { border-radius: 8px; padding: 4px 6px; min-height: 30px; }
.kal-tag-t { font-weight: 700; font-size: .8rem; margin-bottom: 3px; }
.kal-heute { background: rgba(37, 99, 235, .07); }
.kal-std { font-size: .72rem; opacity: .55; text-align: right; padding: 4px 6px 0 0; }
.kal-zelle { border-top: 1px solid var(--border-2, #eef2f7); min-height: 34px; padding: 2px; cursor: pointer; display: flex; flex-direction: column; gap: 2px; }
.kal-zelle:hover { background: var(--accent-soft, #f0f6ff); }
.kal-termin { display: block; width: 100%; text-align: left; font-size: .76rem; line-height: 1.3; padding: 4px 8px; border-radius: 8px; border: 1px solid rgba(37, 99, 235, .35); background: rgba(37, 99, 235, .1); color: inherit; cursor: pointer; }
.kal-termin:hover { border-color: var(--acc, #2563eb); }
.kal-fertig { opacity: .55; text-decoration: line-through; }
.kal-chip { display: inline-flex; align-items: center; gap: 5px; font-size: .72rem; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--border-2, #e2e8f0); background: var(--panel, #fff); color: inherit; cursor: pointer; margin: 1px 0; max-width: 100%; overflow: hidden; }
.kal-chip .auf-prio { margin-top: 0; width: 7px; height: 7px; }
.kal-fuss { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 8px; font-size: .8rem; }

/* Monatsraster */
.kalm-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.kalm-kopf div { font-size: .74rem; font-weight: 700; opacity: .6; padding: 4px 8px; }
.kalm-zelle { min-height: 96px; border: 1px solid var(--border-2, #eef2f7); border-radius: 8px; padding: 4px 6px; cursor: pointer; display: flex; flex-direction: column; gap: 3px; margin-bottom: 2px; }
.kalm-zelle:hover { border-color: var(--acc, #2563eb); }
.kalm-fremd { opacity: .45; }
.kalm-nr { font-size: .78rem; font-weight: 700; }
.kalm-block { display: block; width: 100%; text-align: left; font-size: .7rem; line-height: 1.25; padding: 3px 7px; border-radius: 7px; border: 1px solid; color: inherit; cursor: pointer; }
.kalm-block b { display: block; font-size: .72rem; }
.kalm-legende { display: flex; gap: 14px; margin-top: 8px; font-size: .76rem; opacity: .8; }
.kalm-leg { display: inline-flex; align-items: center; gap: 5px; }
.kalm-punkt { width: 9px; height: 9px; border-radius: 3px; }

/* Projekt-Leiste + Projekt-Chip */
.prj-leiste { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; margin-bottom: 12px; }
.prj-karte { text-align: left; background: var(--panel, #fff); border: 1px solid var(--border-2, #e2e8f0); border-radius: 12px; padding: 10px 12px; cursor: pointer; color: inherit; }
.prj-karte:hover { border-color: var(--acc, #2563eb); }
.prj-kopf { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.prj-kopf b { font-size: .88rem; }
.prj-balken { height: 7px; border-radius: 999px; background: var(--panel2, #eef2f7); overflow: hidden; }
.prj-voll { height: 100%; border-radius: 999px; }
.prj-sub { display: flex; justify-content: space-between; gap: 8px; font-size: .74rem; opacity: .8; margin-top: 5px; }
.prj-chip { background: rgba(34, 197, 94, .12); color: #15803d; }

/* Timeline (Gantt) — interaktive Balken, Seitenleiste, untere Karten */
.tl-haupt { display: grid; grid-template-columns: minmax(0, 1fr) 264px; gap: 16px; align-items: start; }
@media (max-width: 1100px) { .tl-haupt { grid-template-columns: 1fr; } }
.tl-links { min-width: 0; }
.tl-achse, .tl-zeile { display: grid; grid-template-columns: 220px 1fr; align-items: center; }
.tl-achse { border-bottom: 1px solid var(--border-2, #e2e8f0); padding-bottom: 2px; margin-bottom: 2px; }
.tl-achse .tl-spur { height: 30px; border-left: none; }
.tl-tag { position: absolute; top: 0; display: flex; flex-direction: column; align-items: center; line-height: 1.15; }
.tl-tag b { font-size: .64rem; opacity: .7; }
.tl-tag i { font-style: normal; font-size: .54rem; opacity: .5; }
.tl-we b, .tl-we i { opacity: .32; }
.tl-tag-heute b, .tl-tag-heute i { opacity: 1; font-weight: 800; color: #dc2626; }
.tl-lbl { display: flex; align-items: center; gap: 7px; padding: 3px 8px 3px 2px; min-width: 0; }
.tl-lbl-t { font-size: .8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tl-einzug { padding-left: 18px; }
.tl-spur { position: relative; height: 28px; border-left: 1px solid var(--border-2, #eef2f7); }
/* feines Raster: senkrechte Striche je Tag, waagrechte je Zeile */
.tl-zeile .tl-spur { background-image: linear-gradient(to right, var(--border-2, #eef2f7) 1px, transparent 1px); background-size: var(--tl-tagb, 3.2258%) 100%; }
.tl-zeile { border-bottom: 1px solid var(--border-2, #eef2f7); }
.tl-zeile:last-child { border-bottom: none; }
.tl-balken { position: absolute; top: 3px; height: 22px; display: flex; align-items: center; gap: 6px; border: 1.5px solid; border-radius: 7px;
  font-size: .68rem; line-height: 1; padding: 0 8px; text-align: left; overflow: hidden; white-space: nowrap; color: inherit;
  cursor: grab; user-select: none; touch-action: none; }
.tl-balken.tl-fix { cursor: pointer; }
.tl-balken.tl-zieht { cursor: grabbing; opacity: .88; box-shadow: 0 3px 10px rgba(15, 23, 42, .18); z-index: 3; }
.tl-btitel { overflow: hidden; text-overflow: ellipsis; pointer-events: none; }
.tl-datum { margin-left: auto; font-size: .6rem; opacity: .65; pointer-events: none; }
.tl-griff { position: absolute; top: 0; bottom: 0; width: 9px; cursor: ew-resize; }
.tl-griff-l { left: 0; border-radius: 7px 0 0 7px; }
.tl-griff-r { right: 0; border-radius: 0 7px 7px 0; }
.tl-balken:hover .tl-griff { background: rgba(15, 23, 42, .12); }
.tl-heute { position: absolute; top: -2px; bottom: -2px; width: 2px; background: #dc2626; opacity: .55; }
.tl-gruppe { font-size: .76rem; font-weight: 700; opacity: .8; margin: 10px 0 2px; }
/* Seitenleiste + untere Karten */
.tl-seite { display: flex; flex-direction: column; gap: 12px; }
.tl-karte { padding: 12px 14px; }
.tl-karte-kopf { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.tl-karte-kopf b { font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; opacity: .7; }
.tl-eintrag { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; background: none; border: 0;
  border-bottom: 1px solid var(--border-2, #eef2f7); padding: 7px 2px; cursor: pointer; font-size: .8rem; color: inherit; border-radius: 6px; }
.tl-eintrag:hover { background: rgba(99, 102, 241, .06); }
.tl-eintrag:last-of-type { border-bottom: none; }
.tl-eintrag-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tl-prio-chip { font-size: .64rem; font-weight: 700; border: 1px solid; border-radius: 999px; padding: 2px 8px; white-space: nowrap; background: transparent; }
.tl-wann { font-size: .72rem; white-space: nowrap; }
.tl-donut-zeile { display: flex; align-items: center; gap: 14px; margin-bottom: 6px; }
.tl-donut { width: 88px; height: 88px; flex: none; }
.tl-donut-txt { font-size: 9px; font-weight: 800; fill: currentColor; }
.tl-legs { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0; }
.tl-leg { display: flex; align-items: center; gap: 6px; font-size: .74rem; }
.tl-leg-t { flex: 1; opacity: .72; }
.tl-kw { display: flex; justify-content: space-between; gap: 8px; font-size: .76rem; padding: 5px 0; border-top: 1px solid var(--border-2, #eef2f7); }
.tl-unten { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; margin-top: 12px; }
.tl-tab-scroll { overflow-x: auto; }
.tl-tab { width: 100%; border-collapse: collapse; font-size: .76rem; }
.tl-tab th { text-align: left; font-size: .64rem; text-transform: uppercase; letter-spacing: .04em; opacity: .55; padding: 4px 8px 4px 0; font-weight: 700; }
.tl-tab td { padding: 6px 8px 6px 0; border-top: 1px solid var(--border-2, #eef2f7); }
.tl-tab tbody tr { cursor: pointer; }
.tl-tab tbody tr:hover td { background: rgba(99, 102, 241, .05); }
.tl-prj-balken { flex: 1; min-width: 60px; }
.tl-akt { align-items: flex-start; }
.tl-akt-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.tl-akt-sub { font-size: .7rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Kalender-Drag&Drop: Ziel-Zelle leuchtet beim Darüberziehen */
.kal-drop { outline: 2px dashed #6366f1; outline-offset: -2px; background: rgba(99, 102, 241, .08) !important; }
.kal-chip[draggable="true"], .kal-termin[draggable="true"], .kalm-block[draggable="true"] { cursor: grab; }

/* Gebiete-Dialog: Auswahl links (Suche/Filter), Zugeteiltes rechts */
.geb-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; align-items: start; }
@media (max-width: 760px) { .geb-grid { grid-template-columns: 1fr; } }
.geb-suche { width: 100%; font-size: .86rem; padding: 8px 12px; }
.geb-liste { max-height: 380px; overflow: auto; border: 1px solid var(--border-2, #e2e8f0); border-radius: 10px; }
.geb-zeile { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; background: none; border: 0;
  border-bottom: 1px solid var(--border-2, #eef2f7); padding: 7px 10px; cursor: pointer; font-size: .82rem; color: inherit; }
.geb-zeile:hover { background: rgba(99, 102, 241, .07); }
.geb-zeile:last-child { border-bottom: none; }
.geb-typ { flex: none; font-size: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; border-radius: 5px; padding: 2px 6px; opacity: .8; }
.geb-typ-kategorie { background: rgba(34, 197, 94, .14); color: #15803d; }
.geb-typ-lieferant { background: rgba(37, 99, 235, .12); color: #1d4ed8; }
.geb-typ-marke { background: rgba(245, 158, 11, .16); color: #b45309; }
.geb-typ-thema { background: rgba(139, 92, 246, .14); color: #6d28d9; }
.geb-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.geb-bei { font-size: .68rem; flex: none; }
.geb-chips { max-height: 210px; overflow: auto; }
/* Projekt-Avatare: wer arbeitet mit — überlappende Köpfe/Kürzel */
.prj-avas { display: inline-flex; align-items: center; flex: none; }
.prj-avas .rf-ava { width: 22px; height: 22px; font-size: .58rem; margin-left: -7px; border: 2px solid var(--panel, #fff); box-sizing: content-box; }
.prj-avas .rf-ava:first-child { margin-left: 0; }
.tl-gruppe { display: flex; align-items: center; gap: 10px; }

/* Prognose-Balken (Timeline): gestrichelt = berechnete Dauer, noch ohne echtes Datum */
.tl-balken.tl-prognose { border-style: dashed; opacity: .85; }
/* Spalten-Ansicht „Nach Mitarbeiter": eine Zeile pro Person × Status-Spalten, Karten frei ziehbar */
.kbp-wrap { padding: 10px 12px; overflow-x: auto; }
.kbp-grid { display: grid; grid-template-columns: 170px repeat(4, minmax(160px, 1fr)); gap: 8px; align-items: stretch; }
.kbp-kopf { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; opacity: .6; font-weight: 700; padding: 4px 0 6px; border-bottom: 1px solid var(--border-2, #e2e8f0); margin-bottom: 4px; }
.kbp-name { display: flex; align-items: center; gap: 8px; padding: 8px 4px; min-width: 0; }
.kbp-name-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .82rem; font-weight: 600; }
.kbp-zelle { min-height: 52px; border: 1px dashed var(--border-2, #e2e8f0); border-radius: 10px; padding: 5px; display: flex; flex-direction: column; gap: 6px; }
.kbp-zelle .kb-karte { margin: 0; }
.kbp-grid + .kbp-grid { border-top: 1px solid var(--border-2, #eef2f7); padding-top: 6px; margin-top: 6px; }
.prj-mehr { display: flex; align-items: center; justify-content: center; font-size: .8rem; opacity: .75; min-height: 60px; }

/* Timeline: Status am Balken ablesbar + Legende + Avatare + Prozent */
.tl-balken.tl-neu { background: transparent; }
.tl-balken.tl-arbeit { color: #fff; }
.tl-balken.tl-arbeit .tl-datum { opacity: .85; }
.tl-pct { font-size: .66rem; flex: none; pointer-events: none; }
.tl-ava.rf-ava { width: 16px; height: 16px; font-size: .48rem; flex: none; pointer-events: none; border-width: 1px; }
.tl-lbl .rf-ava { width: 18px; height: 18px; font-size: .5rem; flex: none; }
.tl-legende { display: flex; gap: 14px; flex-wrap: wrap; font-size: .7rem; padding: 5px 2px 7px; }
.tl-leg-e { display: inline-flex; align-items: center; gap: 5px; }
.tl-leg-m { width: 20px; height: 10px; border-radius: 4px; border: 1.5px solid #6366f1; display: inline-block; }
.tl-lm-neu { background: transparent; }
.tl-lm-arbeit { background: #6366f1; }
.tl-lm-pruef { background: rgba(99, 102, 241, .4); }
.tl-lm-fertig { background: rgba(99, 102, 241, .15); opacity: .5; }
.tl-lm-prog { background: transparent; border-style: dashed; }
.tl-gruppe-btn { background: none; border: 0; padding: 2px 0; cursor: pointer; width: 100%; text-align: left; font: inherit; font-weight: 700; font-size: .76rem; color: inherit; }
.tl-gruppe-btn:hover { opacity: 1; background: rgba(99, 102, 241, .05); border-radius: 6px; }
.tl-gruppe .rf-ava { width: 20px; height: 20px; font-size: .54rem; }
/* Checkliste im Dialog + Fortschritt auf Karten */
.cl-liste { display: flex; flex-direction: column; gap: 2px; }
.cl-punkt { display: flex; align-items: center; gap: 8px; padding: 4px 2px; border-bottom: 1px solid var(--border-2, #eef2f7); cursor: pointer; }
.cl-punkt .cl-text { flex: 1; font-size: .86rem; }
.cl-punkt.cl-ok .cl-text { text-decoration: line-through; opacity: .55; }
.cl-neu { margin-top: 6px; font-size: .84rem; padding: 6px 10px; }
.kb-cl-balken { height: 4px; margin-top: 6px; }

/* Mitarbeiter-Köpfe oben im Spalten-Brett: anklicken = filtern */
.kbf-chip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--border-2, #e2e8f0); background: var(--panel, #fff);
  border-radius: 999px; padding: 4px 10px 4px 5px; cursor: pointer; font-size: .78rem; color: inherit; }
.kbf-chip:hover { border-color: var(--acc, #2563eb); }
.kbf-chip.kbf-aktiv { border-color: var(--acc, #2563eb); background: rgba(37, 99, 235, .08); font-weight: 700; }
.kbf-chip .rf-ava { width: 22px; height: 22px; font-size: .56rem; }
.kbf-name { white-space: nowrap; }
.kbp-name { align-items: flex-start; padding-top: 10px; }

/* Beobachten-Stern: dezent, gefüllt wenn aktiv */
.kb-stern { opacity: .45; }
.kb-stern:hover { opacity: 1; }
.kb-stern.beob-an { opacity: 1; }
.kb-stern.beob-an svg { fill: #f59e0b; stroke: #f59e0b; }

/* Mitarbeiter-Akkordeon im Spalten-Brett + STV-Zeichen + Timeline-Personen-Zeile */
.kbp-lane-kopf { display: flex; align-items: center; gap: 9px; width: 100%; text-align: left; background: none; border: 0;
  border-bottom: 1px solid var(--border-2, #eef2f7); padding: 9px 6px; cursor: pointer; font: inherit; color: inherit; border-radius: 8px; }
.kbp-lane-kopf:hover { background: rgba(99, 102, 241, .05); }
.kbp-lane-kopf.kbp-offen { background: rgba(37, 99, 235, .06); font-weight: 700; }
.kbp-lane-kopf .rf-ava { width: 26px; height: 26px; font-size: .6rem; }
.kbp-mini { font-size: .72rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kbp-nur-status { grid-template-columns: repeat(4, minmax(170px, 1fr)); padding: 8px 2px 12px; }
.kbp-zelle-kopf { font-size: .64rem; text-transform: uppercase; letter-spacing: .04em; opacity: .55; font-weight: 700; padding: 1px 2px 3px; }
.kbf-stv { font-size: .58rem; font-weight: 800; letter-spacing: .04em; color: #b45309; border: 1px solid #f59e0b88; border-radius: 5px; padding: 1px 4px; }
.tl-pers-zeile { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; justify-content: flex-end; margin: -2px 0 8px; }

/* Projekt-Stern oben rechts in der Karten-Ecke */
.prj-karte { position: relative; }
.prj-karte .kb-stern { position: absolute; top: 7px; right: 7px; }
.prj-kopf { padding-right: 26px; }
/* KPI-Kacheln als Knöpfe: klick = einblenden, aktiv = blau markiert */
.auf-kpi-btn { text-align: left; font: inherit; color: inherit; cursor: pointer; border: 1px solid var(--border-2, #e2e8f0); }
.auf-kpi-btn:hover { border-color: var(--acc, #2563eb); }
.auf-kpi-btn.auf-kpi-an { border-color: var(--acc, #2563eb); background: rgba(37, 99, 235, .07); box-shadow: inset 0 0 0 1px var(--acc, #2563eb); }
.kpi-hinweis { display: flex; align-items: center; gap: 10px; background: rgba(37, 99, 235, .07); border: 1px solid var(--acc, #2563eb);
  border-radius: 10px; padding: 8px 12px; margin-bottom: 10px; font-size: .84rem; }

/* Projekt-Karten: grösserer Titel, kleinerer Art-Chip, Stern frei in der Ecke, Segment-Striche im Balken */
.prj-kopf { padding-right: 32px; }
.prj-kopf b { font-size: 1.02rem; line-height: 1.25; }
.prj-karte .dash-list-ref { font-size: .62rem; padding: 2px 7px; }
.prj-balken { position: relative; display: block; }
.prj-teilstrich { position: absolute; top: 0; bottom: 0; width: 2px; background: var(--panel, #fff); }
.prj-avas-mehr { cursor: pointer; }
.prj-avas-mehr:hover { filter: brightness(1.15); }
.prj-faellig { cursor: pointer; }
.prj-oben { display: flex; margin-bottom: 5px; padding-right: 26px; }
.prj-karte .prj-kopf { padding-right: 8px; }

/* Minimierbare Bereiche (Kennzahlen, Projekte) + klebende Filterzeile beim Scrollen */
.sek-klapp { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; background: none; border: 0;
  padding: 4px 2px; margin: 2px 0; cursor: pointer; font: inherit; color: inherit; border-radius: 8px; }
.sek-klapp:hover { background: rgba(99, 102, 241, .05); }
.sek-klapp b { font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; opacity: .65; }
.sek-klapp .muted { font-size: .76rem; }
.auf-filter { position: sticky; top: 0; z-index: 30; background: var(--bg, #f1f5f9); padding: 8px 0 8px; }

/* Klapp-Zeilen als erkennbare Tasten + Filterzeile deckt beim Scrollen sauber ab */
.sek-klapp { background: var(--panel, #fff); border: 1px solid var(--border-2, #e2e8f0); border-radius: 10px;
  padding: 9px 14px; margin: 6px 0; box-shadow: 0 1px 2px rgba(15, 23, 42, .05); }
.sek-klapp:hover { border-color: var(--acc, #2563eb); box-shadow: 0 2px 6px rgba(15, 23, 42, .08); }
.sek-klapp b { font-size: .8rem; opacity: .9; }
.sek-klapp .rf-chev { opacity: .85; }
.auf-filter { top: -1px; padding: 12px; margin: 0 -12px 6px; border-bottom: 1px solid var(--border-2, #e2e8f0);
  box-shadow: 0 10px 18px -14px rgba(15, 23, 42, .3); }
/* Die klebende Filterzeile beginnt ganz oben am Scroll-Rand (30px Innen-Polster überbrücken) */
.auf-filter { top: -30px; padding-top: 14px; margin-top: -8px; }

/* Jahres-Zoom der Timeline: Monatsmarken statt Tages-Raster */
.tl-monatstick { align-items: flex-start !important; border-left: 1px solid var(--border-2, #e2e8f0); padding-left: 5px; height: 100%; }
.tl-monatstick b { font-size: .66rem; }
.tl-links-jahr .tl-zeile .tl-spur { background-image: linear-gradient(to right, var(--border-2, #eef2f7) 1px, transparent 1px); background-size: 8.333% 100%; }
/* Grobe Timeline-Zooms (Quartal/Jahr): Monats-Raster statt Tages-Raster */
.tl-links-grob .tl-zeile .tl-spur { background-image: linear-gradient(to right, var(--border-2, #eef2f7) 1px, transparent 1px); background-size: var(--tl-monatb, 8.333%) 100%; }
/* Anfassbarer Datum-Strahl + Projekt-Balken ziehbar */
.tl-achse-griff { cursor: grab; touch-action: none; user-select: none; }
.tl-achse-griff:active { cursor: grabbing; }
.tl-balken.tl-fix { cursor: grab; }
/* Kalenderwochen-Nummern an der Tages-Achse (jeweils am Montag) */
.tl-tag .tl-kw { font-style: normal; font-size: .52rem; font-weight: 800; color: var(--acc, #2563eb); opacity: .85; }
.tl-achse .tl-spur { height: 38px; }

/* Dialog-Abschnitte (Trennlinien) + mehrwertiges Zuständig-Feld + Checklisten-Vorlagen */
.auf-abschnitt { display: flex; align-items: center; gap: 10px; margin: 14px 0 4px; font-size: .66rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: .07em; opacity: .55; }
.auf-abschnitt::after { content: ''; flex: 1; height: 1px; background: var(--border-2, #e2e8f0); }
.auf-form > .auf-abschnitt:first-child { margin-top: 0; }
.zst-chips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.zst-chip { display: inline-flex; align-items: center; gap: 6px; }
.zst-chip .rf-ava { width: 20px; height: 20px; font-size: .52rem; }
.zst-chip.zst-haupt { border-color: var(--acc, #2563eb); }
.zst-add { font-size: .78rem; }
.auf-lbl { display: flex; align-items: center; gap: 8px; }
.cl-vorl { font-size: .74rem; max-width: 170px; }

/* Personen-Auswahl mit Foto (schwebendes Feld) + Projekt-Verlauf + DAM-Pfadzeile */
.pw-panel { position: fixed; z-index: 1200; width: 260px; background: var(--panel, #fff); border: 1px solid var(--border-2, #e2e8f0);
  border-radius: 12px; box-shadow: 0 12px 30px rgba(15, 23, 42, .18); padding: 8px; }
.pw-such { width: 100%; font-size: .82rem; padding: 6px 10px; margin-bottom: 6px; }
.pw-liste { max-height: 260px; overflow: auto; }
.pw-titel { font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; opacity: .5; padding: 5px 4px 3px; }
.pw-zeile { display: flex; align-items: center; gap: 9px; width: 100%; text-align: left; background: none; border: 0;
  padding: 6px 6px; cursor: pointer; font-size: .84rem; color: inherit; border-radius: 8px; }
.pw-zeile:hover { background: rgba(99, 102, 241, .07); }
.pw-zeile.pw-an { background: rgba(37, 99, 235, .07); }
.pw-zeile .rf-ava { width: 26px; height: 26px; font-size: .6rem; }
.pw-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pw-haken { color: var(--acc, #2563eb); font-weight: 800; }
.zst-row { padding: 3px 8px; }
.zst-row .prj-avas .rf-ava { width: 22px; height: 22px; }
.prj-verlauf { display: flex; flex-direction: column; gap: 3px; margin-bottom: 10px; }
.prj-verlauf-z { display: flex; gap: 10px; font-size: .8rem; padding: 3px 0; border-bottom: 1px solid var(--border-2, #eef2f7); }
.prj-verlauf-wann { flex: none; width: 90px; font-size: .72rem; }
.dam-pfad { display: flex; align-items: center; gap: 10px; margin-top: 8px; }
.geb-typ { flex: none; font-size: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; border-radius: 5px; padding: 2px 6px; }

/* Chat-Sprechblase mit Status: gelb = wartet auf deine Antwort, grün = beantwortet */
.chat-knopf { position: relative; display: inline-flex; align-items: center; gap: 4px; }
.chat-knopf.chat-gelb { border-color: #f59e0b; background: rgba(245, 158, 11, .13); color: #b45309; }
.chat-knopf.chat-gruen { border-color: #22c55e; background: rgba(34, 197, 94, .12); color: #15803d; }
.chat-anzahl { font-size: .66rem; font-weight: 800; }

/* Team-Chat: Kanäle links, Verlauf rechts — Teams-artig, ohne Kamera/Mikrofon */
.chat-wrap { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 14px; align-items: start; }
@media (max-width: 900px) { .chat-wrap { grid-template-columns: 1fr; } }
.chat-seite { padding: 12px; position: sticky; top: 0; }
.chat-haupt { padding: 0; display: flex; flex-direction: column; min-height: 60vh; }
.chat-kopf { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--border-2, #e2e8f0); }
.chat-verlauf { flex: 1; overflow-y: auto; max-height: 58vh; padding: 12px 16px; display: flex; flex-direction: column; gap: 10px; }
.chat-tag { display: flex; justify-content: center; margin: 6px 0 2px; }
.chat-tag span { font-size: .68rem; font-weight: 700; opacity: .5; background: var(--panel2, #eef2f7); border-radius: 999px; padding: 2px 10px; }
.chat-msg { position: relative; }
.chat-msg .chat-akt { opacity: 0; display: flex; gap: 2px; align-self: flex-start; }
.chat-msg:hover .chat-akt { opacity: 1; }
.chat-bubble { max-width: 70%; }
.chat-zitat { font-size: .74rem; opacity: .7; border-left: 3px solid var(--acc, #2563eb); padding: 2px 8px; margin: 4px 0; background: rgba(37, 99, 235, .05); border-radius: 0 6px 6px 0; }
.chat-zitat-aktiv { display: flex; align-items: center; gap: 8px; margin: 0 16px; }
.chat-eingabe { border-top: 1px solid var(--border-2, #e2e8f0); padding: 10px 16px 14px; }
.chat-schreib { display: flex; gap: 8px; align-items: flex-end; }
.chat-schreib .rf-in { flex: 1; }
.chat-mention { color: var(--acc, #2563eb); font-weight: 700; }
.chat-mention-ich { background: rgba(245, 158, 11, .2); border-radius: 4px; padding: 0 3px; }
.chat-unge { font-size: .6rem; font-weight: 800; color: #fff; background: var(--acc, #2563eb); border-radius: 999px; padding: 2px 7px; }
.chat-raute { flex: none; width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; opacity: .5; }

/* Mitteilungen: Glocke unten + Eingangs-Liste */
.mitteil-item { width: 100%; margin-bottom: 6px; position: relative; }
.mit-zeile { display: flex; align-items: center; gap: 10px; padding: 8px 4px; border-bottom: 1px solid var(--border-2, #eef2f7); }
.mit-zeile.mit-neu { background: rgba(37, 99, 235, .04); }
.mit-haupt { flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; background: none; border: 0; text-align: left; cursor: pointer; font: inherit; color: inherit; padding: 2px 4px; border-radius: 8px; }
.mit-haupt:hover { background: rgba(99, 102, 241, .06); }
.mit-titel { flex: none; max-width: 300px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .84rem; }
.mit-text { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .8rem; }
.mit-wann { flex: none; font-size: .7rem; }

/* Lieferanten-Kopf: eine Zeile — Artikel-Direktsuche schmal (30%), beschriftete Lieferanten-Suche, Knöpfe */
.direkt-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.direkt-bar .direkt-term { flex: 0 1 30%; min-width: 180px; }
.direkt-lbl { flex: none; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; opacity: .6; margin-left: 8px; }
.direkt-bar .list-search { flex: 1 1 200px; min-width: 160px; }
/* Lieferanten-Zeile: Lieferant-Suche links (20%), Artikel-Direktsuche daneben (40%) */
.direkt-bar .list-search { flex: 0 1 20%; min-width: 140px; }
.direkt-bar .direkt-term { flex: 0 1 40%; min-width: 200px; }

/* Web-Suche: Suchfeld mit Lupe zuoberst, Abschnitt „Suchoptionen", Such-Tricks, KI-Maskottchen */
.ws-frei-zeile { display: flex; gap: 6px; align-items: center; }
.ws-frei { flex: 1; }
.ws-lupe { flex: none; padding: 6px 10px; }
.ws-titel { font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; opacity: .5; padding: 8px 10px 3px; }
.ws-tricks-knopf { display: flex; align-items: center; gap: 6px; width: 100%; text-align: left; background: none; border: 0;
  padding: 6px 10px; cursor: pointer; font-size: .76rem; font-weight: 700; opacity: .7; color: inherit; }
.ws-tricks-knopf:hover { opacity: 1; }
.ws-tricks { padding: 2px 10px 8px; display: flex; flex-direction: column; gap: 4px; }
.ws-trick { display: flex; gap: 8px; font-size: .74rem; align-items: baseline; background: none; border: 0;
  text-align: left; width: 100%; cursor: pointer; padding: 3px 4px; border-radius: 6px; color: inherit; font-family: inherit; }
.ws-trick:hover { background: var(--panel2, #eef2f7); }
.ws-trick:hover code { background: var(--accent, #4f6ef7); color: #fff; }
.ws-trick code { flex: none; min-width: 86px; font-size: .7rem; background: var(--panel2, #eef2f7); border-radius: 5px; padding: 1px 6px; }
.ws-trick span { opacity: .75; }
.ws-ki-ico { width: 20px; height: 20px; border-radius: 50%; object-fit: cover; flex: none; }

/* ===== „Weiterarbeiten"-Karte auf dem Dashboard (Build 633) ===== */
.dash-weiter-k{display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:.8rem;font-weight:600;
  border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:4px 12px;cursor:pointer}
.dash-weiter-k:hover{border-color:var(--accent);color:var(--accent)}
.dash-weiter-k .btn-ico{display:inline-flex;width:15px;height:15px}
.dash-weiter-k .btn-ico svg{width:15px;height:15px}
.dash-weiter-lbl{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== Datei-Ablage-Flächen: Rahmen beim Drüberziehen (Build 633) ===== */
.auf-drop-an{outline:2px dashed var(--accent);outline-offset:-2px;background:var(--accent-soft) !important;border-radius:12px}

/* ===== Tastatur-Spickzettel (Taste ?) (Build 633) ===== */
.kbd-titel{font-size:.72rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin:10px 0 6px}
.kbd-titel:first-child{margin-top:0}
.kbd-zeile{display:flex;align-items:baseline;gap:10px;padding:4px 0;font-size:.84rem}
.kbd-k{flex:none;min-width:86px;text-align:center;font-family:ui-monospace,Consolas,monospace;font-size:.74rem;
  background:var(--bg);border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;padding:2px 8px;color:var(--text)}

/* ===== Theme „Dunkel" — dunkler Grund, helle Schrift; Akzent bleibt Indigo (Build 633) ===== */
html[data-theme="dunkel"]{
  --accent:#818cf8; --accent-d:#9aa3ff; --accent-soft:#272c45;
  --grad:linear-gradient(135deg,#5b5fe0 0%,#7c53d6 100%);
  --grad-d:linear-gradient(135deg,#6a6ef0 0%,#8b63e6 100%);
  --bg:#12151c; --surface:#1a1e28; --border:#2c323f; --border-2:#232833;
  --text:#e6eaf2; --muted:#98a1b3; --faint:#6c7484;
  --danger:#f07178; --green:#4ccb7e; --amber:#e8b04b;
  --side:#0b0e14; --side-2:#1a2233; --side-tx:#9aa7bd; --side-lb:#5b6b86;
  --shadow:0 1px 2px rgba(0,0,0,.5),0 1px 3px rgba(0,0,0,.55);
  --shadow-lg:0 12px 34px rgba(0,0,0,.65);
}
/* Chips/Bänder mit fest kodierten Pastellfarben nachdunkeln */
html[data-theme="dunkel"] .dash-prio-chip{border-color:#3a4160}
html[data-theme="dunkel"] .dash-prio-chip.warn{background:#3a2f16;color:#e8b04b;border-color:#5c4a1e}
html[data-theme="dunkel"] .dash-prio.done{background:#15291c;border-color:#245534}
html[data-theme="dunkel"] .ws-trick code,html[data-theme="dunkel"] .chiplet,html[data-theme="dunkel"] .attr-code{background:#232833;color:var(--text)}
html[data-theme="dunkel"] .ws-trick:hover{background:#232833}
html[data-theme="dunkel"] .kbd-k{background:#232833}
html[data-theme="dunkel"] ::-webkit-scrollbar-thumb{background:#3a4150}
html[data-theme="dunkel"] ::-webkit-scrollbar-track{background:transparent}
/* Weisse Produktbilder/Logos: Multiply würde sie im Dunkeln schlucken → weisses Plättchen darunter */
html[data-theme="dunkel"] .cat-ico,html[data-theme="dunkel"] .cd-icon,
html[data-theme="dunkel"] .prod-thumb:not(.ph),html[data-theme="dunkel"] .recent-th:not(.ph){mix-blend-mode:normal;background:#fff;border-radius:6px}
/* Eingaben: dunkle Fläche statt Weiss */
html[data-theme="dunkel"] input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),
html[data-theme="dunkel"] select,html[data-theme="dunkel"] textarea{background:#141821;border-color:var(--border);color:var(--text)}
html[data-theme="dunkel"] input::placeholder,html[data-theme="dunkel"] textarea::placeholder{color:var(--faint)}
/* Auswahl-Swatch in den Einstellungen */
.theme-sw.sw-dunkel{background:linear-gradient(135deg,#12151c 55%,#272c45);border-color:#3a4160}
/* Dunkel: nackte Buttons (Fokus-Zeilen u.a.) erben sonst Browser-Schwarz */
html[data-theme="dunkel"] button{color:inherit}
html[data-theme="dunkel"] .kpi-accent{background:linear-gradient(135deg,#242a49,#2c2544);border-color:#3a4160}
/* Dunkel: Planungs-Flächen (Kennzahlen, Projekt-Karten, Klapp-Leisten, Chips) über die --panel-Variablen */
html[data-theme="dunkel"]{--panel:#1a1e28;--panel2:#232833}
/* Dunkel: fest-weisse Dialog-/Panel-Flächen nachziehen (Bild-Unterleger bleiben bewusst weiss) */
html[data-theme="dunkel"] .imp-modal,html[data-theme="dunkel"] .map-modal,html[data-theme="dunkel"] .map2-headrow,
html[data-theme="dunkel"] .tip-item,html[data-theme="dunkel"] .graph-detail,html[data-theme="dunkel"] .pick-wrap,
html[data-theme="dunkel"] .g-pill,html[data-theme="dunkel"] .map-item,html[data-theme="dunkel"] .sb-toggle{background:var(--surface)}
/* Dunkel: Produkte-Seite — Artikel-Tönungen (Status), Ansicht-Umschalter, Zähler, Tipp-Karte */
html[data-theme="dunkel"] .view-switch{background:#232833}
html[data-theme="dunkel"] .tnode .tcount{background:#232833}
html[data-theme="dunkel"] .find-card{background:var(--accent-soft);border-color:#3a4160}
html[data-theme="dunkel"] .art-row.bp{background:rgba(250,204,21,.08);border-color:#4c4426}
html[data-theme="dunkel"] .art-row.bp.sel{background:var(--accent-soft);border-color:#3a4160}
html[data-theme="dunkel"] .art-row.variant{background:#161a22}
html[data-theme="dunkel"] .art-row.bp.st-plan:not(.sel){background:rgba(234,124,32,.12);border-color:#5a3d20}
html[data-theme="dunkel"] .art-row.bp.st-todo:not(.sel){background:rgba(250,204,21,.08);border-color:#4c4426}
html[data-theme="dunkel"] .art-row.bp.st-done:not(.sel){background:rgba(34,197,94,.10);border-color:#28452f}
/* Dunkel: Status-Chips und Abzeichen auf allen Seiten (Lieferanten, Marken, Kategorien, DAM, Attribute, Werte) */
html[data-theme="dunkel"] .tattr,html[data-theme="dunkel"] .lvlbadge,html[data-theme="dunkel"] .st-seg,
html[data-theme="dunkel"] .attr-chip.inherited,html[data-theme="dunkel"] .sc-badge.variant,html[data-theme="dunkel"] .chip-x,
html[data-theme="dunkel"] .cd-ownchip,html[data-theme="dunkel"] .vl-count,html[data-theme="dunkel"] .cat-tag,
html[data-theme="dunkel"] .cd-icon.ph{background:#232833;border-color:#2c323f;color:var(--muted)}
html[data-theme="dunkel"] .bp-badge,html[data-theme="dunkel"] .chiplet.type,html[data-theme="dunkel"] .chiplet.sub,
html[data-theme="dunkel"] .chip,html[data-theme="dunkel"] .chip.brand-chip,html[data-theme="dunkel"] .dam-bp,
html[data-theme="dunkel"] .attr-type,html[data-theme="dunkel"] .qbadge{border-color:#3a4160}
html[data-theme="dunkel"] .sup-status.s-on,html[data-theme="dunkel"] .qbadge.q-good,
html[data-theme="dunkel"] .dam-cs,html[data-theme="dunkel"] .sc-b.bp{background:rgba(34,197,94,.12);border-color:#28452f}
html[data-theme="dunkel"] .sup-status.s-off,html[data-theme="dunkel"] .qbadge.q-bad{background:rgba(239,68,68,.12);border-color:#552b2b}
html[data-theme="dunkel"] .sup-status.s-wait,html[data-theme="dunkel"] .qbadge.q-mid,
html[data-theme="dunkel"] .dam-itype.missing,html[data-theme="dunkel"] .dam-chip.warnchip{background:rgba(245,158,11,.12);border-color:#57431e}
html[data-theme="dunkel"] .btn.danger{border-color:#5a3030}
html[data-theme="dunkel"] .pring{background:conic-gradient(var(--accent) calc(var(--p,0)*1%),#2c323f 0)}

/* ===== Treffer-Fenster der Lieferanten-Suche: Lieferanten + Marken + Direkt-Links (Build 635) ===== */
.sup-treffer{position:fixed;z-index:230;min-width:340px;max-width:480px;max-height:50vh;overflow:auto;
  background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px}
.sup-treffer-t{font-size:.66rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);padding:7px 10px 3px}
.sup-treffer-z{display:flex;align-items:center;gap:7px;width:100%;text-align:left;background:none;border:0;
  font:inherit;font-size:.84rem;color:var(--text);padding:6px 10px;border-radius:8px;cursor:pointer}
.sup-treffer-z:hover{background:var(--accent-soft)}
.sup-treffer-z b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px;flex:none}
.sup-treffer-z .muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.76rem}
.sup-treffer-z .ico{flex:none;width:15px;height:15px;display:inline-flex;color:var(--accent)}
.sup-treffer-z .ico svg{width:15px;height:15px}
.sup-treffer-go{margin-left:auto;flex:none;padding:2px 9px;border-radius:6px;color:var(--accent);font-weight:700}
.sup-treffer-go:hover{background:var(--accent);color:#fff}
.sup-treffer-mehr{font-size:.72rem;padding:3px 10px 6px}

/* ===== Katalog-Fenster: PDF-Seite mit gelben Leuchtstift-Markierungen (Build 636) ===== */
.kat-modal{max-width:1060px;width:96vw}
.kat-sel{max-width:340px;font-size:.8rem;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.kat-status{font-size:.76rem;white-space:nowrap}
.kat-seiteinfo{font-size:.8rem;font-weight:600;white-space:nowrap;min-width:100px;text-align:center}
.kat-body{display:flex;gap:0;min-height:420px;max-height:calc(100vh - 210px)}
.kat-treffer{flex:0 0 190px;border-right:1px solid var(--border-2);overflow:auto;padding:6px}
.kat-treffer-t{font-size:.66rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);padding:6px 8px 3px}
.kat-treffer-z{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;text-align:left;background:none;border:0;
  font:inherit;font-size:.8rem;color:var(--text);padding:6px 8px;border-radius:8px;cursor:pointer}
.kat-treffer-z:hover{background:var(--accent-soft)}
.kat-treffer-z .muted{font-size:.7rem}
.kat-seite{flex:1;overflow:auto;background:var(--bg);display:flex;justify-content:center;align-items:flex-start;padding:10px}
.kat-blatt{position:relative;max-width:100%;box-shadow:var(--shadow-lg)}
.kat-blatt img{display:block;max-width:100%;height:auto}
.kat-mark{position:absolute;background:rgba(250,204,21,.42);border-radius:2px;pointer-events:auto;mix-blend-mode:multiply}
.kat-mark-nr{background:rgba(250,204,21,.62);outline:2px solid rgba(217,119,6,.85)}
.kat-fuss{font-size:.76rem;padding:7px 14px;border-top:1px solid var(--border-2)}
html[data-theme="dunkel"] .kat-blatt img{background:#fff}
html[data-theme="dunkel"] .kat-mark{mix-blend-mode:multiply}
/* Katalog-PDF-Verwaltung (Lieferant + Marke) + Medien-Wähler */
.katpdf-row select{flex:0 0 110px}
.katpdf-row .iconb{flex:none;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.katpdf-pick{position:fixed;z-index:300;width:360px;background:var(--surface);border:1px solid var(--border);border-radius:12px;
  box-shadow:var(--shadow-lg);padding:8px}
.katpdf-pick input{width:100%}
.katpdf-pick-lst{max-height:250px;overflow:auto;margin-top:6px;display:flex;flex-direction:column;gap:2px}
.katpdf-pick-z{text-align:left;background:none;border:0;font:inherit;font-size:.8rem;color:var(--text);padding:6px 8px;border-radius:8px;cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.katpdf-pick-z:hover{background:var(--accent-soft)}
/* Katalog-Zeile: Jahr-Feld schmal, Sprach-Chips kompakt (Build 638) */
.katpdf-row{flex-wrap:wrap}
.katpdf-row input:first-child{flex:1 1 180px;min-width:150px}
.katpdf-jahr{flex:0 0 70px !important;min-width:70px !important}
.katpdf-langs{display:inline-flex;gap:4px;flex:none}
.katpdf-langs .type-chip{padding:4px 9px;font-size:.72rem}

/* ===== Katalog-Zeichen in der Lieferanten-Übersicht + Auswahl-Menü (Build 639) ===== */
button.ki-ic,button.meta-link{background:none;border:0;cursor:pointer;font:inherit;padding:0;color:inherit;display:inline-flex;align-items:center;gap:5px}
.kat-menu{position:fixed;z-index:300;min-width:240px;max-width:340px;background:var(--surface);border:1px solid var(--border);
  border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;display:flex;flex-direction:column;gap:2px}
.kat-menu-z{display:flex;align-items:center;gap:8px;text-align:left;background:none;border:0;font:inherit;font-size:.82rem;
  color:var(--text);padding:7px 10px;border-radius:8px;cursor:pointer}
.kat-menu-z:hover{background:var(--accent-soft)}
.kat-menu-z .ico{flex:none;width:15px;height:15px;display:inline-flex;color:var(--accent)}
.kat-menu-z .ico svg{width:15px;height:15px}
/* Such-Treffer: angesprungene Karte leuchtet kurz auf (Build 642) */
.treffer-blitz{outline:3px solid var(--accent);outline-offset:2px;border-radius:12px;transition:outline-color .3s}

/* ===== ETIM-Feld im Kategorie-Kopf (Build 654) ===== */
.cd-etim{width:150px;font-size:.72rem;padding:4px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);text-transform:uppercase}
.cd-etim::placeholder{text-transform:none}
/* 🌐 Sprachfassungen unter den Langtext-Feldern (Build 655) */
.txt-sprachen{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-4px 0 12px;padding:0 2px}
.txt-sprach-lbl{font-size:.74rem;flex:none}
.txt-sprach-chips{display:inline-flex;gap:5px}

/* ===== Build 657: Kurven-Zeitraum-Wähler auf dem Dashboard ===== */
.dash-zeitrow { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin: 10px 0 2px; font-size: .8rem; }
.dash-zeit-sel { width: auto; padding: 3px 8px; border-radius: 8px; border: 1px solid var(--line, #e2e8f0); background: var(--surface); color: inherit; font-size: .78rem; }

/* ===== Build 658: Kurven-Punkt anklicken (Höchststand + Datum/Wert-Anzeige) ===== */
.kpi-spark { position: relative; cursor: crosshair; }
.spark-tip { display: none; position: absolute; bottom: calc(100% + 3px); background: var(--surface); border: 1px solid var(--line, #e2e8f0); border-radius: 6px; padding: 2px 7px; font-size: .68rem; white-space: nowrap; box-shadow: 0 2px 8px rgba(0, 0, 0, .14); pointer-events: none; z-index: 5; color: inherit; }

/* ===== Build 660: Zahlen-Karten ordnen/ausblenden + Karte „Wer hat gearbeitet" ===== */
.cbar-row.wer-du .cbar-top span:first-child { font-weight: 700; }
.cbar-row.wer-du .cbar-fill { background: #22c55e; }
.kpi .lay-tb { flex: none; }

/* ===== Build 661: Dashboard-Reihen buendig — gleiche Hoehe je Reihe statt Treppen ===== */
.dash-flow { align-items: stretch; }

/* ===== Build 662: Strecken zurueckgenommen — kurze Karten werden nicht mehr zu leeren Riesen-Kaesten ===== */
.dash-flow { align-items: flex-start; }

/* Einfuege-Markierung rechts (Karte wird DAHINTER eingefuegt) */
.lay-over-r { box-shadow: inset -4px 0 0 var(--accent) !important; background: var(--accent-soft) !important; }

/* ===== Build 663: Dichtes Karten-Brett — kleine Karten stapeln sich untereinander, Loecher fuellen sich ===== */
.dash-flow { display: grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: 8px; grid-auto-flow: dense; gap: 0 16px; align-items: stretch; }
.dash-flow > .dash-block { margin: 0 0 16px 0; min-width: 0; }
.dash-w-full { grid-column: span 6; }
.dash-w-half { grid-column: span 3; min-width: 0; }
.dash-w-third { grid-column: span 2; min-width: 0; }
@media (max-width: 980px) { .dash-w-third { grid-column: span 3; } }
@media (max-width: 700px) { .dash-w-third, .dash-w-half { grid-column: span 6; } }

/* Mini-Plan im Layout-Modus: schwebende Karten-Liste rechts */
.dash-miniplan { position: fixed; right: 18px; top: 96px; z-index: 60; width: 250px; max-height: 72vh; overflow: auto; background: var(--surface); border: 1px solid var(--line, #e2e8f0); border-radius: 12px; padding: 10px 12px; box-shadow: 0 8px 30px rgba(0, 0, 0, .18); font-size: .78rem; }
.mini-zeile { display: flex; align-items: center; gap: 6px; padding: 2px 0; }
.mini-nr { width: 20px; text-align: right; color: #94a3b8; font-variant-numeric: tabular-nums; flex: none; }
.mini-t { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.mini-t:hover { text-decoration: underline; }
.mini-aus { opacity: .45; }

/* Mini-Plan: Zeilen per Drag umsortieren */
.mini-zeile[draggable] { cursor: grab; }
.mini-zeile[draggable]:active { cursor: grabbing; }
.mini-over-o { box-shadow: inset 0 2px 0 var(--accent); }
.mini-over-u { box-shadow: inset 0 -2px 0 var(--accent); }

/* Mini-Plan: verschiebbar (Kopf ziehen) + Groesse ziehbar (Ecke unten rechts) */
.dash-miniplan { resize: both; min-width: 190px; min-height: 46px; }
.mini-kopf { display: flex; align-items: center; gap: 6px; cursor: move; user-select: none; margin-bottom: 2px; }

/* ===== Build 666: Andocken auch OBEN/UNTEN beim Karten-Ziehen (nicht nur links/rechts) ===== */
.lay-over-o { box-shadow: inset 0 4px 0 var(--accent) !important; background: var(--accent-soft) !important; }
.lay-over-u { box-shadow: inset 0 -4px 0 var(--accent) !important; background: var(--accent-soft) !important; }

/* Mini-Plan: Auge je Zeile — offen = Karte sichtbar, gedimmt = ausgeblendet */
.mini-aug.aus { opacity: .3; }

/* ===== Build 668: Schnellzugriff kompakter — Icon neben dem Text, flache Kacheln ===== */
.qa-grid { gap: 8px; }
.qa-tile { flex-direction: row; justify-content: flex-start; gap: 10px; padding: 8px 12px; }
.qa-tile .ic-box { width: 30px; height: 30px; flex: none; }
.qa-tile .ic-box svg { width: 17px; height: 17px; }

/* ===== Build 671: Karte und Mini-Plan-Zeile leuchten gemeinsam (Klick-Markierung) ===== */
.dash-flow .lay-sel { outline: 2px solid var(--accent); outline-offset: 2px; }
.mini-zeile.mini-sel { background: var(--accent-soft); border-radius: 6px; }
.mini-zeile.mini-sel .mini-t { font-weight: 700; }

/* ===== Build 672: Karten folgen STRIKT der Hand-Reihenfolge (kein automatisches Umspringen mehr) ===== */
.dash-flow { grid-auto-flow: row; }

/* ===== Build 673: Schnellzugriff noch enger — so viele Knoepfe nebeneinander wie Platz haben ===== */
.qa-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }

/* Karten-Deckel: lange Karten scrollen innen (Kopf bleibt stehen) statt alles nach unten zu schieben */
.dash-flow > .dash-block { max-height: 480px; overflow-y: auto; }
.dash-flow > .dash-block > .dash-block-h { position: sticky; top: 0; background: var(--surface); z-index: 2; }

/* ===== Build 674: Klapp-Pfeil links fuer die Zahlen-Karten (statt der Alle-Knoepfe rechts) ===== */
.dash-zeitrow { justify-content: flex-start; }
.dash-zeitrow .spacer { flex: 1; }

/* ===== Build 675: grosser Klapp-Knopf fuer die Zahlen-Karten (keine Mini-Pfeile) ===== */
.dash-kpi-klapp { display: flex; align-items: center; gap: 8px; padding: 8px 16px; font-size: .9rem; font-weight: 600; color: inherit; border: 1px solid var(--line, #e2e8f0); border-radius: 10px; background: var(--surface); cursor: pointer; transition: border-color .12s, background .12s; }
.dash-kpi-klapp:hover { border-color: var(--accent); background: var(--accent-soft); }
.dash-kpi-pfeil { font-size: 1.15rem; line-height: 1; }

/* ===== Build 677: Vermerk im Layout-Modus fuer Karten, die der Kompakt-Modus sonst versteckt ===== */
.dash-kompakt-hinweis { font-size: .68rem; padding: 2px 9px; border-radius: 999px; margin-left: 8px; flex: none; color: #8a6d1a; background: rgba(234, 179, 8, .16); border: 1px dashed rgba(180, 140, 20, .5); }

/* ===== Build 678: Mass-Editor fuer Zeichnungen (Zahl anklicken -> neuen Wert eintippen) ===== */
.mass-input { position: absolute; z-index: 30; padding: 4px 8px; border: 2px solid var(--accent, #4c7ed9); border-radius: 8px; font-size: .9rem; font-weight: 600; background: var(--surface); color: inherit; box-shadow: 0 4px 14px rgba(0, 0, 0, .18); }
.hz-nav.hz-an { background: var(--accent, #4c7ed9); color: #fff; }
.zahl-wrap.mass-an .zahl-chip, .zahl-wrap.mass-an .txt-chip { cursor: text; outline: 1px dashed var(--accent, #4c7ed9); }

/* ===== Build 679: fester Lieferanten-Baustein in der Web-Suche + Kachel-Klick = Artikel-Suche ===== */
.ws-fix { display: inline-flex; align-items: center; gap: 5px; flex: none; padding: 5px 10px; border-radius: 8px; background: var(--accent-soft, #e6edf9); color: var(--accent, #4c7ed9); font-weight: 700; font-size: .85rem; }
.ws-fix .chip-x { cursor: pointer; opacity: .7; }
.ws-fix .chip-x:hover { opacity: 1; }
.ws-frei-zeile { display: flex; align-items: center; gap: 6px; }
.lib-card { cursor: pointer; }

/* ===== Build 681: Im-PIM-Knopf + Info-Fenster (Lieferanten- und Marken-Kacheln) ===== */
.pim-knopf { flex: none; padding: 3px 10px; font-size: .74rem; font-weight: 700; border-radius: 999px; border: 1px solid var(--accent, #4c7ed9); background: var(--accent-soft, #e6edf9); color: var(--accent, #4c7ed9); cursor: pointer; }
.pim-knopf:hover { background: var(--accent, #4c7ed9); color: #fff; }
.pim-info-modal { max-width: 620px; width: 92vw; }
.pim-info-modal .imp-body { max-height: 68vh; overflow: auto; }
.pim-info-filter { width: 100%; box-sizing: border-box; margin-bottom: 10px; padding: 8px 10px; border-radius: 8px; border: 1px solid var(--line, #cdd6e4); font-size: .9rem; }
.pim-kat { font-weight: 700; margin: 12px 0 4px; }
.pim-zeile { display: flex; gap: 10px; width: 100%; text-align: left; align-items: center; padding: 5px 8px; border: none; background: none; border-radius: 8px; cursor: pointer; font-size: .84rem; color: inherit; }
.pim-zeile:hover { background: var(--accent-soft, #e6edf9); }
.pim-variante { padding-left: 34px; opacity: .85; }
.pim-sku { flex: none; min-width: 110px; font-family: Consolas, monospace; font-size: .78rem; color: #667; }
.pim-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pim-var-n { flex: none; font-size: .72rem; color: #889; }

/* Im-PIM-Fenster: Filterzeile mit Kategorie/Produktlinie/Marke */
.pim-filter-zeile { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.pim-filter-zeile .pim-info-filter { flex: 1 1 220px; margin-bottom: 0; }
.pim-info-sel { flex: none; padding: 7px 9px; border-radius: 8px; border: 1px solid var(--line, #cdd6e4); font-size: .84rem; background: var(--surface); color: inherit; max-width: 200px; }

/* ===== Build 683: Im-PIM-Fenster — groessere Schrift, BP-Zeilen gelb, URL-Sprung ===== */
.pim-zeile { font-size: .95rem; padding: 7px 10px; }
.pim-zeile:not(.pim-variante) { background: #fdf3cd; }
.pim-zeile:not(.pim-variante):hover { background: #f7e9a8; }
.pim-variante:hover { background: var(--accent-soft, #e6edf9); }
.pim-sku { font-size: .85rem; }
.pim-kat { font-size: 1rem; }
.pim-url { flex: none; display: inline-flex; align-items: center; color: var(--accent, #4c7ed9); padding: 2px 4px; border-radius: 6px; }
.pim-url:hover { background: #fff; }
.pim-url svg { width: 16px; height: 16px; }

/* ===== Build 684: Im-PIM-Fenster groesser + Nummern-Chips + Varianten-Sprung ===== */
.pim-info-modal { max-width: 980px; }
.pim-info-modal .imp-body { max-height: 78vh; }
.pim-mini { flex: none; font-size: .74rem; font-family: Consolas, monospace; color: #556; background: rgba(0, 0, 0, .06); padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.pim-variante .pim-mini { background: rgba(0, 0, 0, .045); }

/* ===== Build 685: Filter immer EINZEILIG — Fenster wird dafuer breiter, Textfeld schrumpft ===== */
.pim-info-modal { max-width: 1150px; width: 96vw; }
.pim-filter-zeile { flex-wrap: nowrap; }
.pim-filter-zeile .pim-info-filter { flex: 1 1 auto; min-width: 120px; }
.pim-info-sel { max-width: none; }

/* ===== Build 686: Chips im Im-PIM-Fenster sind klickbar (Wert in die Direktsuche) ===== */
.pim-klick { cursor: pointer; }
.pim-klick:hover { background: var(--accent, #4c7ed9); color: #fff; }

/* ===== Build 690: Vorlagen-Aufbau-Zeile — Leerschlag GELB, Handtext VIOLETT, Bausteine blau ===== */
.tpl-struktur { display: flex; flex-wrap: wrap; align-items: center; gap: 3px; margin: 4px 0 2px; }
.st-token { font-size: .72rem; padding: 2px 8px; border-radius: 999px; background: var(--accent-soft, #e6edf9); color: var(--accent, #4c7ed9); font-weight: 600; }
.st-leer { font-size: .72rem; min-width: 16px; text-align: center; padding: 2px 3px; border-radius: 5px; background: #ffe58a; border: 1px solid #e3c55a; color: #7a5c00; font-family: Consolas, monospace; }
.st-hand { font-size: .72rem; padding: 2px 8px; border-radius: 6px; background: #e9dbf7; border: 1px solid #c9aee6; color: #5f3591; font-weight: 600; }
.st-umbruch { font-size: .72rem; padding: 2px 5px; border-radius: 5px; background: #eceef2; color: #778; font-family: Consolas, monospace; }

/* ===== Build 691: Leerschlag-Kaestchen LEER (kein Zeichen) + Klick loescht den Leerschlag ===== */
.st-leer { display: inline-block; width: 14px; height: 15px; padding: 0; cursor: pointer; vertical-align: middle; }
.st-leer:hover { background: #f0c94f; border-color: #c9a53a; }

/* ===== Build 694: Schreibweisen-Befehle (AA/aa/Aa), Symbol-Raster, Im-PIM Besucht-Markierung ===== */
/* Befehls-Chip im Vorlagen-Editor: wirkt auf den naechsten Baustein (GRUEN, klar anders als Bausteine/Handtext) */
.tpl-cmd { display: inline-flex; align-items: center; gap: 2px; background: #e6f4ea; border: 1px solid #9ccfab; color: #1d7a3f; border-radius: 6px; padding: 0 5px; margin: 0 1px; font-size: .72rem; font-weight: 700; font-family: Consolas, monospace; cursor: pointer; user-select: none; vertical-align: baseline; line-height: 1.5; }
.tpl-cmd:hover { background: #d6ecdd; }
.tpl-cmd .tpl-ph-x { color: #1d7a3f; }
.st-cmd { font-size: .68rem; padding: 2px 6px; border-radius: 5px; background: #e6f4ea; border: 1px solid #9ccfab; color: #1d7a3f; font-weight: 700; font-family: Consolas, monospace; }
/* Symbol-Palette: Raster mit 10 Spalten + Fusszeile zum Hinzufuegen/Loeschen */
.rte-symmenu { max-width: none; display: block; padding: 8px; }
.rte-symgrid { display: grid; grid-template-columns: repeat(10, 32px); gap: 4px; }
.rte-symbtn { width: 32px; height: 30px; border: 1px solid var(--border, #d6dbe6); background: var(--surface, #fff); border-radius: 6px; cursor: pointer; font-size: .9rem; display: flex; align-items: center; justify-content: center; padding: 0; color: inherit; }
.rte-symbtn:hover { background: var(--accent-soft, #e6edf9); }
.rte-symbtn.del { border-color: #dd8a8a; color: #b33333; }
.rte-symbtn.del:hover { background: #fbe9e9; }
.rte-symfoot { display: flex; gap: 6px; margin-top: 8px; align-items: center; }
.rte-symin { flex: 1; min-width: 90px; border: 1px solid var(--border, #d6dbe6); border-radius: 6px; padding: 4px 8px; font-size: .8rem; background: var(--surface, #fff); color: inherit; }
.rte-symfoot .btn.on { background: #b33333; border-color: #b33333; color: #fff; }
/* Im-PIM-Fenster: schon angeklickte Chips/URL-Globen + deren Zeilen (solange das Fenster offen ist) */
.pim-klick.pim-besucht { background: #2f3a52; color: #fff; }
.pim-klick.pim-besucht::before { content: '\2713 '; font-weight: 700; }
.pim-url.pim-besucht { color: #1d7a3f; }
.pim-url.pim-besucht::after { content: '\2713'; font-size: .62rem; font-weight: 700; margin-left: 1px; vertical-align: super; }
.pim-zeile.pim-war-da { box-shadow: inset 3px 0 0 #1d7a3f; }

/* ===== Build 697: Sprache als Mehrfach-Chips in der Lieferanten-Tabelle ===== */
.excel-table .type-chip { font-size: .68rem; padding: 1px 7px; }
.excel-table td .cell-flex { align-items: center; }

/* ===== Build 700: Web-Suche - fester Baustein per Klick aus-/einschaltbar ===== */
.ws-fix { cursor: pointer; }
.ws-fix.aus { opacity: .45; text-decoration: line-through; }

/* ===== Build 701: Lieferantkatalog auf der Marken-Kachel (gelbe Chips, aufklappbar) ===== */
.kat-chip { background: #fdf3cd; border-color: #e7d290; }
.kat-chip.kat-link { cursor: pointer; }
.kat-chip.kat-link:hover { background: #f7e9a8; }

/* ===== Build 703: Sprache-Zelle kompakt (Klick-Menue) - Tabelle wieder schmal, kein Gedraenge ===== */
.cell-lang { width: 100%; border: 1px solid transparent; background: none; text-align: left; padding: 4px 6px; border-radius: 6px; cursor: pointer; font-size: .8rem; color: inherit; }
.cell-lang:hover { border-color: var(--border, #d6dbe6); background: var(--surface, #fff); }
.lang-pop { position: fixed; z-index: 500; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; max-width: 250px; padding: 8px; background: var(--surface, #fff); border: 1px solid var(--border, #d6dbe6); border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, .16); }

/* ===== Build 708: Suchfeld in grossen Chip-Bloecken (Katalog/Produktlinien) ===== */
.chipfilter { flex: 1 0 100%; max-width: 260px; border: 1px solid var(--border, #d6dbe6); border-radius: 8px; padding: 4px 10px; font-size: .8rem; background: var(--surface, #fff); color: inherit; }

/* ===== Build 709: Direktsuche-Vorschlaege - eigene Eingabe zuoberst gespiegelt ===== */
.sup-treffer-frei { background: var(--accent-soft, #e6edf9); border-radius: 8px; }
.sup-treffer-frei b { color: var(--accent, #4c7ed9); }

/* ===== Build 710: inaktive in Vorschlaegen zuunterst/ausgegraut + Onboarding-Chip klar ===== */
.sup-treffer-z.z-inaktiv { opacity: .55; }
.chiplet.onb-da { background: #e6f4ea; border-color: #9ccfab; color: #1d7a3f; }
.chiplet.onb-fehlt { opacity: .55; border-style: dashed; }

/* ===== Build 720: Dubletten-Hinweis auf der Lieferanten-Karte ===== */
.chiplet.dub-chip { background: #fdeaea; border-color: #e5a1a1; color: #b33333; font-weight: 600; }

/* ===== Build 722: Sprach-Waehler pro Direkt-Link ===== */
.link-lang { flex: none; width: 62px; font-size: .78rem; padding: 4px 4px; }

/* ===== Build 724: rote Lupe - Such-Link vorhanden, aber als unbrauchbar blockiert ===== */
.iconb.lupe-rot { color: #b33333; }
.iconb.lupe-rot:hover { background: #fbe9e9; }

/* ===== Build 726: Verlauf & Notizen am Lieferanten + Wort-Vorschlaege in der Direktsuche ===== */
.sup-log-liste { max-height: 240px; overflow: auto; border: 1px solid var(--border, #d6dbe6); border-radius: 8px; padding: 4px 6px; background: var(--surface, #fff); }
.sup-log-z { display: flex; gap: 8px; align-items: baseline; padding: 3px 4px; font-size: .78rem; border-bottom: 1px dashed #eef0f4; }
.sup-log-z:last-child { border-bottom: none; }
.sup-log-wann { flex: none; color: #778; font-family: Consolas, monospace; font-size: .72rem; }
.sup-log-art { flex: none; font-size: .68rem; padding: 1px 7px; border-radius: 999px; background: #eef2fb; color: #38508a; border: 1px solid #d3ddf3; }
.sup-log-art.ist-notiz { background: #fdf3cd; border-color: #e7d290; color: #7a6215; }
.sup-log-txt { flex: 1; color: #333; }
.sup-wort b { font-weight: 600; }

/* ===== Build 728: Sprach-Glossar - Werkzeuge + Spaltenkoepfe sticky, Raender symmetrisch, KI-Maskottchen ===== */
.lgx-tools { position: sticky; top: 0; z-index: 21; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; background: var(--surface, #fff); padding: 8px 0; margin: 0 0 4px; }
/* Deck-Balken: schliesst den Spalt ueber der klebenden Leiste (nur nach oben, nicht seitlich raus) */
.lgx-tools::before { content: ''; position: absolute; left: 0; right: 0; top: -44px; bottom: -2px; background: var(--surface, #fff); z-index: -1; }
.lgx-tools { border-bottom: 2px solid var(--border, #d6dbe6); box-shadow: 0 6px 10px -6px rgba(0, 0, 0, .22); }
/* Sprach-Koepfe kleben oben IM Kasten (sauber, weil der Kasten selbst scrollt) */
.lgx-grid .lgx-head { position: sticky; top: 0; z-index: 6; background: var(--surface, #fff); padding: 8px 0 6px; border-bottom: 2px solid var(--border, #d6dbe6); }
.lgx-grid { padding-right: 26px; }   /* Loesch-x mit deutlichem Abstand vom Kartenrand (ihr roter Strich) */
.lgx-grid .iconb { justify-self: center; }

/* ===== Build 730/731: Sprach-Glossar - horizontal scrollbar; x + KI kleben IMMER sichtbar rechts ===== */
/* Excel-Kasten: eigene Hoehe -> horizontaler Balken IMMER sichtbar, Sprach-Koepfe kleben oben im Kasten */
.lgx-scroll { overflow: auto; max-height: calc(100vh - 330px); min-height: 320px; padding-bottom: 4px; border: 1px solid var(--border, #d6dbe6); border-radius: 10px; padding: 0 10px; }
.lgx-scroll .lgx-grid { padding-right: 4px; }
.lgx-grid input.lang-label { min-width: 0; width: 100%; }
.lgx-grid .iconb { position: sticky; z-index: 5; background: var(--surface, #fff); }
.lgx-grid .iconb:not(.del) { right: 46px; box-shadow: -8px 0 10px -8px rgba(0, 0, 0, .3); }
.lgx-grid .iconb.del { right: 2px; }
/* EIN durchgehender Deck-Block hinter KI + x (inkl. Spalt) - kein durchscheinender Text mehr */
.lgx-grid .iconb:not(.del)::before { content: ''; position: absolute; top: -4px; bottom: -4px; left: -6px; right: -52px; background: var(--surface, #fff); z-index: -1; }
/* Speichern-Zeile rechtsbuendig (ihr Pfeil) */
.lang-foot { width: 100%; justify-content: flex-end; }

/* ===== Build 734: Glossar-Werkzeugzeile - kleine Schrift im Filter, volle Breite genutzt ===== */
.lgx-tools select { font-size: .8rem; padding: 5px 8px; border: 1px solid var(--border, #d6dbe6); border-radius: 8px; background: var(--surface, #fff); color: inherit; }

/* ===== Build 735: Vorschlags-Fenster zweispaltig + Verlaufsspalte rechts ===== */
.sup-treffer.sup-treffer-breit { display: flex; gap: 12px; max-width: 1150px; }
/* Eintraege bleiben IN ihrer Spalte: schrumpfen + Punkte statt in die Nachbarspalte laufen */
.st-haupt .sup-treffer-z { min-width: 0; overflow: hidden; }
.st-haupt .sup-treffer-z b { flex: 0 1 auto; }
.st-haupt .sup-treffer-z .muted { flex: 0 1 auto; }
.st-haupt { flex: 1; min-width: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; align-content: start; }
.st-haupt .sup-treffer-t, .st-haupt .sup-treffer-frei, .st-haupt .sup-treffer-mehr { grid-column: 1 / -1; }
.st-verlauf { flex: none; width: 230px; border-left: 1px solid var(--border, #d6dbe6); padding-left: 10px; }

/* ===== Build 736: Logos in den Direktsuche-Vorschlaegen + im Verlauf ===== */
.sup-treffer-z .st-logo { flex: none; width: 28px; height: 28px; object-fit: contain; border-radius: 4px; }

/* ===== Build 737: Sprach-Kuerzel bei Direkt-Links klein (DE frass die ganze Zeile) ===== */
.link-row select.link-lang { flex: 0 0 64px; width: 64px; min-width: 0; padding: 4px 4px; font-size: .78rem; }

/* ===== Build 740: Sucher - Gruppen-Titel doppelt so gross (besser erkennbar) ===== */
.sup-treffer .sup-treffer-t { font-size: 1.05rem; font-weight: 800; letter-spacing: .4px; color: var(--ink, #1e2430); padding: 10px 10px 4px; }

/* ===== Build 745: Verlaufs-Spalte darf scrollen, wenn alle Stichwoerter gezeigt werden ===== */
.sup-treffer .st-verlauf { overflow-y: auto; max-height: min(60vh, 520px); }

/* ===== Build 749: Verlaufszeile - Lieferant mit Logo rechtsbuendig als eigene Spalte ===== */
.st-verlauf .sup-treffer-z { display: flex; align-items: center; gap: 6px; width: 100%; }
.st-verlauf .st-vlief { margin-left: auto; display: flex; align-items: center; gap: 6px; min-width: 0; flex: 0 1 auto; }
.st-verlauf .st-vlief .st-logo { width: 22px; height: 22px; }
.st-verlauf .st-vlief:hover .muted { text-decoration: underline; }

/* Build 749b: In der Verlaufszeile schrumpft die MITTE (Variante), nie der Lieferant rechts */
.st-verlauf .sup-treffer-z b,
.st-verlauf .sup-treffer-z > .muted { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.st-verlauf .st-vlief { flex: 0 0 auto; }
.st-verlauf .st-vlief .muted { overflow: visible; white-space: nowrap; }

/* ===== Build 750: Drei Verlaufs-Spalten im Artikel-Sucher ===== */
.sup-treffer .st-verlauf.st-sp { width: 215px; flex: 0 0 auto; }

/* ===== Build 751: Verlauf pflegen - Pin/Entfernen-Knoepfe + Favoriten-Stern ===== */
.st-verlauf .st-akt { flex: 0 0 auto; width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; color: var(--muted); cursor: pointer; }
.st-verlauf .st-akt:hover { background: rgba(0,0,0,.07); color: var(--ink, #1e2430); }
.st-verlauf .st-akt.an { color: #b45309; }
.st-verlauf .st-akt .ico, .st-verlauf .st-akt svg { width: 15px; height: 15px; display: block; }
.st-verlauf .ico.st-fav { color: #b45309; flex: 0 0 auto; }
.st-verlauf .ico.st-fav svg { width: 14px; height: 14px; display: block; }

/* ===== Build 752: Sterne einfarbig + rechts sauber untereinander, Pin-aktiv ohne Farbe ===== */
.st-verlauf .ico.st-fav { color: var(--muted); }
.st-verlauf .st-fav-platz { flex: 0 0 auto; width: 14px; }
.st-verlauf .st-akt.an { color: var(--ink, #1e2430); background: rgba(0,0,0,.08); }

/* Build 753: Lupe in den Zeilen braucht Platz - Verlaufs-Spalten etwas breiter */
.sup-treffer .st-verlauf.st-sp { width: 245px; }

/* ===== Build 754: Sucher-Fenster hebt sich ab + Haupt-Gruppen kuerzen nicht mehr extrem ===== */
.st-dim { position: fixed; left: 0; right: 0; bottom: 0; top: 0; background: rgba(15, 23, 42, .22); backdrop-filter: blur(2.5px); z-index: 229; }
.sup-treffer.sup-treffer-breit { max-width: min(96vw, 1680px); box-shadow: 0 18px 50px rgba(15, 23, 42, .28); }
/* Zweispaltig nur, wenn wirklich Platz ist - sonst EINE volle Spalte statt extrem gekuerzter Eintraege */
.st-haupt { grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); }
/* abc/123-Umschalter an der Verlaufszeile */
.st-verlauf .st-akt.st-abc { width: auto; padding: 0 6px; font-size: .6rem; font-weight: 800; letter-spacing: .5px; }

/* ===== Build 755: Sucher-Icons - EINE Farbe (grau) und feste Spalten, exakt untereinander ===== */
/* Abstandhalter wirkt jetzt auch in den Verlaufszeilen - Icons ruecken geschlossen nach rechts */
.st-verlauf .sup-treffer-z .spacer { flex: 1 1 auto; min-width: 6px; }
/* Feste Slot-Breiten: Stern 18px, Knoepfe 24px, abc/123 30px - dadurch stehen alle buendig untereinander */
.st-verlauf .st-akt, .st-verlauf .sup-treffer-go { flex: 0 0 24px; width: 24px; height: 24px; padding: 0; margin-left: 0; display: inline-flex; align-items: center; justify-content: center; }
.st-verlauf .st-akt.st-abc { flex: 0 0 30px; width: 30px; }
.st-verlauf .ico.st-fav, .st-verlauf .st-fav-platz { flex: 0 0 18px; width: 18px; display: inline-flex; justify-content: center; }
/* EINE Farbe fuer alle Aktions-Icons im ganzen Sucher-Fenster (nur die Warn-Lupe bleibt rot) */
.sup-treffer .sup-treffer-go, .sup-treffer .st-akt { color: var(--muted); font-weight: 600; }
.sup-treffer .sup-treffer-go:hover, .sup-treffer .st-akt:hover { color: var(--ink, #1e2430); background: rgba(0,0,0,.07); }
.sup-treffer .sup-treffer-go.lupe-rot, .sup-treffer .st-akt.lupe-rot { color: #dc2626; }

/* ===== Build 757: Grosses Loesch-x in beiden Suchfeldern, immer sichtbar ===== */
.direkt-bar .feld-wrap { position: relative; display: flex; min-width: 0; }
.direkt-bar .feld-wrap.fw-lief { flex: 0 1 20%; min-width: 140px; }
.direkt-bar .feld-wrap.fw-art { flex: 0 1 40%; min-width: 200px; }
.direkt-bar .feld-wrap > input { flex: 1; width: 100%; min-width: 0; padding-right: 38px; }
.direkt-bar .feld-wrap .feld-x { position: absolute; right: 5px; top: 50%; transform: translateY(-50%);
  width: 28px; height: 28px; border: none; background: transparent; color: var(--muted);
  font-size: 1.02rem; font-weight: 700; cursor: pointer; border-radius: 7px;
  display: flex; align-items: center; justify-content: center; }
.direkt-bar .feld-wrap .feld-x:hover { background: rgba(0,0,0,.08); color: var(--ink, #1e2430); }
/* das kleine Browser-eigene Such-x abschalten - wir haben jetzt das grosse */
.direkt-bar .feld-wrap input[type=search]::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }

/* ===== Build 759: Suchmappen - Ordner-Panel rechts + Ordner-Auswahl-Menue ===== */
.mappen-panel { position: fixed; top: 74px; right: 16px; width: 400px; max-height: calc(100vh - 100px);
  overflow: auto; z-index: 240; display: flex; flex-direction: column; gap: 8px; padding: 12px;
  box-shadow: 0 18px 50px rgba(15, 23, 42, .3); }
.mappen-kopf { display: flex; align-items: center; gap: 8px; padding: 0 2px 4px; }
.mappen-liste { display: flex; flex-direction: column; gap: 8px; }
.mappe { border: 1px solid var(--border); border-radius: 10px; padding: 6px 8px; background: var(--surface); }
.mappe-kopf { display: flex; align-items: center; gap: 7px; min-width: 0; }
.mappe-kopf b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.mappe-eintrag { display: flex; align-items: center; gap: 6px; padding: 3px 0 3px 4px; min-width: 0; }
.mappe-eintrag b { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .82rem; }
.mappe-eintrag input[type=text] { flex: 1; min-width: 60px; font-size: .76rem; padding: 4px 7px; border: 1px solid var(--border); border-radius: 7px; }
.mappe-eintrag .b-erledigt, b.b-erledigt { text-decoration: line-through; color: var(--muted); }
.mappen-pop { position: fixed; z-index: 245; width: 280px; padding: 6px; display: flex; flex-direction: column; gap: 2px;
  box-shadow: 0 12px 36px rgba(15, 23, 42, .3); }
.mappen-pop .sup-treffer-z { display: flex; align-items: center; gap: 7px; }

/* ===== Build 760: Ordner-Spalte ganz rechts im Sucher + Drag-and-Drop ===== */
.sup-treffer .st-verlauf.st-ordner { width: 200px; }
.st-ordner .ordner-ziel { border: 1px dashed transparent; border-radius: 8px; }
.st-ordner .ordner-ziel.drop-da { background: rgba(37, 99, 235, .1); border-color: var(--accent); }
.st-verlauf .sup-treffer-z[draggable=true] { cursor: grab; }

/* ===== Build 761: Flaeche nutzen - Spalten breit genug, Namen nicht mehr kuerzen ===== */
.sup-treffer .st-verlauf.st-breit { width: 430px; }
.sup-treffer .st-verlauf.st-sp.sp-a { width: 290px; }
.sup-treffer .st-verlauf.st-sp.sp-b { width: 310px; }
.sup-treffer .st-verlauf.st-sp.sp-c { width: 310px; }
.sup-treffer .st-verlauf.st-ordner { width: 230px; }

/* Build 762: Auch in den HAUPT-Gruppen (Lieferanten/Marken/Katalog) stehen die Icons
   in festen Spalten am rechten Rand - exakt untereinander, egal wie lang der Name ist */
.st-haupt .sup-treffer-z { display: flex; align-items: center; gap: 6px; width: 100%; }
.st-haupt .sup-treffer-z .sup-treffer-go { flex: 0 0 26px; width: 26px; height: 24px; padding: 0; margin-left: 0;
  display: inline-flex; align-items: center; justify-content: center; }
.st-haupt .sup-treffer-z .sup-treffer-go:first-of-type { margin-left: auto; }

/* Build 762b: Das ERSTE Aktions-Icon jeder Haupt-Zeile traegt .go-erst und zieht den Block nach rechts */
.st-haupt .sup-treffer-z .sup-treffer-go { margin-left: 0; }
.st-haupt .sup-treffer-z .go-erst { margin-left: auto; }

/* ===== Build 763: Suchmappen-Panel im App-Stil - Karten mit Luft, Flaechen-Icons, Zaehler-Chips ===== */
.mappen-panel { width: 460px; padding: 14px; gap: 10px; border-radius: 16px; }
.mappen-kopf { padding: 0 2px 6px; border-bottom: 1px solid var(--border); }
.mappen-titel b { font-size: 1.02rem; }
.mappen-unter { font-size: .72rem; }
.mappe-ico { flex: 0 0 34px; width: 34px; height: 34px; border-radius: 10px; background: rgba(0, 0, 0, .05);
  display: inline-flex; align-items: center; justify-content: center; color: var(--muted); }
.mappe-ico svg { width: 17px; height: 17px; }
.mappe-ico.gross { flex-basis: 40px; width: 40px; height: 40px; }
.mappe-ico.gross svg { width: 20px; height: 20px; }
.mappe { padding: 10px 12px; border-radius: 12px; transition: box-shadow .12s; }
.mappe:hover { box-shadow: 0 4px 14px rgba(15, 23, 42, .08); }
.mappe-kopf { gap: 9px; }
.mappe-kopf b { font-size: .92rem; }
.mappe-pf { flex: 0 0 22px; width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; border-radius: 6px; }
.mappe-pf:hover { background: rgba(0, 0, 0, .06); }
.chiplet.mappe-zahl { flex: 0 0 auto; }
.mappe-eintrag { padding: 6px 0 6px 30px; border-top: 1px solid var(--border); margin-top: 4px; }
.mappe-eintrag:first-of-type { border-top: none; }
.mappe-eintrag input[type=checkbox] { width: 16px; height: 16px; accent-color: var(--muted); }
.mappe-eintrag b { font-size: .84rem; }

/* ===== Build 765: Ordner-Inhalt direkt in der Sucher-Spalte + Panel mit Dim und x oben rechts ===== */
.sup-treffer .st-verlauf.st-ordner { width: 280px; }
.st-ordner .ordner-eintrag { display: flex; align-items: center; gap: 6px; padding: 3px 4px 3px 28px; min-width: 0; }
.st-ordner .ordner-eintrag b { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: .8rem; cursor: pointer; }
.st-ordner .ordner-eintrag.erl b { text-decoration: line-through; color: var(--muted); }
.st-ordner .ordner-eintrag input[type=checkbox] { width: 14px; height: 14px; flex: 0 0 auto; accent-color: var(--muted); }
.st-ordner .ordner-ziel > .muted:first-child { flex: 0 0 14px; }
.mappen-dim { position: fixed; inset: 0; background: rgba(15, 23, 42, .35); backdrop-filter: blur(3px); z-index: 239; }
.mappen-x { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; }
.mappen-x svg { width: 17px; height: 17px; }

/* ===== Build 766: Ordner-Spalte - grosser Pfeil, Farb-Punkte, Aktions-Icons in festen Spalten ===== */
.st-ordner .op-pfeil { font-size: .95rem; font-weight: 700; }
.st-ordner .mappe-farb { display: inline-flex; flex: 0 0 18px; align-items: center; }
.st-ordner .mappe-farb svg { width: 16px; height: 16px; }
.farb-punkt { width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--border); display: inline-block; background: transparent; }
.farb-punkt.gross { width: 24px; height: 24px; cursor: pointer; border: 1.5px solid rgba(0, 0, 0, .18); }
.farb-reihe { display: flex; gap: 9px; padding: 8px 10px; flex-wrap: wrap; }
.st-ordner .ordner-notiz { flex: 1; min-width: 0; font-size: .76rem; padding: 4px 7px; border: 1px solid var(--border); border-radius: 7px; }
.sup-treffer .st-verlauf.st-ordner { width: 300px; }

/* ===== Build 767: Ordner ganz einfaerben, freier Farbwaehler, GROSSE Pfeile ===== */
.st-ordner .op-pfeil { font-size: 1.2rem; font-weight: 700; flex: 0 0 28px; width: 28px; height: 28px; }
.st-ordner .ordner-ziel { border-left: 4px solid transparent; }
.farb-frei-zeile { display: flex; align-items: center; gap: 10px; padding: 4px 10px 8px; }
.farb-frei { width: 46px; height: 32px; border: 1px solid var(--border); border-radius: 8px; padding: 2px; cursor: pointer; background: var(--surface); }

/* Build 767b: Pfeile nochmals groesser und dunkler */
.st-ordner .op-pfeil { font-size: 1.35rem; color: var(--ink, #1e2430); }

/* ===== Build 768: Sammel-Suche - Haekchen je Lieferant + Knopf "Bei allen gleichzeitig suchen" ===== */
.st-haupt .alle-suchen { display: flex; align-items: center; gap: 7px; margin: 2px 0 6px; width: fit-content; }
.st-haupt .sup-treffer-z input[type=checkbox] { width: 15px; height: 15px; flex: 0 0 auto; accent-color: var(--muted); }

/* Build 770: Master-Haekchen fuer die Sammel-Suche */
.st-haupt .sammel-zeile { display: flex; align-items: center; gap: 9px; margin: 2px 0 6px; }
.st-haupt .sammel-zeile input[type=checkbox] { width: 16px; height: 16px; accent-color: var(--muted); }
.mappen-pop a.sup-treffer-z { text-decoration: none; color: inherit; }

/* ===== Build 774: Lupen sind echte Links (Strg+Klick = nativer Hintergrund-Tab) ===== */
.sup-treffer .sup-treffer-z { cursor: pointer; }
.sup-treffer a.sup-treffer-go, .sup-treffer a.st-akt { text-decoration: none; color: var(--muted); }
.sup-treffer a.sup-treffer-go.lupe-rot, .sup-treffer a.st-akt.lupe-rot { color: #dc2626; }

/* ===== Build 776: Meistgesucht-Karte (Dashboard, nur Power-User) ===== */
.suchstat-liste { display: flex; flex-direction: column; gap: 2px; padding: 4px 2px; }
.suchstat-z { display: flex; align-items: center; gap: 8px; padding: 3px 4px; font-size: .84rem; min-width: 0; }
.suchstat-z b { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Build 777: Meistgesucht-Zeilen sind Links */
a.suchstat-z { text-decoration: none; color: inherit; border-radius: 7px; }
a.suchstat-z:hover { background: rgba(0, 0, 0, .05); }

/* ===== Build 779: Katalog-Heft-Ansicht (zwei Seiten nebeneinander) ===== */
.kat-heft { display: flex; gap: 8px; justify-content: center; align-items: flex-start; }
.kat-heft.doppel .kat-blatt { width: calc(50% - 4px); }
.kat-heft.doppel .kat-blatt img { width: 100%; height: auto; }

/* ===== Build 780: Katalog-Fenster gross, Zoom, Suchfeld links ===== */
.kat-modal { width: 96vw !important; max-width: 1900px !important; height: 94vh; display: flex; flex-direction: column; }
.kat-body { flex: 1; min-height: 0; display: flex; }
.kat-seite { overflow: auto; flex: 1; min-width: 0; }
.kat-heft { margin: 0 auto; min-width: 260px; }
.kat-links { display: flex; flex-direction: column; min-height: 0; flex: 0 0 auto; }
.kat-links .kat-treffer { flex: 1; overflow: auto; }
.kat-suchzeile { display: flex; gap: 6px; padding: 8px 8px 4px; align-items: center; }
.kat-suchzeile .kat-suchin { flex: 1; min-width: 0; padding: 7px 10px; border: 1px solid var(--border); border-radius: 8px; font: inherit; }
.kat-zoominfo { min-width: 42px; text-align: center; }

/* ===== Build 781: Sortiments-Vormerkung - Drop auf Kachel, Dialog, Vormerk-Block ===== */
.lib-card.drop-da { outline: 2px dashed var(--accent); outline-offset: -2px; background: rgba(37, 99, 235, .05); }
.sortvm .sortvm-zeile { display: flex; gap: 10px; align-items: flex-start; margin-top: 10px; }
.sortvm .sortvm-lbl { flex: 0 0 110px; font-size: .8rem; color: var(--muted); padding-top: 8px; }
.sortvm input[type=text], .sortvm select, .sortvm textarea, .sortvm input[type=date] {
  flex: 1; min-width: 0; padding: 8px 10px; border: 1px solid var(--border); border-radius: 8px; font: inherit; }
.sortvm-eintrag { display: flex; align-items: center; gap: 6px; font-size: .78rem; min-width: 0; width: 100%; }
.sortvm-eintrag .sortvm-link { color: var(--accent); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sortvm-eintrag .muted { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ===== Build 782: Kategorie-Waehler mit Icons + Vormerkung bearbeiten/loeschen ===== */
.katpick-btn { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; padding: 8px 10px;
  border: 1px solid var(--border); border-radius: 8px; background: var(--surface); font: inherit; cursor: pointer; text-align: left; }
.katpick-btn .katpick-txt { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.katpick-ico { width: 22px; height: 22px; object-fit: contain; flex: 0 0 auto; }
.katpick-pop { position: fixed; z-index: 320; width: 360px; max-height: 360px; display: flex; flex-direction: column;
  padding: 8px; gap: 6px; box-shadow: 0 14px 40px rgba(15, 23, 42, .3); }
.katpick-such { padding: 7px 10px; border: 1px solid var(--border); border-radius: 8px; font: inherit; }
.katpick-lst { overflow: auto; display: flex; flex-direction: column; gap: 2px; }
.katpick-z { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border: none; background: transparent;
  border-radius: 7px; font: inherit; cursor: pointer; text-align: left; min-width: 0; }
.katpick-z:hover { background: rgba(0, 0, 0, .06); }
.katpick-z span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Build 782b: Vormerkungs-Block in der Kategorie-Detailansicht */
.cd-vormerk { margin-top: 10px; display: flex; flex-direction: column; gap: 4px; }
.cd-vormerk .cd-lbl { font-weight: 700; }

/* Build 783: Kategorie-Baum im Waehler (Pfeile) */
.katpick-pf { flex: 0 0 20px; width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center;
  font-size: .95rem; font-weight: 700; color: var(--ink, #1e2430); border-radius: 5px; cursor: pointer; }
.katpick-pf:hover { background: rgba(0, 0, 0, .08); }
.katpick-pf.leer { cursor: default; }

/* ===== Build 784: Kategorie-Waehler groesser (Pfeile, Text, Symbole) + URL-Feld trennt Adressen ===== */
.katpick-pop { width: 460px; max-height: 480px; }
.katpick-such { padding: 10px 12px; font-size: 1rem; }
.katpick-z { font-size: 1.05rem; padding: 9px 10px; gap: 10px; }
.katpick-ico { width: 28px; height: 28px; }
.katpick-z svg, .katpick-btn svg { width: 24px; height: 24px; flex: 0 0 auto; }
.katpick-pf { flex: 0 0 30px; width: 30px; height: 30px; font-size: 1.35rem; }
.katpick-btn { font-size: 1.05rem; padding: 10px 12px; }
.sortvm-urlzahl { font-size: .8rem; }
.sortvm textarea.drop-da { outline: 2px dashed var(--accent, #2563eb); outline-offset: -2px; }

/* ===== Build 785: Ticket-Herkunft sichtbar — Ersteller-Zeile, klickbare Links, Sprung-Knopf zum Ticket ===== */
.auf-erstellt { font-size: .82rem; color: var(--muted); padding: 6px 10px; border: 1px solid var(--border);
  border-radius: 8px; background: rgba(0, 0, 0, .03); }
.auf-links { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 2px 0 4px; }
.auf-links .auf-links-lbl { font-size: .74rem; flex: 0 0 100%; }
.auf-links .auf-anh-chip { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sortvm-ticket { flex: 0 0 auto; white-space: nowrap; }

/* ===== Build 786: EIN Ticket-Knopf im Kopf + Dubletten-Warnung im Vormerk-Dialog ===== */
.sortvm-kopf { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cd-vormerk .cd-lbl { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sortvm-warn { display: flex; flex-direction: column; gap: 8px; padding: 8px 10px; border: 1px solid #d97706;
  background: rgba(217, 119, 6, .08); border-radius: 8px; font-size: .8rem; }
.sortvm-warn-z { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.sortvm-warn-txt { min-width: 0; flex: 1 1 100%; overflow: hidden; text-overflow: ellipsis; }

/* ===== Build 788: Vormerkungen nach Ticket gruppiert (Klapp-Zeile je Ticket) ===== */
.sortvm-gruppe-t { font-weight: 600; }
.sortvm-gruppe-rows { display: flex; flex-direction: column; gap: 4px; padding-left: 16px; }

/* ===== Build 789: Ticket-Sprung als dezenter Text-Link statt Knopf-Pille ===== */
.sortvm-ticket-link { color: var(--accent, #2563eb); font-size: .78rem; font-weight: 600;
  text-decoration: none; white-space: nowrap; flex: 0 0 auto; }
.sortvm-ticket-link:hover { text-decoration: underline; }

/* ===== Build 790: Ticket-Zeile — Klapp-Text und "Ticket oeffnen"-Link auf GLEICHER Hoehe ===== */
.sortvm-kopf { margin-top: 8px; }
.sortvm-kopf .line-toggle { margin-top: 0; }
.sortvm-kopf .sortvm-ticket-link { padding: 2px 0; line-height: 1.2; }

/* ===== Build 792: Ersteller-Zeile mit Lieferanten-Sprung + Sammel-Bearbeitung der Ticket-Gruppe ===== */
.auf-erstellt { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* ===== Build 797: Dokument-Liste zeigt den echten Dateinamen hinter Seiten-Links ===== */
.doc-echt { font-size: .72rem; font-weight: 400; }

/* ===== Build 798: Ignorier-Liste im Onboarding-Dialog (nie einlesen, z.B. Newsletter) ===== */
.map-ignore { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 14px;
  padding-top: 10px; border-top: 1px dashed var(--border); font-size: .8rem; }

/* ===== Build 801: Bildname unter jeder Bild-Kachel im Auslesen-Panel ===== */
.scrape-imgname { position: absolute; left: 0; right: 0; bottom: 0; font-size: .62rem; line-height: 1.25;
  padding: 2px 5px; background: rgba(255, 255, 255, .88); color: #1e2430; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; border-radius: 0 0 8px 8px; pointer-events: none; }

/* ===== Build 802: Varianten-Blaettern rechts in der Reiter-Leiste ===== */
.pf-tabs .var-blaettern { flex: 0 0 auto; white-space: nowrap; margin: 4px 0; }
.pf-tabs .var-zaehler { flex: 0 0 auto; align-self: center; font-size: .78rem; padding: 0 4px; white-space: nowrap; }

/* ===== Build 803: Varianten-Blaettern schlicht - nur zwei Pfeile + Seitenzahl ===== */
.pf-tabs .var-pfeil { flex: 0 0 auto; align-self: center; width: 30px; height: 30px; border: none;
  background: transparent; border-radius: 8px; font-size: 1.25rem; line-height: 1; color: var(--text, #1e2430);
  cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0 0 3px; }
.pf-tabs .var-pfeil:hover:not(:disabled) { background: rgba(0, 0, 0, .07); }
.pf-tabs .var-pfeil:disabled { opacity: .3; cursor: default; }

/* ===== Build 804: DAM - bearbeitete Fassung uebernimmt die Verknuepfungen des Originals ===== */
.dam-uebernehm { display: inline-flex; align-items: center; gap: 4px; margin: 4px 8px 6px; padding: 4px 8px;
  border: 1px solid var(--accent, #2563eb); border-radius: 8px; color: var(--accent, #2563eb);
  font-size: .72rem; font-weight: 600; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dam-uebernehm:hover { background: rgba(37, 99, 235, .08); }

/* ===== Build 805: Original-Waehler (Umhaengen ohne Namens-Paarung) ===== */
.dam-orig-lst { display: flex; flex-direction: column; gap: 6px; max-height: 420px; overflow: auto; margin-top: 8px; }
.dam-orig-z { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border: 1px solid var(--border); border-radius: 10px; }
.dam-orig-z img { width: 64px; height: 44px; object-fit: contain; background: #f4f4f4; border-radius: 6px; flex: 0 0 auto; }
.dam-orig-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: .8rem; }
.dam-orig-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }

/* ===== Build 806: DAM - Auswahl an Artikel haengen (Artikel-Waehler) ===== */
.dam-art-z { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--border);
  border-radius: 10px; background: var(--surface); font: inherit; font-size: .82rem; cursor: pointer; text-align: left; }
.dam-art-z:hover { background: rgba(37, 99, 235, .07); }
.dam-art-z.einzug { margin-left: 22px; }
.dam-art-z span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ===== Build 807: DAM-Waehler im Artikel - vorgefiltert + Mehrfach-Uebernahme ===== */
.dam-pick-fuss { display: flex; align-items: center; gap: 10px; justify-content: flex-end;
  padding: 10px 14px; border-top: 1px solid var(--border); background: var(--surface); }

/* ===== Build 808: Bildtypen-Reihenfolge (bestimmt Bild-Reihenfolge am Artikel) ===== */
.ityp-sort { display: flex; flex-direction: column; gap: 6px; }
.ityp-sort-z { display: flex; align-items: center; gap: 10px; padding: 6px 10px; border: 1px solid var(--border); border-radius: 10px; }
.ityp-sort-nr { flex: 0 0 24px; color: var(--muted); }
.ityp-sort-name { font-weight: 600; }

/* ===== Build 811: Zeigen & Ernten - Zoom (Abbild scrollt im Rahmen) ===== */
.pick-wrap { overflow: auto; }

/* ===== Build 812: Werkzeugleiste im Zeigen & Ernten bricht um statt zu quetschen ===== */
.scrape-stage { flex-wrap: wrap; gap: 6px 8px; }
.scrape-stage .muted { flex: 1 1 100%; order: 9; min-width: 0; }

/* ===== Build 813: Klick-Menue untereinander + Werte-Raster (3-4 Spalten, ziehbar) ===== */
.pick-menu { display: flex; flex-direction: column; align-items: stretch; gap: 6px; min-width: 250px; max-width: 340px; padding: 8px; }
.pick-menu > .btn { width: 100%; text-align: left; white-space: normal; line-height: 1.25; }
.pick-menu-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); gap: 6px; }
.pick-menu-grid .btn { white-space: nowrap; text-align: center; cursor: grab; overflow: hidden; text-overflow: ellipsis; }

/* ===== Build 814: Klick-Menue als richtiges Menue - flache Zeilen, Trennlinie, Werte-Chips ===== */
.pick-menu { gap: 2px; padding: 6px; min-width: 260px; max-width: 320px; border-radius: 12px; }
.pick-menu > .btn { border: none; background: transparent; box-shadow: none; border-radius: 8px;
  padding: 8px 10px; font-size: .82rem; font-weight: 500; color: var(--text, #1e2430); }
.pick-menu > .btn:hover { background: rgba(0, 0, 0, .06); }
.pick-menu > .btn.primary { background: transparent; color: var(--accent, #2563eb); font-weight: 700; }
.pick-menu > .btn.primary:hover { background: rgba(37, 99, 235, .09); }
.pick-menu-grid { grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--border, #e2e8f0);
  padding-top: 8px; margin-top: 4px; }
.pick-menu-grid .btn { border: 1px solid var(--border, #e2e8f0); border-radius: 8px; background: var(--surface, #fff);
  padding: 6px 4px; font-size: .8rem; font-weight: 600; box-shadow: none; }
.pick-menu-grid .btn:hover { border-color: var(--accent, #2563eb); color: var(--accent, #2563eb); background: rgba(37, 99, 235, .05); }

/* Build 814b: gleiche Regel-Staerke wie das Neo-Design, damit das Menue wirklich flach wird */
html .pick-menu > .btn, html[data-theme="neo"] .pick-menu > .btn {
  border: none; background: transparent; box-shadow: none; border-radius: 8px;
  padding: 8px 10px; font-size: .82rem; font-weight: 500; color: var(--text, #1e2430); }
html .pick-menu > .btn:hover, html[data-theme="neo"] .pick-menu > .btn:hover { background: rgba(0, 0, 0, .06); box-shadow: none; }
html .pick-menu > .btn.primary, html[data-theme="neo"] .pick-menu > .btn.primary {
  background: transparent; color: var(--accent, #2563eb); font-weight: 700; box-shadow: none; }
html .pick-menu > .btn.primary:hover, html[data-theme="neo"] .pick-menu > .btn.primary:hover {
  background: rgba(37, 99, 235, .09); box-shadow: none; }
html .pick-menu-grid .btn, html[data-theme="neo"] .pick-menu-grid .btn {
  border: 1px solid var(--border, #e2e8f0); border-radius: 8px; background: var(--surface, #fff);
  padding: 6px 4px; font-size: .8rem; font-weight: 600; box-shadow: none; color: var(--text, #1e2430); }
html .pick-menu-grid .btn:hover, html[data-theme="neo"] .pick-menu-grid .btn:hover {
  border-color: var(--accent, #2563eb); color: var(--accent, #2563eb); background: rgba(37, 99, 235, .05); box-shadow: none; }

/* ===== Build 821: Mehrfachauswahl in der Tabelle - Haekchen-Popup ===== */
.ptbl-multi { width: 100%; text-align: left; font: inherit; cursor: pointer; overflow: hidden; }
.ptbl-multi .ptbl-multi-txt { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ptbl-multi-pop { position: fixed; z-index: 340; min-width: 220px; max-width: 300px; max-height: 320px;
  overflow: auto; display: flex; flex-direction: column; gap: 2px; padding: 8px;
  box-shadow: 0 14px 40px rgba(15, 23, 42, .3); }
.ptbl-multi-z { display: flex; align-items: center; gap: 8px; padding: 5px 6px; border-radius: 7px;
  font-size: .82rem; cursor: pointer; }
.ptbl-multi-z:hover { background: rgba(0, 0, 0, .05); }

/* ===== Build 823: URL-Ampel - gruen eingepflegt, gelb provisorisch, grau offen ===== */
a.url-ok, .sortvm-link.url-ok { color: #15803d !important; font-weight: 600; }
a.url-teils, .sortvm-link.url-teils { color: #b45309 !important; font-weight: 600; }
a.auf-anh-chip.url-ok { border-color: #15803d; background: rgba(21, 128, 61, .08); }
a.auf-anh-chip.url-teils { border-color: #b45309; background: rgba(180, 83, 9, .08); }

/* ===== Build 825: Excel-Ausfuell-Eck in der Tabelle ===== */
.ptbl-wrap { position: relative; }
.ptbl-fill { position: absolute; width: 11px; height: 11px; background: var(--accent, #2563eb);
  border: 2px solid #fff; border-radius: 3px; cursor: ns-resize; z-index: 6; display: none;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .35); }
.ptbl-fill:hover { transform: scale(1.25); }
.ptbl-fill-mark { outline: 2px dashed var(--accent, #2563eb); outline-offset: -2px; background: rgba(37, 99, 235, .07); }

/* ===== Build 827: Ausfuell-Eck groesser und ueber dem Haekchen-Fenster ===== */
.ptbl-fill { width: 14px; height: 14px; z-index: 360; }

/* ===== Build 828: Ausfuell-Eck GROSS und ORANGE, sichtbar beim Draufzeigen ===== */
.ptbl-fill { width: 18px; height: 18px; background: #f59e0b; border: 3px solid #fff;
  border-radius: 5px; box-shadow: 0 2px 8px rgba(0, 0, 0, .45); }
.ptbl-fill:hover { transform: scale(1.2); background: #d97706; }

/* ===== Build 830: Ausfuell-Eck wie Excel — sitzt IN der Ecke der AKTIVEN Zelle, Klick = Befehls-Menue ===== */
.ptbl-fill { width: 12px; height: 12px; background: #1a7f37; border: 2px solid #fff;
  border-radius: 2px; box-shadow: 0 1px 3px rgba(0, 0, 0, .3); cursor: crosshair; }
.ptbl-fill:hover { transform: scale(1.3); background: #15803d; }
html .ptbl td.ptbl-aktiv, html[data-theme="neo"] .ptbl td.ptbl-aktiv { outline: 2px solid #1a7f37; outline-offset: -2px; }
.ptbl-fill-mark { outline: 2px dashed #1a7f37; outline-offset: -2px; background: rgba(26, 127, 55, .08); }
.ptbl-fill-menu { position: fixed; z-index: 400; background: var(--panel, #fff); border: 1px solid var(--border, #d1d5db);
  border-radius: 10px; box-shadow: 0 10px 30px rgba(0, 0, 0, .25); padding: 6px;
  display: flex; flex-direction: column; gap: 2px; min-width: 250px; }
html .ptbl-fill-menu button, html[data-theme="neo"] .ptbl-fill-menu button { border: 0; background: none; text-align: left;
  padding: 10px 12px; border-radius: 8px; cursor: pointer; font-size: .89rem; color: var(--text, #111827); width: 100%; }
html .ptbl-fill-menu button:hover, html[data-theme="neo"] .ptbl-fill-menu button:hover { background: rgba(26, 127, 55, .12); }
.ptbl td.ptbl-selz { background: rgba(26, 127, 55, .14) !important; outline: 1px solid rgba(26, 127, 55, .55); outline-offset: -1px; }
.ptbl-keinselect, .ptbl-keinselect * { user-select: none; }

/* ===== Build 830: Formular-Chips — 3px mehr Luft zwischen Wert und dem x-Quadrat (Zuruf 18.08.) ===== */
html .pf-tag, html[data-theme="neo"] .pf-tag { gap: 5px; }

/* ===== Build 831: Chip-x ohne Quadrat · Feld-Knopf 'auf alle Varianten' · Varianten-Fenster · Glossar-Karte ===== */
html .pf-tag button.chip-x, html[data-theme="neo"] .pf-tag button.chip-x { border: 0; background: none; box-shadow: none;
  padding: 0 3px; margin: 0; min-width: 0; min-height: 0; width: auto; height: auto; font-size: .95rem;
  line-height: 1; color: var(--faint, #8b9bb4); cursor: pointer; border-radius: 4px; }
html .pf-tag button.chip-x:hover, html[data-theme="neo"] .pf-tag button.chip-x:hover { background: none; color: #c0392b; transform: none; }
.pf-allvar { margin-top: 4px; align-self: flex-start; }
.varmehr-pop { width: min(460px, 92vw); }
.varmehr-pop textarea { font-family: inherit; font-size: .88rem; margin-top: 2px; }
.varmehr-anz { display: flex; align-items: center; gap: 10px; margin: 8px 0 2px; }
.varmehr-anz input { width: 96px; padding: 8px 10px; font-size: 1rem; }
.varmehr-ziel { margin: 10px 0 2px; }
html .varmehr-ziel label, html[data-theme="neo"] .varmehr-ziel label { display: flex; align-items: center; gap: 10px;
  padding: 8px 12px; border: 1px solid var(--border, #d1d5db); border-radius: 8px; margin-top: 5px; cursor: pointer; font-size: .9rem; }
.varmehr-ziel input { width: 16px; height: 16px; }
.gloss-tools { display: flex; align-items: center; gap: 12px; padding: 4px 10px 8px; flex-wrap: wrap; }
html .gloss-auto, html[data-theme="neo"] .gloss-auto { display: flex; align-items: center; gap: 7px; font-size: .84rem; cursor: pointer; }
.gloss-auto input { width: 16px; height: 16px; }
.gloss-fix-pop { width: min(520px, 94vw); max-height: 72vh; overflow: auto; }
.gloss-fix-zeile { border: 1px solid var(--border, #e2e8f0); border-radius: 8px; padding: 8px 10px; margin: 6px 0; }
.gloss-fix-feld { font-weight: 700; font-size: .78rem; margin-bottom: 3px; }
.gloss-fix-alt { color: #b91c1c; text-decoration: line-through; font-size: .84rem; }
.gloss-fix-neu { color: #15803d; font-size: .84rem; font-weight: 600; }

/* ===== Build 832: Formular — gruenes Eck am aktiven Feld statt Text-Knopf (Zuruf 18.08.) ===== */
.pf-row { position: relative; }
/* Gruenes Eck sitzt in der Ecke des FELDES (pf-ctrl ist der Anker), nicht am Zeilenrand */
.pf-ctrl { position: relative; }
html .pf-row button.pf-fill, html[data-theme="neo"] .pf-row button.pf-fill { position: absolute; right: 3px; bottom: 3px;
  width: 12px; height: 12px; min-width: 0; min-height: 0; padding: 0; background: #1a7f37; border: 2px solid #fff;
  border-radius: 2px; cursor: pointer; z-index: 5; box-shadow: 0 1px 3px rgba(0, 0, 0, .3); }
html .pf-row button.pf-fill:hover, html[data-theme="neo"] .pf-row button.pf-fill:hover { transform: scale(1.35); background: #15803d; }

/* ===== Build 833: 'Auf alle Varianten'-Fenster statt Browser-Bestaetigung (Zuruf 18.08.) ===== */
.allvar-pop { width: min(480px, 94vw); }
html .allvar-kopf, html[data-theme="neo"] .allvar-kopf { display: flex; align-items: center; gap: 9px;
  font-weight: 700; font-size: .86rem; padding: 6px 2px; cursor: pointer; }
.allvar-liste { max-height: 46vh; overflow: auto; border: 1px solid var(--border, #e2e8f0); border-radius: 10px; padding: 4px; }
html .allvar-zeile, html[data-theme="neo"] .allvar-zeile { display: flex; align-items: center; gap: 10px;
  padding: 6px 8px; border-radius: 8px; cursor: pointer; }
html .allvar-zeile:hover, html[data-theme="neo"] .allvar-zeile:hover { background: rgba(26, 127, 55, .08); }
.allvar-zeile input { width: 16px; height: 16px; flex: none; }
.allvar-img { width: 30px; height: 30px; object-fit: cover; border-radius: 6px; flex: none; background: #fff; }
.allvar-imgleer { width: 30px; height: 30px; flex: none; }
.allvar-txt { display: flex; flex-direction: column; min-width: 0; }
.allvar-name { font-size: .85rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.allvar-nr { font-size: .74rem; color: var(--faint, #64748b); }

/* ===== Build 835: Auslesen — Mass-Ketten als ziehbare Token, Kombiniert-Ziel fuellt Einzel-Felder ===== */
.spec-token-reihe { display: inline-flex; gap: 4px; margin-left: 6px; flex: none; flex-wrap: wrap; }
html .spec-token, html[data-theme="neo"] .spec-token { border: 1px solid var(--border, #cbd5e1); border-radius: 7px;
  padding: 2px 8px; font-size: .78rem; cursor: grab; background: var(--panel, #fff); user-select: none; white-space: nowrap; }
html .spec-token:hover, html[data-theme="neo"] .spec-token:hover { border-color: #1a7f37; color: #1a7f37; }
.spec-token:active { cursor: grabbing; }

/* ===== Build 838: Zahlen-Karten vergroessern (Icon-Klick) — grosse Kurve + Zahlen + Zeitraum-Filter ===== */
.kpi-zoombtn { cursor: zoom-in; transition: transform .12s; }
.kpi-zoombtn:hover { transform: scale(1.12); }
.kpi-zoom-modal { max-width: 740px; width: min(740px, 94vw); }
.kpi-zoom-kopf { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.kpi-zoom-wert { font-size: 2rem; font-weight: 800; }
.kpi-zoom-filter { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 6px 0 10px; }
.kpi-zoom-kurve { overflow-x: auto; padding: 6px 0; }
.kpi-zoom-tblwrap { max-height: 38vh; overflow: auto; border: 1px solid var(--border, #e2e8f0); border-radius: 10px; }
.kpi-zoom-tbl { width: 100%; border-collapse: collapse; font-size: .86rem; }
.kpi-zoom-tbl th { text-align: left; padding: 8px 12px; position: sticky; top: 0; background: var(--panel, #fff); border-bottom: 1px solid var(--border, #e2e8f0); font-size: .76rem; }
.kpi-zoom-tbl td { padding: 6px 12px; border-bottom: 1px solid var(--border, #eef2f7); }
.kz-plus { color: #15803d; font-weight: 600; }
.kz-minus { color: #b91c1c; font-weight: 600; }
.kpi-zoom-extra { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.kpi-zoom-exrow { display: flex; align-items: center; gap: 8px; font-size: .9rem; }

/* ===== Build 839: Zoom-Fenster spektakulaerer — Hero-Zahl, echte Kurve mit Gitter/Hover, Stat-Kacheln, Balken ===== */
.kz-hero { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; margin: -6px -8px 10px; padding: 14px 16px; border-radius: 14px; }
.kpi-zoom-wert { font-size: 2.6rem; font-weight: 800; line-height: 1; letter-spacing: -.02em; }
.kz-pille { font-size: .82rem; font-weight: 700; padding: 4px 10px; border-radius: 999px; background: rgba(100, 116, 139, .12); }
.kz-pille.kz-plus { background: rgba(21, 128, 61, .12); }
.kz-pille.kz-minus { background: rgba(185, 28, 28, .10); }
.kz-kurvewrap { position: relative; margin: 8px 0 4px; }
.kz-svg { width: 100%; height: auto; display: block; }
.kz-grid { stroke: rgba(100, 116, 139, .18); stroke-width: 1; stroke-dasharray: 3 4; }
.kz-ylab { font-size: 11px; fill: #64748b; text-anchor: end; }
.kz-xlab { font-size: 11px; fill: #64748b; }
.kz-tip { position: absolute; top: 2px; background: var(--panel, #fff); border: 1px solid var(--border, #cbd5e1); border-radius: 8px;
  padding: 4px 10px; font-size: .78rem; font-weight: 700; box-shadow: 0 4px 14px rgba(0, 0, 0, .15); pointer-events: none; white-space: nowrap; }
.kz-tipline { position: absolute; top: 6%; bottom: 12%; width: 0; border-left: 1px dashed rgba(100, 116, 139, .55); pointer-events: none; }
.kz-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin: 10px 0 2px; }
.kz-stat { border: 1px solid var(--border, #e2e8f0); border-radius: 12px; padding: 10px 12px; }
.kz-stat-l { font-size: .72rem; font-weight: 700; color: var(--faint, #64748b); text-transform: uppercase; letter-spacing: .04em; }
.kz-stat-w { font-size: 1.3rem; font-weight: 800; margin-top: 2px; }
.kz-stat-u { font-size: .74rem; color: var(--faint, #64748b); }
.kz-stat.kz-plus .kz-stat-w { color: #15803d; }
.kz-stat.kz-minus .kz-stat-w { color: #b91c1c; }
.kz-balkzelle { position: relative; min-width: 140px; }
.kz-balken { position: absolute; left: 4px; top: 5px; bottom: 5px; border-radius: 5px; }
.kz-balkwert { position: relative; font-weight: 600; padding-left: 6px; }

/* ===== Build 841: 7 Zusatz-Kennzahl-Karten + Listen mit Balken im Zoom ===== */
.kz-listzeile { display: flex; align-items: center; gap: 10px; padding: 5px 2px; font-size: .86rem; }
.kz-listname { flex: 0 0 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.kz-listbalken { flex: 1; height: 12px; border-radius: 6px; background: rgba(100, 116, 139, .1); overflow: hidden; }
.kz-listfill { display: block; height: 100%; border-radius: 6px; }
.kz-listwert { flex: 0 0 auto; font-weight: 700; font-size: .8rem; color: var(--faint, #475569); min-width: 84px; text-align: right; }

/* ===== Build 843: interaktive Kennzahl-Listen (Direktspruenge), animierte Mehrfach-Linien, roter Prov-Chip am BP ===== */
.kz-line { stroke-dasharray: 1; stroke-dashoffset: 1; animation: kzDraw 1.1s ease-out forwards; }
@keyframes kzDraw { to { stroke-dashoffset: 0; } }
.kz-svg polygon { opacity: 0; animation: kzFade .9s ease-out .4s forwards; }
@keyframes kzFade { to { opacity: 1; } }
.kz-svg circle { opacity: 0; animation: kzPop .35s ease-out 1.05s forwards; }
@keyframes kzPop { to { opacity: 1; } }
.kpi svg { animation: kzGrow .55s ease-out; transform-origin: bottom; }
@keyframes kzGrow { from { transform: scaleY(0); opacity: .2; } to { transform: scaleY(1); opacity: 1; } }
.kz-legende { display: flex; gap: 16px; align-items: center; padding: 2px 2px 6px; flex-wrap: wrap; }
html .kz-legpunkt, html[data-theme="neo"] .kz-legpunkt { display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; font-weight: 700; }
html button.kz-sprung, html[data-theme="neo"] button.kz-sprung { display: flex; align-items: center; justify-content: space-between; gap: 10px;
  width: 100%; text-align: left; border: 0; background: none; padding: 7px 10px; border-radius: 8px; cursor: pointer; font: inherit; }
html button.kz-sprung:hover, html[data-theme="neo"] button.kz-sprung:hover { background: rgba(99, 102, 241, .08); }
.kz-sprung-h { font-size: .86rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kz-sprung-m { font-size: .74rem; color: var(--faint, #64748b); flex: none; }
html button.kz-listzeile, html[data-theme="neo"] button.kz-listzeile { border: 0; background: none; width: 100%; font: inherit; text-align: left; }
.kz-listzeile.kz-klick { cursor: pointer; border-radius: 8px; }
.kz-listzeile.kz-klick:hover { background: rgba(99, 102, 241, .08); }
.bp-prov-warn { background: #fee2e2; color: #b91c1c; border: 1px solid #fecaca; border-radius: 999px;
  font-size: .68rem; font-weight: 800; padding: 2px 8px; flex: none; white-space: nowrap; }
.kz-endlab { font-size: 12px; font-weight: 700; }
.kz-legende .kz-legpunkt { margin-right: 14px; }
.kz-legpunkt .lg-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex: none; }
.kz-tag-klick { cursor: pointer; }
.kz-tag-klick:hover td { background: rgba(99, 102, 241, .06); }

/* ===== Build 844: Reiter Grob-Ansicht / Detail im Zoom-Fenster ===== */
.kz-reiter { display: flex; gap: 8px; margin: 2px 0 12px; }

/* ===== Build 845: Aufzeichnungs-Hinweis + klickbare Vollstaendigkeits-Kacheln ===== */
.kz-hinweis { background: rgba(245, 158, 11, .1); border: 1px solid rgba(245, 158, 11, .3); color: #92400e;
  border-radius: 10px; padding: 8px 12px; font-size: .8rem; margin: 2px 0 8px; }
html button.kz-stat, html[data-theme="neo"] button.kz-stat { font: inherit; text-align: left; }
.kz-statklick { cursor: pointer; transition: transform .1s; }
.kz-statklick:hover { transform: translateY(-2px); border-color: #94a3b8; }

/* ===== Build 846: Tages-Fenster mit FAQ-Klappen statt Liste unter der Tabelle ===== */
html .kz-zellknopf, html[data-theme="neo"] .kz-zellknopf { border: 1px solid rgba(21, 128, 61, .35); background: rgba(21, 128, 61, .08);
  color: #15803d; font-weight: 800; font-size: .84rem; border-radius: 8px; padding: 3px 10px; cursor: pointer; }
html .kz-zellknopf:hover, html[data-theme="neo"] .kz-zellknopf:hover { background: rgba(21, 128, 61, .16); }
.kz-faq { border: 1px solid var(--border, #e2e8f0); border-radius: 12px; margin: 6px 0; overflow: hidden; }
html button.kz-faq-kopf, html[data-theme="neo"] button.kz-faq-kopf { display: flex; align-items: center; gap: 10px; width: 100%;
  border: 0; background: none; padding: 12px 14px; cursor: pointer; font: inherit; text-align: left; }
html button.kz-faq-kopf:hover, html[data-theme="neo"] button.kz-faq-kopf:hover { background: rgba(99, 102, 241, .06); }
.kz-faq-pfeil { font-size: .9rem; color: var(--faint, #64748b); flex: none; }
.kz-faq-titel { font-weight: 700; font-size: .9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kz-faq-meta { font-size: .76rem; color: var(--faint, #64748b); margin-left: auto; flex: none; }
.kz-faq-inhalt { padding: 2px 10px 10px; border-top: 1px dashed var(--border, #e2e8f0); }

/* ===== Build 847: 8-Karten-Umbau + Ziel-Balken + grosser oranger Artikel-Filter ===== */
html select.art-missf, html[data-theme="neo"] select.art-missf { min-width: 200px; padding: 8px 12px; font-size: .88rem;
  font-weight: 600; border-radius: 10px; border: 1px solid var(--border, #cbd5e1); cursor: pointer; }
html select.art-missf.filter-orange, html[data-theme="neo"] select.art-missf.filter-orange { background: #fff7ed; border-color: #f97316;
  color: #9a3412; box-shadow: 0 0 0 3px rgba(249, 115, 22, .15); }
.kpi-zielbar { height: 7px; border-radius: 4px; background: rgba(100, 116, 139, .14); margin-top: 6px; overflow: hidden; }
.kpi-zielbar span { display: block; height: 100%; border-radius: 4px; background: #22c55e; }
.kz-zielzeile { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; font-size: .88rem; }
.kz-zielbar { flex: 1; min-width: 140px; height: 12px; border-radius: 6px; background: rgba(100, 116, 139, .14); overflow: hidden; }
.kz-zielfill { display: block; height: 100%; border-radius: 6px; background: #22c55e; }

/* ===== Build 848: klickbare Team-Kacheln, Kreis-/Netz-Ansichten, Listen-Kopf mit Umschalter ===== */
.kz-listkopf { display: flex; align-items: center; gap: 8px; }
.kz-donutwrap { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; padding: 10px 4px; }
.kz-donut { width: 150px; height: 150px; border-radius: 50%; position: relative; flex: none; }
.kz-donutloch { position: absolute; inset: 26px; border-radius: 50%; background: var(--panel, #fff);
  display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 1.1rem; }
.kz-donutleg { display: flex; flex-direction: column; gap: 4px; min-width: 220px; }
html .kz-donutzeile, html[data-theme="neo"] .kz-donutzeile { display: flex; align-items: center; gap: 8px; font-size: .86rem;
  border: 0; background: none; padding: 4px 8px; border-radius: 8px; text-align: left; font: inherit; }
.kz-donutzeile.kz-klick { cursor: pointer; }
.kz-donutzeile.kz-klick:hover { background: rgba(99, 102, 241, .08); }
.kz-donutname { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kz-donutwert { margin-left: auto; font-weight: 700; font-size: .8rem; color: var(--faint, #475569); }
.kz-radar { display: flex; justify-content: center; padding: 6px 0; }

/* ===== Build 851: KI-Berater in der Pruef-Inbox ===== */
.wertrat-pop { width: min(480px, 94vw); }
.wertrat-beg { background: rgba(99, 102, 241, .08); border-radius: 10px; padding: 10px 12px; font-size: .88rem; margin: 6px 0 10px; }
.wertrat-zeile { font-size: .86rem; padding: 3px 2px; }

/* ===== Build 852: Begriffs-Bibliothek (KI-Rat gratis wiederverwenden) ===== */
.wertrat-bib { display: inline-block; background: rgba(34, 197, 94, .12); color: #15803d; border-radius: 8px; padding: 4px 10px; font-size: .78rem; font-weight: 600; margin-bottom: 6px; }

/* ===== Build 853: Bibliothek-Eintraege aufklappbar ===== */
.bib-eintrag { border-bottom: 1px solid var(--border-2, #edf1f6); }
.bib-kopf { cursor: pointer; user-select: none; }
.bib-kopf:hover { background: var(--panel2, #f6f8fb); }
.bib-klapp { padding: 4px 10px 10px 34px; background: var(--panel2, #f8fafc); border-radius: 8px; margin: 0 0 8px; }

/* ===== Build 853: Einstellungs-Navigation mit Themen-Gruppen ===== */
.set-nav-grp { font-size: .82rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--text, #1f2937); padding: 18px 12px 6px; border-bottom: 2px solid var(--border-2, #e2e8f0); margin-bottom: 6px; }
.settings-nav .set-nav-grp:first-child { padding-top: 4px; }

/* ===== Build 854: Nachfrage beim endgueltigen Entfernen abgelehnter Werte ===== */
.wertweg-liste { max-height: 260px; overflow: auto; border: 1px solid var(--border-2, #e2e8f0); border-radius: 10px; padding: 6px 10px; }
.wertweg-zeile { font-size: .84rem; padding: 3px 0; }
.wertweg-zeile a { font-weight: 600; }

/* ===== Build 855: Listen-Doktor (Checkliste) + Kategorie-Einheit ===== */
.doktor-liste { max-height: 340px; overflow: auto; display: flex; flex-direction: column; gap: 4px; }
.doktor-zeile { display: flex; gap: 10px; align-items: flex-start; padding: 8px 10px; border: 1px solid var(--border-2, #e2e8f0); border-radius: 10px; cursor: pointer; }
.doktor-zeile:hover { background: var(--panel2, #f6f8fb); }
.doktor-zeile input { margin-top: 3px; }
.doktor-wert { font-size: .86rem; }
.doktor-beg { font-size: .76rem; color: var(--muted, #64748b); margin-top: 2px; }
.cd-unit { font-size: .78rem; padding: 3px 8px; border-radius: 8px; border: 1px solid var(--border, #d7dee8); }

/* ===== Build 856: Einheit am Merkmals-Chip waehlbar ===== */
.ord-unit-btn { background: none; border: none; cursor: pointer; padding: 0 2px; font: inherit; color: var(--muted, #64748b); border-radius: 6px; }
.ord-unit-btn:hover { background: var(--accent-soft, #e8edff); color: var(--accent, #4f6bed); }
.ord-unit-btn.anders { color: var(--accent, #4f6bed); font-weight: 700; }
.unit-pop { position: fixed; z-index: 240; display: flex; flex-direction: column; gap: 4px; padding: 8px; width: 230px; box-shadow: 0 12px 30px rgba(20, 35, 60, .22); }
.unit-warn { background: #fef3c7; border: 1px solid #f59e0b; color: #78350f; border-radius: 10px; padding: 10px 12px; font-size: .84rem; }

/* ===== Build 859: Einheiten-Knopf fuer ALLE Einheiten sichtbar (Pill, nicht gruen wie BP/V) ===== */
.ord-unit-btn { display: inline-flex; align-items: center; margin-left: 5px; padding: 1px 9px; font: inherit; font-size: .74rem; font-weight: 600;
  color: #4f6bed; background: #eef1fd; border: 1px solid #c9d3f7; border-radius: 999px; cursor: pointer; }
.ord-unit-btn:hover { background: #dfe6fb; border-color: #4f6bed; }
.ord-unit-btn.anders { background: #4f6bed; color: #fff; border-color: #4f6bed; }

/* ===== Build 861: Zweit-Einheit-Knopf am Kombinierten ===== */
.ord-unit2 { color: #7a869c; background: #f1f4f9; border-color: #d7dee8; border-style: dashed; }
.ord-unit2.anders { background: #64748b; color: #fff; border-color: #64748b; border-style: solid; }

/* ===== Build 862: Ketten-Fenster + Gruppen-Einheit-Frage ===== */
.kett-zeile { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border: 1px dashed var(--border, #d7dee8); border-radius: 10px; margin-bottom: 6px; }
.kett-zeile.drag-over { border-color: #4f6bed; background: #eef1fd; }
.kett-ziel { flex: 1; font-size: .86rem; font-weight: 600; }
.kett-chip { cursor: grab; }

/* ===== Build 863: Bibliothek (eigener Navi-Punkt) ===== */
.bib-layout { display: grid; grid-template-columns: 320px 1fr; gap: 14px; align-items: start; }
.bib-liste { padding: 8px; max-height: calc(100vh - 210px); overflow: auto; }
.bib-zeile { padding: 10px 12px; border-radius: 10px; cursor: pointer; }
.bib-zeile:hover { background: var(--panel2, #f6f8fb); }
.bib-zeile.sel { background: var(--accent-soft, #e8edff); }
.bib-z-titel { font-weight: 700; font-size: .92rem; }
.bib-z-sub { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; font-size: .74rem; margin-top: 2px; }
.bib-tag { background: var(--panel2, #eef1f6); border: 1px solid var(--border-2, #e2e8f0); border-radius: 999px; padding: 0 8px; font-size: .7rem; color: var(--muted, #64748b); }
.bib-detail { padding: 16px 20px; min-height: 300px; }
.bib-kopfzeile { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.bib-titel { font-size: 1.15rem; margin: 0; }
.bib-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.bib-nebeneinander { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: start; }
.bib-text { font-size: .9rem; line-height: 1.55; }
.bib-dateien { display: flex; flex-wrap: wrap; gap: 10px; }
.bib-dateien.layout-galerie { margin-bottom: 14px; }
.bib-datei { display: flex; flex-direction: column; gap: 4px; width: 150px; text-decoration: none; color: inherit; border: 1px solid var(--border-2, #e2e8f0); border-radius: 10px; padding: 8px; }
.bib-datei:hover { border-color: var(--accent, #4f6bed); }
.bib-thumb { width: 100%; height: 100px; object-fit: contain; background: var(--panel2, #f6f8fb); border-radius: 6px; }
.bib-doksymbol { font-size: 2rem; text-align: center; padding: 26px 0; background: var(--panel2, #f6f8fb); border-radius: 6px; }
.bib-dateiname { font-size: .76rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bib-dokliste { display: flex; flex-direction: column; gap: 4px; }
.bib-dok-zeile { display: flex; gap: 8px; align-items: center; padding: 8px 10px; border: 1px solid var(--border-2, #e2e8f0); border-radius: 10px; text-decoration: none; color: inherit; }
.bib-dok-zeile:hover { border-color: var(--accent, #4f6bed); }
.bib-verkn { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--border-2, #edf1f6); font-size: .84rem; }
.bib-feld { margin-bottom: 12px; }
.bib-feld > label { display: block; font-size: .76rem; font-weight: 700; color: var(--muted, #64748b); margin-bottom: 4px; text-transform: uppercase; letter-spacing: .04em; }
.bib-titel-in { width: 100%; font-size: 1rem; padding: 8px 12px; border: 1px solid var(--border, #d7dee8); border-radius: 10px; }
.bib-layoutwahl { display: flex; gap: 8px; flex-wrap: wrap; }
.bib-edit-dateien { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.bib-chip { display: inline-flex; align-items: center; gap: 5px; background: var(--panel2, #f4f6fa); border: 1px solid var(--border-2, #e2e8f0); border-radius: 999px; padding: 3px 6px 3px 10px; font-size: .8rem; }
.bib-tag-in { font-size: .8rem; padding: 4px 10px; border: 1px solid var(--border, #d7dee8); border-radius: 999px; }
.bib-picker { position: fixed; z-index: 260; width: 340px; padding: 10px; box-shadow: 0 14px 34px rgba(20, 35, 60, .24); }
.bib-picker-liste { max-height: 320px; overflow: auto; display: flex; flex-direction: column; gap: 2px; margin-top: 8px; }
.bib-picker-zeile { display: flex; gap: 8px; align-items: center; padding: 6px 8px; border: none; background: none; border-radius: 8px; cursor: pointer; text-align: left; font: inherit; }
.bib-picker-zeile:hover { background: var(--panel2, #f6f8fb); }
.bib-picker-thumb { width: 34px; height: 34px; object-fit: contain; background: var(--panel2, #f6f8fb); border-radius: 6px; flex: none; }
.bib-picker-ico { width: 34px; text-align: center; font-size: 1.2rem; flex: none; }

/* ===== Build 864: Ketten-LEISTE (freie Zieh-Tokens statt Fenster) ===== */
.kett-leiste { position: fixed; z-index: 230; width: min(440px, 92vw); padding: 10px 14px; box-shadow: 0 14px 34px rgba(20, 35, 60, .24); }
.kett-leiste-kopf { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.kett-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.kett-chip { cursor: grab; font-size: .92rem; padding: 6px 14px; }
.kett-chip.dragging { opacity: .4; }

/* ===== Build 865: Gruppen-Einheit-Frage als Popover am Feld ===== */
.grpeinh-frage { position: fixed; z-index: 240; width: min(400px, 92vw); padding: 12px 14px; box-shadow: 0 14px 34px rgba(20, 35, 60, .26); border: 1px solid var(--accent, #4f6bed); }
.grpeinh-kopf { display: flex; align-items: center; gap: 8px; font-size: .9rem; }

/* ===== Build 867: Wissen dazu am Artikel ===== */
.verkn-bib { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; padding: 10px 12px; border: 1px solid var(--border-2, #e2e8f0); border-radius: 12px; margin-bottom: 12px; background: var(--panel2, #f8fafc); max-width: 640px; }
.bib-doksymbol { font-size: .82rem; font-weight: 800; letter-spacing: .06em; color: var(--muted, #64748b); }
.bib-picker-ico { font-size: .66rem; font-weight: 800; letter-spacing: .04em; color: var(--muted, #64748b); }
.bib-text img { max-width: 100%; height: auto; border-radius: 8px; }
.bib-text table { border-collapse: collapse; margin: 8px 0; }
.bib-text td, .bib-text th { border: 1px solid var(--border-2, #e2e8f0); padding: 4px 10px; font-size: .84rem; }

/* ===== Build 868: Tabellen/Bilder auch IM Editor sauber (Word-Import) ===== */
.rte-area table { border-collapse: collapse; margin: 8px 0; }
.rte-area td, .rte-area th { border: 1px solid var(--border-2, #e2e8f0); padding: 4px 10px; font-size: .84rem; }
.rte-area img { max-width: 100%; height: auto; border-radius: 8px; }
.rte-area h1, .rte-area h2, .rte-area h3, .rte-area h4 { margin: 12px 0 6px; }

/* ===== Build 869: Kapitel-Klappen fuer lange Bibliothek-Eintraege ===== */
.bib-kap-leiste { display: flex; gap: 8px; align-items: center; margin: 10px 0; }
.bib-kap { border: 1px solid var(--border-2, #e2e8f0); border-radius: 12px; margin-bottom: 8px; overflow: hidden; }
html button.bib-kap-kopf { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 14px; background: var(--panel2, #f8fafc);
  border: none; cursor: pointer; font: inherit; font-weight: 700; font-size: .92rem; text-align: left; color: var(--text, #1f2937); }
html button.bib-kap-kopf:hover { background: var(--accent-soft, #eef1fd); }
.bib-kap-body { padding: 10px 16px; }
.bib-text table { max-width: 100%; }

/* ===== Build 870: Text breit, Datei-Spalte schmal; Farb-Palette + Bild-Knopf im Editor ===== */
.bib-nebeneinander { grid-template-columns: minmax(0, 1fr) 240px; }
.bib-nebeneinander .bib-dateien { flex-direction: column; }
.bib-nebeneinander .bib-datei { width: auto; }
.bib-dokliste-oben { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.bib-dokliste-oben .bib-dok-zeile { padding: 6px 12px; }
.rte-farbbtn { font-weight: 800; text-decoration: underline; text-decoration-thickness: 3px; text-decoration-color: #7089c4; }
.rte-farbmenu { padding: 8px 10px; }
.rte-farbreihe { display: flex; gap: 5px; align-items: center; margin-bottom: 6px; }
.rte-farblbl { font-size: .72rem; color: var(--muted, #64748b); width: 46px; }
.rte-farbfeld { width: 22px; height: 22px; border-radius: 6px; border: 1px solid var(--border, #d7dee8); cursor: pointer; }
.rte-farbfeld:hover { transform: scale(1.15); }

/* ===== Build 871: Word-Look in der Bibliothek — Navigation links, blaue Ueberschriften, kompakte Tabellen ===== */
.bib-navwrap { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 18px; align-items: start; }
.bib-nav { position: sticky; top: 8px; max-height: calc(100vh - 220px); overflow: auto; border: 1px solid var(--border-2, #e2e8f0); border-radius: 12px; padding: 8px; background: var(--panel2, #f8fafc); }
.bib-nav-titel { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--muted, #64748b); padding: 4px 8px 6px; }
html button.bib-nav-punkt { display: block; width: 100%; text-align: left; border: none; background: none; cursor: pointer; font: inherit;
  font-size: .82rem; padding: 4px 8px; border-radius: 8px; color: var(--text, #1f2937); }
html button.bib-nav-punkt:hover { background: var(--accent-soft, #eef1fd); }
html button.bib-nav-punkt.aktiv { background: var(--accent-soft, #e8edff); font-weight: 700; }
html button.bib-nav-punkt.stufe-h2 { padding-left: 20px; font-size: .78rem; }
html button.bib-nav-punkt.stufe-h3 { padding-left: 32px; font-size: .76rem; color: var(--muted, #64748b); }
/* Ueberschriften wie im Word: Titel gross-dunkel, Kapitel blau, klare Groessen-Treppe */
.bib-text h1 { font-size: 1.6rem; font-weight: 800; color: var(--text, #1f2937); margin: 14px 0 6px; }
.bib-text h1 ~ h1, .bib-text h2 { font-size: 1.25rem; font-weight: 700; color: #2e74b5; margin: 16px 0 6px; }
.bib-text h3 { font-size: 1.05rem; font-weight: 700; color: #2e74b5; margin: 12px 0 4px; }
.bib-text h4 { font-size: .92rem; font-weight: 600; color: var(--muted, #64748b); margin: 10px 0 4px; }
/* Tabellen kompakt wie im Dokument */
.bib-text td, .bib-text th { padding: 2px 8px; font-size: .82rem; line-height: 1.35; }
.bib-text th { background: var(--panel2, #f4f6fa); font-weight: 700; }
.bib-text p { margin: 4px 0; }

/* ===== Build 874: Tabellen-Breite wie im Word + schwebende Bilder (Umfluss) ===== */
.bib-text h1, .bib-text h2, .bib-text h3, .bib-text table { clear: both; }
.bib-text::after { content: ''; display: block; clear: both; }

/* ===== Build 875: rahmenlose Word-Tabellen + Zellen-Divs ===== */
.bib-text table.bib-tab-ohne td, .bib-text table.bib-tab-ohne th { border: none; }
.bib-text td > div { margin: 0; }

/* ===== Build 876: PDF-Import + eingebettete 1:1-Ansicht ===== */
.bib-pdf { margin-top: 16px; border: 1px solid var(--border-2, #e2e8f0); border-radius: 12px; overflow: hidden; }
.bib-pdf summary { padding: 10px 14px; background: var(--panel2, #f8fafc); font-weight: 700; font-size: .88rem; cursor: pointer; }
.bib-pdf-frame { width: 100%; height: 75vh; border: none; display: block; }

/* ===== Build 877: Bild-Werkzeug im Editor (Groesse + Lage) ===== */
.rte-bildwerk { position: fixed; z-index: 260; width: min(420px, 92vw); padding: 10px 14px; box-shadow: 0 14px 34px rgba(20, 35, 60, .26); border: 1px solid var(--accent, #4f6bed); }
.rte-bildzeile { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; flex-wrap: wrap; }
.rte-bildwert { font-size: .76rem; color: var(--muted, #64748b); width: 58px; text-align: right; }
.rte-area img { cursor: pointer; }
.rte-area img:hover { outline: 2px solid var(--accent, #4f6bed); outline-offset: 2px; }

/* ---- Build 881: PIM-Zurück-Knopf + „+ Vormerkung / Ticket" auf der Lieferanten-Karte ---- */
.pim-rueck { position: fixed; top: 74px; right: 24px; z-index: 120; display: inline-flex; align-items: center; gap: 10px;
  padding: 10px 16px; border: 1px solid #2563eb; border-radius: 999px; background: #2563eb; color: #fff;
  font-size: .88rem; font-weight: 700; cursor: pointer; box-shadow: 0 6px 20px rgba(37, 99, 235, .35); }
.pim-rueck:hover { background: #1d4ed8; }
.pim-rueck-x { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px;
  border-radius: 50%; background: rgba(255, 255, 255, .22); font-weight: 400; font-size: .78rem; }
.pim-rueck-x:hover { background: rgba(255, 255, 255, .4); }
.vm-neu-row { margin-top: 8px; }
.vm-neu-btn { width: 100%; text-align: center; border-style: dashed; color: #475569; }
.vm-neu-btn:hover { color: #1d4ed8; border-color: #2563eb; }

/* ---- Build 883: aktiver Artikel in der Liste — kräftig BLAU statt gelb, damit man ihn sofort sieht ---- */
.art-row.bp.sel { background: #bfdbfe; border-color: #2563eb; box-shadow: inset 4px 0 0 #2563eb; }
.art-row.variant.sel { background: #dbeafe; box-shadow: inset 4px 0 0 #2563eb; }
html[data-theme="dunkel"] .art-row.bp.sel { background: #1e3a5f; border-color: #3b82f6; box-shadow: inset 4px 0 0 #3b82f6; }
html[data-theme="dunkel"] .art-row.variant.sel { background: #172a45; box-shadow: inset 4px 0 0 #3b82f6; }

/* ---- Build 886: BP/Varianten-Blätterer sitzt GANZ RECHTS in der Reiter-Leiste (ihr Wunsch 20.08.) ---- */
.pf-tabs .spacer { flex: 1 1 auto; min-width: 12px; }
.pf-tabs .bp-taste { flex: 0 0 auto; align-self: center; white-space: nowrap; }

/* ---- Build 887: „Extras"-Menü im Formular-Kopf — Pflege-Knöpfe sichtbar, Übriges aufgeräumt ---- */
.extras-pop { position: fixed; z-index: 1500; width: 300px; background: var(--panel, #fff); border: 1px solid var(--border-2, #cbd5e1); border-radius: 12px; box-shadow: 0 12px 34px rgba(15, 23, 42, .18); padding: 6px; }
.extras-z { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 100%; text-align: left; padding: 8px 10px; border: none; background: none; border-radius: 8px; cursor: pointer; }
.extras-z:hover { background: var(--accent-soft, #eef2ff); }
.extras-z b { font-size: .85rem; }
.extras-z .muted { font-size: .72rem; }
.extras-strich { border-top: 1px solid var(--border, #e2e8f0); margin: 4px 6px; }
.extras-z.gefahr b { color: #dc2626; }
.extras-z.gefahr:hover { background: #fee2e2; }
html[data-theme="dunkel"] .extras-z.gefahr:hover { background: #4c1d1d; }

/* ---- Build 889: Tabellen im Auslesen-Panel (Server/KI/eingefügt) — Zellen ziehbar ---- */
.scrape-tabwrap { overflow-x: auto; margin: 8px 0; }
.scrape-tab { border-collapse: collapse; font-size: .78rem; }
.scrape-tab th, .scrape-tab td { border: 1px solid var(--border, #e2e8f0); padding: 4px 9px; white-space: nowrap; max-width: 260px; overflow: hidden; text-overflow: ellipsis; }
.scrape-tab th { background: var(--accent-soft, #eef2ff); font-weight: 700; text-align: left; }
.scrape-tab td[draggable="true"], .scrape-tab th[draggable="true"] { cursor: grab; }
.scrape-tab td[draggable="true"]:hover, .scrape-tab th[draggable="true"]:hover { background: #dbeafe; }
.scrape-tab-ki th { background: #ecfdf5; }
html[data-theme="dunkel"] .scrape-tab td[draggable="true"]:hover, html[data-theme="dunkel"] .scrape-tab th[draggable="true"]:hover { background: #1e3a5f; }
html[data-theme="dunkel"] .scrape-tab-ki th { background: #14342a; }
.scrape-tabwrap { flex: 0 0 auto; }   /* Panel-Body ist flex — ohne das wird der Umschlag auf 0 Höhe gequetscht */

/* ---- Build 891: Varianten aus Tabelle — Zuordnungs-Fenster ---- */
.vartab-btn { margin: 2px 0 10px; }
.vartab .vartab-sel { max-width: 160px; font-size: .74rem; padding: 2px 4px; }
.vartab th { vertical-align: middle; }
.vartab td:first-child, .vartab th:first-child { text-align: center; width: 34px; }

/* ---- Build 897: „Deine Merkmale auf der Seite" — Fund-Liste im Auslesen-Panel ---- */
.scrape-attrfunde { display: flex; flex-direction: column; gap: 3px; margin: 6px 0 10px; flex: 0 0 auto; }
.af-zeile { display: flex; align-items: center; gap: 10px; padding: 4px 8px; border: 1px solid var(--border, #e2e8f0); border-radius: 8px; }
.af-name { font-size: .78rem; font-weight: 600; min-width: 160px; }
.af-wert { font-size: .82rem; cursor: grab; background: #eef2ff; border-radius: 6px; padding: 1px 8px; }
.af-wert:hover { background: #dbeafe; }
.af-quelle { font-size: .72rem; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html[data-theme="dunkel"] .af-wert { background: #1e293b; }
html[data-theme="dunkel"] .af-wert:hover { background: #1e3a5f; }

/* ---- Build 898: Dubletten-Wächter im Varianten-Generator ---- */
.vartab-doppelt td { opacity: .55; }
.vartab-mark { display: block; color: #dc2626; font-size: .68rem; font-weight: 700; white-space: nowrap; }

/* ★ Favoriten-Kategorien (21.08.2026): Stern in jeder Baum-Zeile + Block „Meine Kategorien" oben.
   Der Stern hält sich im Hintergrund, bis man über die Zeile fährt — angepinnte bleiben sichtbar. */
.tstern{opacity:0;transition:opacity .12s}
.tnode:hover .tstern,.tstern.aktiv{opacity:1}
.fav-block{border-bottom:1px solid var(--border);padding:10px 12px 12px;background:var(--bg);border-radius:12px 12px 0 0}
.fav-block-kopf{display:flex;align-items:baseline;gap:8px;justify-content:space-between;font-weight:600;font-size:.82rem;color:#c2903f;margin-bottom:8px}
.fav-block-liste{display:flex;flex-wrap:wrap;gap:6px}
.fav-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:5px 11px;border:1px solid var(--border);border-radius:999px;background:var(--surface);cursor:pointer;font-size:.84rem;font-family:inherit;color:inherit}
.fav-chip:hover{border-color:#c2903f;background:#fffaf0}
.fav-chip.aktiv{border-color:#c2903f;background:#fff4e0;font-weight:600}
.fav-chip img.cat-ico{width:16px;height:16px;object-fit:contain}
.fav-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 🕐 „Zuletzt bearbeitet"-Leiste: gleiche Bauart wie der Favoriten-Block, aber ruhiger (grau statt gold) */
.zuletzt-block{background:transparent;border-bottom:1px solid var(--border)}
.zuletzt-block .fav-block-kopf{color:var(--muted)}
.zuletzt-chip{color:var(--muted)}
.zuletzt-chip:hover{border-color:var(--text);background:var(--bg);color:inherit}
.chip-wann{font-size:.72rem;opacity:.7;padding-left:2px}
/* Leisten in der schmalen Artikel-Spalte: kompakter, Namen dürfen abschneiden */
.art-fav-block{border-radius:0;padding:8px 10px 10px}
.art-fav-block .fav-chip{max-width:100%;font-size:.8rem;padding:4px 9px}
.art-fav-block .fav-chip>span:first-child{max-width:170px}
/* ★ Stern in der Ecke von Kacheln (Attribut-Karten, Bild-Kacheln) — stört das Bild nicht */
.fav-stern.ecke{position:absolute;top:4px;right:4px;z-index:3;background:rgba(255,255,255,.85);backdrop-filter:blur(2px)}
.attr-card,.dam-card{position:relative}
.dam-card .fav-stern.ecke{top:6px;right:34px}
/* Leisten-Hülle: beide Blöcke untereinander, gleicher Abstand wie Karten */
.schnell-leisten{margin:0 0 14px}
.schnell-leisten .fav-block{border-radius:12px;border:1px solid var(--border);margin-bottom:8px}
.schnell-leisten .fav-block:last-child{margin-bottom:0}
.schnell-leisten.kompakt .fav-block{border-radius:0;border-left:none;border-right:none;margin-bottom:0}
/* Gruppen im Weitergeben-Fenster: Sammel-Häkchen fett, Einträge eingerückt */
.fav-gruppe{margin-bottom:10px}
.fav-gruppe-kopf{padding:2px 0}
.fav-gruppe-liste{padding-left:22px}

/* 🙂 Emoji-Auswahl und 🔗 Verknüpfen-Fenster im Chat (21.08.2026) */
.emoji-panel{position:fixed;z-index:1200;background:var(--surface);border:1px solid var(--border);border-radius:12px;
  box-shadow:0 12px 32px rgba(0,0,0,.18);padding:10px;max-height:340px;overflow-y:auto;width:320px}
.emoji-gruppe{margin-bottom:8px}
.emoji-titel{font-size:.7rem;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:600;margin-bottom:4px}
.emoji-raster{display:grid;grid-template-columns:repeat(8,1fr);gap:3px}
.emoji-btn{border:none;background:none;cursor:pointer;font-size:1.15rem;line-height:1;padding:4px 2px;border-radius:6px}
.emoji-btn:hover{background:var(--bg);transform:scale(1.25)}
.verkn-panel{width:380px}
.verkn-liste{max-height:230px;overflow-y:auto}
.verkn-zeile{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:none;background:none;cursor:pointer;
  padding:6px 8px;border-radius:8px;font-family:inherit;font-size:.84rem;color:inherit}
.verkn-zeile:hover{background:var(--bg)}
.verkn-typ{flex:0 0 auto;font-size:.68rem;text-transform:uppercase;letter-spacing:.3px;font-weight:700;color:var(--muted);
  border:1px solid var(--border);border-radius:5px;padding:1px 5px}
.verkn-titel{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* #123 im Chat: sieht aus wie ein Link, ist aber ein Knopf */
.chat-auf-link{border:none;background:none;padding:0;font:inherit;color:#2563eb;cursor:pointer;font-weight:600}
.chat-auf-link:hover{text-decoration:underline}

/* 👀 Live-Anwesenheit (21.08.2026): wer arbeitet gerade woran */
.praesenz-chip{display:inline-flex;align-items:center;justify-content:center;flex:none;
  width:22px;height:22px;border-radius:50%;background:#64748b;color:#fff;
  font-size:.62rem;font-weight:700;letter-spacing:.2px;margin-left:3px;border:2px solid var(--surface)}
.praesenz-chip.schreibt{box-shadow:0 0 0 2px #f59e0b}
.praesenz-chips{display:inline-flex;flex:none}
.praesenz-warn{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:9px 14px;border-radius:10px;
  background:#eff6ff;border:1px solid #93c5fd;color:#1e40af;font-size:.85rem}
.praesenz-warn.schreibt{background:#fef3c7;border-color:#f59e0b;color:#92400e;font-weight:600}
.live-zahl{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:#2e9e44;color:#fff;
  border-radius:999px;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;
  font-size:.68rem;font-weight:700;padding:0 5px}
.nav-item.schnell-btn{position:relative}
.live-zeile{display:flex;align-items:center;gap:8px;padding:5px 4px}
.live-punkt{width:8px;height:8px;border-radius:50%;background:#f59e0b;flex:none;margin-left:auto}
/* Personen-Reihe unter „Team live": immer sichtbar, ohne Klick */
.live-reihe{display:flex;flex-wrap:wrap;gap:2px;padding:2px 14px 6px;min-height:0}
.live-reihe:empty{display:none}
.live-reihe .praesenz-chip{margin-left:0;width:24px;height:24px;font-size:.66rem}
.sidebar.collapsed .live-reihe{padding:2px 6px 6px;justify-content:center}
/* „Gerade am Arbeiten"-Zeile auf dem Dashboard */
.dash-live .praesenz-chip{margin-left:0;margin-right:6px}
.dash-live .dash-weiter-k{align-items:center}
/* Blasser Kreis = die Person ist nicht direkt hier, sondern in einem Artikel/einer Unterkategorie */
.praesenz-chip.indirekt{opacity:.62;border-style:dashed}
/* „+3" wenn mehr Leute da sind als Kreise passen */
.praesenz-chip.mehr{background:transparent;color:var(--muted);border-color:var(--border);font-weight:700}
/* Kleine Zahl am zugeklappten Zweig: „hier drin arbeiten 2" — unaufdringlich, kein Kreis-Stapel */
.praesenz-tief{display:inline-flex;align-items:center;justify-content:center;flex:none;margin-left:4px;
  min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--bg);
  color:var(--muted);font-size:.66rem;font-weight:700;border:1px solid var(--border)}
.praesenz-tief::before{content:"";width:5px;height:5px;border-radius:50%;background:#2e9e44;margin-right:3px}
/* „Gerade in Arbeit"-Leiste: hebt sich leicht ab, damit man sie beim Arbeiten wahrnimmt */
.praesenz-block{background:#fffbeb;border-bottom-color:#fcd34d}
.praesenz-block .fav-block-kopf{color:#92400e}
.praesenz-chip-zeile{border-color:#fcd34d}
.praesenz-chip-zeile:hover{border-color:#f59e0b;background:#fef3c7}
.praesenz-chip-zeile .praesenz-chip{margin-left:0;margin-right:4px;width:20px;height:20px;font-size:.6rem}

/* 📂 Zuklappbare Gruppen in der Seitenleiste (21.08.2026) */
.nav-section.klappbar{cursor:pointer;display:flex;align-items:center;justify-content:space-between;
  border-radius:6px;user-select:none}
.nav-section.klappbar:hover{background:rgba(255,255,255,.06)}
.nav-pfeil{font-size:.7rem;opacity:.6;transition:transform .15s;margin-left:6px}
.nav-section.zu .nav-pfeil{transform:rotate(-90deg)}
.nav-item.nav-versteckt{display:none}
.sidebar.collapsed .nav-pfeil{display:none}

/* 🚨 Warnung, wenn ein anderes Fenster die Anmeldung übernommen hat (21.08.2026) */
.anmeldung-gewechselt{position:fixed;top:0;left:0;right:0;z-index:3000;display:flex;align-items:center;
  gap:14px;padding:12px 20px;background:#dc2626;color:#fff;font-size:.88rem;line-height:1.45;
  box-shadow:0 4px 16px rgba(0,0,0,.28)}
.anmeldung-gewechselt b{font-weight:700}
.anmeldung-gewechselt .btn{flex:none;background:#fff;color:#991b1b;border-color:#fff;font-weight:700}

/* 🔒 „Jemand arbeitet hier" — deutlich rot statt nur ein kleiner Kreis (21.08.2026) */
.art-row.belegt{background:#fef2f2;border-left:4px solid #dc2626}
.art-row.belegt:hover{background:#fee2e2}
.art-row.belegt .art-name{color:#991b1b}
.belegt-sub{color:#b91c1c !important;font-weight:600;display:flex;align-items:center;gap:4px}
.belegt-sub .schloss{font-size:.8em}
.tnode.belegt{background:#fef2f2;border-left:3px solid #dc2626}
.tnode.belegt:hover{background:#fee2e2}
.tnode.belegt .tname>span:first-of-type{color:#991b1b;font-weight:600}
.belegt-name{margin-left:6px;font-size:.72rem;font-weight:700;color:#b91c1c;white-space:nowrap}
/* Schreibschutz im Formular (nur wenn eingeschaltet) */
.formular-gesperrt input:not([type=button]):not([type=submit]),
.formular-gesperrt textarea,
.formular-gesperrt select{pointer-events:none;background:#f8fafc;color:#94a3b8}
.formular-gesperrt .pf-fill,.formular-gesperrt .btn.primary{opacity:.45;pointer-events:none}
.sperr-leiste{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:9px 14px;border-radius:10px;
  background:#fee2e2;border:1px solid #dc2626;color:#991b1b;font-size:.85rem;font-weight:600}
.sperr-leiste .btn{flex:none}
/* „ist auch hier, hat aber noch nichts offen" — blasser als die echten Bearbeiter */
.praesenz-chip-zeile.umher{border-style:dashed;opacity:.75;cursor:default}
/* Hinweis über der Artikelliste, wenn die Kategorie gerade bearbeitet wird */
.kat-belegt-hinweis{display:flex;align-items:center;gap:10px;padding:9px 12px;background:#fef3c7;
  border-bottom:1px solid #f59e0b;color:#92400e;font-size:.82rem;font-weight:600;line-height:1.4}

/* 🗂 Einstellungen: zwei Ebenen statt einer langen Liste (21.08.2026) */
.settings-nav{flex:0 0 200px}
.set-grp-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;
  padding:10px 14px;margin-bottom:4px;border:1px solid transparent;border-radius:10px;background:none;
  cursor:pointer;font-family:inherit;font-size:.88rem;font-weight:600;color:var(--text);text-align:left}
.set-grp-btn:hover{background:var(--bg)}
.set-grp-btn.active{background:var(--accent-weak,#eef2ff);border-color:var(--accent,#6366f1);color:var(--accent,#4f46e5)}
.set-grp-zahl{flex:none;font-size:.7rem;font-weight:700;color:var(--muted);background:var(--bg);
  border-radius:999px;min-width:20px;text-align:center;padding:1px 6px}
.set-grp-btn.active .set-grp-zahl{background:#fff;color:var(--accent,#4f46e5)}
/* Waagrechte Reiter über dem Inhalt */
.set-reiter{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.set-reiter:empty{display:none}
.set-reiter-btn{padding:7px 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface);
  cursor:pointer;font-family:inherit;font-size:.84rem;color:var(--text)}
.set-reiter-btn:hover{border-color:var(--accent,#6366f1)}
.set-reiter-btn.active{background:var(--accent,#6366f1);border-color:var(--accent,#6366f1);color:#fff;font-weight:600}

/* 🔒 Balken: Zwei-Faktor ist Pflicht, fehlt aber noch (21.08.2026) */
.zweifaktor-pflicht{position:fixed;top:0;left:0;right:0;z-index:2900;display:flex;align-items:center;
  gap:14px;padding:11px 20px;background:#f59e0b;color:#3b2600;font-size:.88rem;line-height:1.45;
  box-shadow:0 3px 14px rgba(0,0,0,.22)}
.zweifaktor-pflicht .btn{flex:none;background:#3b2600;color:#fff;border-color:#3b2600;font-weight:700}

/* 📥 Ablage-Felder je Bildart im Produktformular (21.08.2026) */
.mv-ablagen{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.mv-ablage{flex:1 1 120px;min-width:110px;padding:12px 10px;border:2px dashed var(--border);border-radius:12px;
  background:var(--bg);text-align:center;transition:background .12s,border-color .12s}
.mv-ablage.over{border-color:var(--accent);background:var(--accent-soft);border-style:solid}
.mv-ablage.sonstige{background:transparent;border-color:var(--border)}
.mv-ablage.sonstige.over{border-color:var(--muted);background:var(--bg)}
.mv-ablage-name{font-size:.8rem;font-weight:600;color:var(--text);line-height:1.25}
.mv-ablage-zahl{font-size:1.3rem;font-weight:700;color:var(--muted);margin-top:2px}
.mv-ablage.over .mv-ablage-name,.mv-ablage.over .mv-ablage-zahl{color:var(--accent-d)}
/* 🏷 Typ-Knopf im Medien-Bereich als Ablage-Ziel (Dateien darauf ziehen) */
.dam-chip.drop-ziel{outline:2px solid #2563eb;outline-offset:2px;background:#eff6ff;color:#1d4ed8;transform:scale(1.06)}
/* 👀 Während man Dateien zieht: Ablage-Ziele deutlich hervorheben */
.dam-side-hint{font-size:.68rem;font-weight:500;color:var(--muted);text-transform:none;letter-spacing:0;margin-left:6px}
.dam-chip.ziel-bereit{border-color:#2563eb;border-style:dashed;background:#eff6ff;color:#1d4ed8;font-weight:600}
body.dam-zieht .dam-side-hint{color:var(--accent-d);font-weight:700}
/* Hinweis, wo die Massen-Werkzeuge herkommen (erscheint nur ohne Auswahl) */
.dam-tipp{display:block;font-size:.78rem;color:var(--accent-d);background:var(--accent-soft);border:1px solid #bfdbfe;
  border-radius:8px;padding:6px 10px;margin-top:6px;line-height:1.45}

/* 📥 Ablage-Kacheln im Medien-Bereich (21.08.2026) — erscheinen, sobald links ein Bildtyp
   gedrückt ist: Bilder aus dem Raster darauf ziehen setzt den Typ sofort, auch in Menge. */
.dam-ablagen{display:block;margin:4px 0 14px;padding:10px 12px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.dam-ablagen-titel{font-size:.82rem;font-weight:600;color:var(--muted);margin-bottom:8px}
.mv-ablage.aktiv{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}
/* Zwei Gruppen nebeneinander: links gross die Produkt-Arten, rechts kompakt die seltenen.
   Die Breite wird voll ausgenutzt — alles bleibt in einer Zeile. */
.mv-ablagen-zwei{display:flex;gap:18px;align-items:flex-start;width:100%}
.mv-ablagen-spalte{flex:1 1 auto;min-width:0}
/* die seltenen kleben am rechten Rand — dazwischen bleibt Luft, die Breite ist voll genutzt */
.mv-ablagen-spalte.schmal{flex:0 0 auto;margin-left:auto;padding-left:18px;border-left:1px dashed var(--border)}
.mv-ablagen-label{font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--muted);margin:0 0 6px 2px}
.mv-ablagen-reihe{display:flex;gap:8px;flex-wrap:wrap}
.mv-ablagen-reihe.haupt .mv-ablage{flex:1 1 0;min-width:120px;max-width:260px;padding:14px 10px}
.mv-ablagen-reihe.neben .mv-ablage{flex:0 0 auto;min-width:84px;padding:9px 8px}
.mv-ablagen-reihe.neben .mv-ablage-name{font-size:.78rem}
.mv-ablagen-reihe.neben .mv-ablage-zahl{font-size:.9rem}
.mv-ablage-zahl.pfeil{font-size:1.1rem;color:var(--muted);font-weight:700;opacity:.65}
.mv-ablage.over .mv-ablage-zahl.pfeil{color:var(--accent-d);opacity:1}

/* 🔢 Sicherheits-Code als Kacheln — ein Kästchen je Ziffer (21.08.2026) */
.otp-reihe{display:flex;gap:8px;margin:4px 0 2px}
.otp-feld{width:46px;height:56px;padding:0;text-align:center;font-size:1.45rem;font-weight:700;
  font-variant-numeric:tabular-nums;border:2px solid var(--border);border-radius:12px;
  background:var(--surface);color:var(--text);transition:border-color .12s,box-shadow .12s}
.otp-feld:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(37,99,235,.16)}
.otp-feld:not(:placeholder-shown){border-color:var(--faint)}
.otp-rettung-link{background:none;border:none;padding:4px 0;color:var(--accent);font-size:.8rem;
  text-decoration:underline;cursor:pointer}
@media (max-width:420px){.otp-feld{width:40px;height:50px;font-size:1.25rem}}

/* Abmelde-Warnung: die Administratorin hat eine erzwungene Abmeldung angekuendigt (23.08.2026) */
.abmelde-warnung{position:fixed;left:50%;top:22px;transform:translateX(-50%);z-index:99999;
  background:#7f1d1d;color:#fff;border-radius:12px;padding:14px 22px;max-width:min(560px,92vw);
  box-shadow:0 10px 34px rgba(0,0,0,.34);text-align:center;line-height:1.45;font-size:.92rem}
.abmelde-titel{font-weight:700;font-size:1.02rem;margin-bottom:3px}
/* Knopf im Warnbalken rechts halten */
.praesenz-warn .sperre-frei{margin-left:auto;flex:0 0 auto}
.wartung-laeuft{background:var(--amber-soft);border:1px solid var(--amber);color:var(--amber-tx);border-radius:10px;
  padding:10px 12px;margin-bottom:14px;font-size:.88rem}
.wartung-zeile{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.wartung-label{min-width:250px;font-size:.85rem;color:var(--muted);padding-top:7px}
/* Gemerkte Saetze fuer den Wartungsgrund (23.08.2026) */
.wartung-bausteine{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 18px 262px}
.baustein-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);
  background:var(--bg);border-radius:999px;padding:5px 6px 5px 13px;font-size:.8rem;cursor:pointer;
  max-width:340px;text-align:left}
.baustein-chip:hover{border-color:var(--accent)}
.baustein-weg{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;
  border-radius:50%;background:rgba(0,0,0,.07);font-size:.8rem;line-height:1}
.baustein-weg:hover{background:var(--danger);color:#fff}
@media (max-width:900px){.wartung-bausteine{margin-left:0}}
/* Karte unten nicht abschneiden - die Knopfreihe braucht Luft (Aileen 23.08.) */
.set-card{padding-bottom:26px}

/* Geraete & Sitzungen (24.08.2026) */
.online-punkt{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--border);box-shadow:0 0 0 2px rgba(0,0,0,.04)}
.online-punkt.an{background:var(--green);box-shadow:0 0 0 3px rgba(22,163,74,.18)}
.sitz-alarm{background:var(--danger-soft);border:1px solid var(--danger);color:var(--danger-tx);border-radius:10px;padding:10px 12px;margin:6px 0 12px;font-size:.85rem;line-height:1.45}
tr.sitz-warn td{background:var(--danger-soft)}

/* Fusszeile in Fenstern: Knopfreihe mit Luft, damit nichts abgeschnitten wirkt (24.08.2026) */
.imp-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px 16px;border-top:1px solid var(--border);background:var(--surface);position:sticky;bottom:0}
.imp-modal .imp-body{padding-bottom:8px}


/* ---------- Länder-Auswahl mit Kontinenten und Ampel (24.08.2026) ---------- */
.lw{display:block}
.lw-art{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.lw-art-btn{border:2px solid var(--border);background:var(--surface);border-radius:999px;
  padding:7px 16px;font-size:.85rem;font-weight:600;cursor:pointer;color:var(--text)}
.lw-art-btn:hover{border-color:var(--faint)}
.lw-art-btn.an{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-d)}
.lw-erklaer{font-size:.8rem;color:var(--muted);margin-bottom:12px;min-height:1.2em}

.lw-kont{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.lw-kont-kachel{flex:1 1 150px;max-width:210px;border:2px solid var(--border);border-radius:12px;
  padding:10px 12px;background:var(--surface)}
.lw-kont-kachel.teil{border-color:var(--green);background:var(--green-soft)}
.lw-kont-kachel.voll{border-color:var(--green);background:var(--green-soft)}
.lw-sperrt .lw-kont-kachel.teil{border-color:var(--danger);background:var(--danger-soft)}
.lw-sperrt .lw-kont-kachel.voll{border-color:var(--danger);background:var(--danger-soft)}
.lw-kont-name{font-weight:700;font-size:.9rem}
.lw-kont-zahl{font-size:.78rem;color:var(--muted);margin:2px 0 8px}
.lw-kont-btns{display:flex;gap:6px}

.lw-such{display:flex;gap:12px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.lw-such input{max-width:300px}
.lw-zaehler{font-size:.8rem;color:var(--muted);font-weight:600}

.lw-liste{max-height:340px;overflow-y:auto;border:1px solid var(--border);border-radius:12px;
  padding:10px 12px;background:var(--bg)}
.lw-gruppe{margin-bottom:12px}
.lw-gruppe-titel{font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--muted);margin-bottom:6px}
.lw-gruppe-reihe{display:flex;flex-wrap:wrap;gap:6px}
.lw-land{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);
  background:var(--surface);border-radius:999px;padding:5px 11px;font-size:.82rem;cursor:pointer;
  color:var(--text)}
.lw-land:hover{border-color:var(--faint)}
.lw-land.an{border-color:var(--green);background:var(--green-soft);color:var(--green-tx);font-weight:600}
.lw-sperrt .lw-land.an{border-color:var(--danger);background:var(--danger-soft);color:var(--danger-tx)}
.lw-land-kuerzel{font-size:.7rem;opacity:.6;font-variant-numeric:tabular-nums}
.lw-aus .lw-kont,.lw-aus .lw-such,.lw-aus .lw-liste{opacity:.45;pointer-events:none}

/* Anwesenheits-Verlauf (24.08.2026) */
.anw-tag{margin:8px 0 12px}
.anw-tag-kopf{display:flex;align-items:baseline;gap:10px;margin-bottom:5px;font-size:.85rem}
.anw-summe{color:var(--muted);font-size:.8rem}
.anw-striche{display:flex;flex-wrap:wrap;gap:6px}
.anw-strich{display:inline-block;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:3px 9px;font-size:.78rem;font-variant-numeric:tabular-nums}
.anw-strich.offen{border-color:var(--green);background:var(--green-soft);color:var(--green-tx);font-weight:600}

/* ---------- Sicherheits-Fenster je Person: Profil oben, Reiter darunter (24.08.2026) ---------- */
/* Grosses Fenster: nutzt fast den ganzen Bildschirm, damit die Karte Platz hat (24.08.2026) */
.sich-modal{max-width:1180px;width:96vw;max-height:calc(100vh - 40px)}
.sich-modal .wk-buehne{max-height:520px}
.sich-kopf{padding-bottom:14px;border-bottom:1px solid var(--border);margin-bottom:14px}
.sich-kopf-zeile{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.sich-kopf-label{font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);min-width:52px}
.sich-kurz{display:grid;grid-template-columns:1fr;gap:5px}
.sich-kurz-zeile{display:flex;justify-content:space-between;gap:14px;align-items:baseline;
  padding:6px 11px;background:var(--bg);border-radius:8px}
.sich-kurz-wert{font-size:.87rem;font-weight:600}
.sich-kurz-quelle{font-size:.78rem;color:var(--muted);white-space:nowrap}
.sich-reiter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.sich-reiter-btn{border:1px solid var(--border);background:var(--surface);border-radius:999px;
  padding:6px 15px;font-size:.83rem;font-weight:600;cursor:pointer;color:var(--text)}
.sich-reiter-btn:hover{border-color:var(--faint)}
.sich-reiter-btn.an{background:var(--accent);border-color:var(--accent);color:#fff}
.sich-inhalt{min-height:120px}
.sich-modal .lw-liste{max-height:250px}
.sich-modal .lw-kont{gap:6px}
.sich-modal .lw-kont-kachel{flex:1 1 108px;max-width:150px;padding:7px 9px}
.sich-modal .lw-kont-name{font-size:.8rem}
.sich-modal .lw-kont-zahl{font-size:.71rem;margin:1px 0 5px}
/* Profil-Liste (24.08.2026) */
.prof-zeile{border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:var(--surface)}
.prof-kopf{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.prof-kopf b{font-size:.95rem}
.prof-werte{display:flex;flex-wrap:wrap;gap:7px}
.prof-wert{font-size:.78rem;background:var(--bg);border-radius:999px;padding:4px 11px;color:var(--muted)}

/* Knopf-Spalte je Person: nebeneinander (24.08.2026, Aileen: „nicht untereinander, horizontal
   scrollen wenn ich brauche"). Die Tabelle rollt bei Bedarf waagrecht. Nicht-Zutreffendes bleibt
   ausgegraut. */
.urow-actions{display:flex;flex-direction:row;flex-wrap:nowrap;gap:6px;align-items:center}
.urow-btn{white-space:nowrap}
.urow-btn.aus{opacity:.4;cursor:not-allowed}
.urow-btn.gesperrt{color:#dc2626;border-color:#dc2626;font-weight:700}
/* Gebiete-Knopf: grün wenn zugeteilt */
.geb-btn.zugeteilt{background:var(--green-soft);border-color:var(--green);color:var(--green-tx);font-weight:600}

/* ---------- Weltkarte (24.08.2026) ---------- */
.wk{margin:2px 0 14px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#eef2f7}
.wk-leiste{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;background:var(--surface);border-bottom:1px solid var(--border)}
.wk-name{font-size:.82rem;font-weight:600;color:var(--text)}
.wk-zoom{display:inline-flex;gap:5px}
.wk-buehne{position:relative;width:100%;aspect-ratio:2/1;max-height:340px;overflow:hidden;cursor:grab;touch-action:none}
.wk-buehne:active{cursor:grabbing}
.wk-svg{width:100%;height:100%;display:block}
.wk-land{fill:var(--border);stroke:#fff;stroke-width:.4;cursor:pointer;transition:fill .1s}
.wk-land:hover{fill:var(--faint)}
.wk-land.an{fill:var(--green)}
.wk-land.an:hover{fill:var(--green)}
.wk-sperrt .wk-land.an{fill:var(--danger)}
.wk-sperrt .wk-land.an:hover{fill:var(--danger-tx)}
.lw-aus .wk{opacity:.5;pointer-events:none}

/* Herkunfts-Daten (24.08.2026) */
.hd-block{border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:12px;background:var(--surface)}
.hd-kopf{display:flex;align-items:center;gap:10px}
.hd-kopf b{font-size:.95rem}
.hd-status{font-size:.78rem;font-weight:700;padding:2px 10px;border-radius:999px}
.hd-status.da{background:var(--green-soft);color:var(--green-tx)}
.hd-status.fehlt{background:var(--bg);color:var(--muted)}

/* Such- und Filterleiste Benutzer & Team (24.08.2026) */
.team-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px}
.team-filter .spacer{flex:1 1 auto}

/* Weltkarte-Suche + gefundenes Land umkreisen (24.08.2026) */
.wk-suche{max-width:200px;font-size:.82rem}
.wk-treffer{white-space:nowrap}
.wk-treffer.an{background:var(--green-soft);border-color:var(--green);color:var(--green-tx)}
.wk-land.gefunden{stroke:var(--amber);stroke-width:2.2;paint-order:stroke;animation:wk-puls 1.1s ease-in-out infinite}
@keyframes wk-puls{0%,100%{stroke-opacity:1}50%{stroke-opacity:.35}}

/* Echter (GPS) vs ungefährer (IP) Ort (24.08.2026) */
.ort-genau{color:var(--green);font-weight:700;font-size:.72rem;white-space:nowrap}
.ort-ca{color:var(--faint);font-size:.72rem;white-space:nowrap}

/* „Alle sperren, einzelne freigeben": Karte zeigt alles rot, Freigegebene grün (24.08.2026) */
.wk-whitelist .wk-land{fill:var(--danger-soft)}
.wk-whitelist .wk-land:hover{fill:var(--danger)}
.wk-whitelist .wk-land.an{fill:var(--green)}
.wk-whitelist .wk-land.an:hover{fill:var(--green)}
/* Länderliste im Whitelist-Modus: nicht gewählte klar als „gesperrt" zeigen */
.lw-whitelist .lw-land{border-color:var(--danger-soft);background:var(--danger-soft);color:var(--danger-tx)}
.lw-whitelist .lw-land.an{border-color:var(--green);background:var(--green-soft);color:var(--green-tx)}
.lw-whitelist .lw-kont-kachel{border-color:var(--danger-soft)}

/* Karte: Hover-Vorschau — zeigt beim Drüberfahren, was ein Klick bewirkt (24.08.2026) */
.wk-whitelist .wk-land.vorschau{fill:var(--green)}          /* rot → grün: wird freigegeben */
.wk-whitelist .wk-land.an.vorschau{fill:var(--danger-soft)}       /* grün → rot: wird gesperrt */
.wk-sperrt .wk-land.vorschau{fill:var(--danger)}             /* wird gesperrt */
.wk-sperrt .wk-land.an.vorschau{fill:var(--border)}          /* Sperre wird aufgehoben */
.wk-land.vorschau{fill:var(--green)}                        /* Normalmodus: wird gewählt */
.wk-land.an.vorschau{fill:var(--border)}                     /* wird abgewählt */

/* Länder-Wähler zweispaltig im grossen Fenster: Karte links, Liste rechts (24.08.2026) */
.lw-haupt{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.lw-links{flex:1 1 55%;min-width:340px}
.lw-links .wk{margin:0}
.lw-rechts{flex:1 1 38%;min-width:280px;display:flex;flex-direction:column;gap:10px}
.lw-rechts .lw-kont{margin-bottom:0}
.lw-rechts .lw-liste{max-height:440px}
.lw-rechts .lw-kont-kachel{flex:1 1 120px}
@media (max-width:820px){ .lw-links,.lw-rechts{flex:1 1 100%} }

/* Benutzer & Team: Spalten an den Text anpassen, Zeilen niedrig halten (24.08.2026, Aileen:
   „alle Spalten an der Breite vom Text anpassen und nicht höher stellen"). Kein Umbruch mehr;
   bei Bedarf rollt die Tabelle waagrecht (.tbl-scroll). */
.team-tbl{width:auto;table-layout:auto}
.team-tbl td,.team-tbl th{white-space:nowrap;vertical-align:middle !important;padding:5px 8px}
.team-tbl .geb-btn{white-space:nowrap;max-width:230px;overflow:hidden;text-overflow:ellipsis}

/* Zwei-Faktor-Stand: grosse Zahl + Fortschrittsbalken (24.08.2026) */
.zfa-kopf{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.zfa-zahl{font-size:1.5rem;font-weight:800;color:var(--amber-tx);background:var(--amber-soft);border:1px solid var(--amber);border-radius:12px;padding:6px 14px;white-space:nowrap}
.zfa-zahl.gut{color:var(--green);background:var(--green-soft);border-color:var(--green)}
.zfa-label{font-size:.78rem;color:var(--muted);margin-bottom:4px}
.zfa-bar{height:10px;background:var(--bg);border-radius:999px;overflow:hidden}
.zfa-fill{height:100%;background:var(--amber);border-radius:999px;transition:width .3s}
.zfa-fill.gut{background:var(--green)}
.zfa-prozent{font-size:.78rem;font-weight:700;color:var(--muted);margin-top:3px}
.zfa-offen{display:inline-block;border:1px solid var(--amber);background:var(--amber-soft);color:var(--amber-tx);border-radius:999px;padding:4px 12px;font-size:.82rem;font-weight:600}

/* Avatar-Menü: kleines Fenster über der Benutzer-Karte (24.08.2026) */
.avmenu{position:fixed;z-index:9500;min-width:230px;background:var(--surface);border:1px solid var(--border);
  border-radius:14px;box-shadow:0 18px 44px rgba(15,23,42,.22);padding:6px;animation:avmenu-auf .12s ease-out}
@keyframes avmenu-auf{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.avmenu-kopf{padding:9px 12px 8px;border-bottom:1px solid var(--border-2);margin-bottom:5px;display:flex;flex-direction:column;gap:1px}
.avmenu-kopf b{font-size:.9rem}
.avmenu-kopf span{font-size:.75rem;color:var(--muted)}
.avmenu-item{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;cursor:pointer;
  padding:8px 12px;border-radius:9px;font:inherit;font-size:.85rem;color:var(--text);text-align:left}
.avmenu-item:hover{background:var(--accent-soft);color:var(--accent-d)}
.avmenu-item svg{width:17px;height:17px;flex:0 0 auto}
.avmenu-item.gefahr{color:var(--danger)}
.avmenu-item.gefahr:hover{background:var(--danger-soft);color:var(--danger-tx)}

/* ===== Formular-Grundlinie (Build 1011, 28.08.2026) =====
   Aileen: „Bild 1 (Lieferanten-Panel) sieht toll aus, die anderen nicht — und die sind
   nicht die einzigen." Darum hier EINE Grundregel fuer ALLE Eingabefelder im ganzen
   Programm: gleicher Look wie im Lieferanten-Panel (weiche Rundung, ruhiger Rand,
   sanfter Fokus-Ring). Bewusst mit NIEDRIGER Spezifitaet — Bereiche mit eigenem,
   gewolltem Stil (Produktformular, Suchleisten, Chips) gewinnen weiterhin. */
input[type=text], input[type=number], input[type=email], input[type=password],
input[type=search], input[type=date], input[type=time], input[type=url], input:not([type]),
select, textarea {
  font: inherit; color: inherit;
  padding: 8px 12px;
  border: 1px solid var(--border, #d6dbe6);
  border-radius: 9px;
  background: var(--panel, #fff);
  box-sizing: border-box;
}
select { padding-right: 28px; cursor: pointer; }
textarea { line-height: 1.4; }
input[type=text]:focus, input[type=number]:focus, input[type=email]:focus, input[type=password]:focus,
input[type=search]:focus, input[type=date]:focus, input[type=time]:focus, input[type=url]:focus, input:not([type]):focus,
select:focus, textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft, #eef0ff);
}
input::placeholder, textarea::placeholder { color: var(--muted, #9aa1af); opacity: .8; }

/* Blaues Export-Quadrat an der gewählten Kategorie im Produkte-Baum (Build 1026) */
.tree-export {
  width: 22px; height: 22px; flex: 0 0 22px;
  display: inline-flex; align-items: center; justify-content: center;
  margin-left: 6px; padding: 0;
  background: var(--accent, #4f46e5); color: #fff;
  border: none; border-radius: 5px; cursor: pointer;
}
.tree-export:hover { background: var(--accent-d, #4338ca); }
.tree-export svg { width: 13px; height: 13px; }

/* KI-Kopf am URL-Feld: gleiche Fläche wie Link/Lupe — nur das runde Köpfchen, kein Extra-Rahmen */
.ext-link .ki-ico { width: 16px; height: 16px; margin: 0; vertical-align: 0; box-shadow: none; }

/* Medien-Reiter: Papierkorb-Ablage, Kachel-Häkchen, Auswahl-Leiste (Build 1037) */
.mv-ablage.papierkorb{border-color:var(--danger,#b91c1c);color:var(--danger,#b91c1c);background:transparent}
.mv-ablage.papierkorb .mv-ablage-name{color:inherit}
.mv-ablage.papierkorb .mv-ablage-zahl{color:inherit;display:flex;justify-content:center;margin-top:4px}
.mv-ablage.papierkorb .mv-ablage-zahl svg{width:20px;height:20px}
.mv-ablage.papierkorb.over{background:#fee2e2;border-style:solid}
.mv-sel{position:absolute;left:6px;top:6px;z-index:3;width:17px;height:17px;cursor:pointer;accent-color:var(--accent,#4f46e5)}
.mv-thumb.sel{outline:2px solid var(--accent,#4f46e5);outline-offset:-2px}
.mv-selbar{display:flex;gap:8px;align-items:center;margin:8px 0 4px;font-size:.84rem}

/* 🖼 Visuelle Vorlage (Build 1054): Bild/Zeichnung je Kategorie mit Hotspots an den Merkmalen */
.vv-leer{margin:16px 0 0;width:100%;display:flex;align-items:center;gap:10px;padding:14px 16px;border:2px dashed var(--accent);border-radius:10px;background:var(--accent-soft);color:var(--accent-d);cursor:pointer;font:inherit;text-align:left}
.vv-leer:hover{background:var(--surface)}
.vv-leer .ico{width:22px;height:22px}
.vv-leer .muted{font-size:.8rem}
.vv-card{margin:16px 0 0;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:10px 12px}
.vv-card.vv-pin{position:sticky;top:0;z-index:5;box-shadow:0 6px 18px rgba(0,0,0,.08)}
.vv-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vv-head .spacer,.vv-tools .spacer{flex:1}
.vv-auf{border:0;background:none;cursor:pointer;color:var(--muted);padding:0;display:inline-flex;transition:transform .15s}
.vv-card.zu .vv-auf{transform:rotate(-90deg)}
.vv-card.zu .vv-body{display:none}
.vv-quelle{font-size:.78rem}
.vv-zaehler{font-size:.78rem;color:var(--danger-tx);font-weight:600}
.lay-tb.on{color:var(--accent);border-color:var(--accent)}
.vv-body{margin-top:8px}
.vv-bild{position:relative;display:inline-block;max-width:100%;line-height:0;user-select:none}
.vv-bild img{max-width:100%;max-height:380px;display:block;border-radius:6px}
.vv-card.vv-pin .vv-bild img{max-height:240px}
.vv-bild.setzen{cursor:crosshair;outline:2px dashed var(--accent);outline-offset:3px;border-radius:6px}
.vv-noimg{line-height:1.4;padding:30px 40px;color:var(--muted);border:1px dashed var(--border);border-radius:6px}
.vv-spot{position:absolute;transform:translate(-50%,-50%);line-height:1.2;font:600 .8rem/1.2 inherit;padding:3px 8px;border-radius:6px;
  background:var(--accent-soft);color:var(--accent-d);border:1px solid var(--accent);cursor:pointer;white-space:nowrap;
  box-shadow:0 1px 3px rgba(0,0,0,.12);transition:transform .12s,box-shadow .12s}
.vv-spot:hover{transform:translate(-50%,-50%) scale(1.08)}
.vv-spot.leer{background:var(--surface);color:var(--muted);border-style:dashed;border-color:var(--faint)}
.vv-spot.pflicht{background:var(--danger-soft);color:var(--danger-tx);border:1px solid var(--danger)}
.vv-spot.aktiv{background:var(--accent);color:#fff;border-color:var(--accent-d);box-shadow:0 0 0 4px var(--accent-soft);transform:translate(-50%,-50%) scale(1.12);z-index:2}
.vv-spot.edit{cursor:grab;display:inline-flex;align-items:center;gap:6px}
.vv-spot.edit.zieht{cursor:grabbing;z-index:3}
.vv-spot.fremd{background:var(--amber-soft);color:var(--amber-tx);border-color:var(--amber)}
.vv-weg{border:0;background:none;cursor:pointer;color:inherit;font-size:1rem;line-height:1;padding:0}
.vv-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.vv-hinweis{font-size:.8rem;color:var(--accent-d);margin-top:6px;min-height:1em}
.vv-head select,.vv-tools select{width:auto;max-width:280px;flex:0 1 auto}
/* 🖼 Visuelle Vorlage — Build 1056: schwebend, eigenes Fenster, Ziehen aufs Bild, Eingabe im Bild */
.vv-platz{margin:16px 0 0;display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px dashed var(--border);border-radius:10px;color:var(--muted);font-size:.82rem}
.vv-platz .ico{width:18px;height:18px}
.vv-float{position:fixed;z-index:900;resize:both;overflow:auto;min-width:320px;min-height:200px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,.22)}
.vv-float .vv-card{margin:0;border:0;border-radius:12px}
.vv-griff{cursor:move;user-select:none}
.vv-ort-schwebend .vv-bild,.vv-ort-fenster .vv-bild{display:block}
.vv-ort-schwebend .vv-bild img,.vv-ort-fenster .vv-bild img{width:100%;max-height:none}
.vv-popbody{margin:0;padding:12px;background:var(--bg)}
.vv-popbody .vv-card{margin:0}
.vv-pophinweis{padding:40px;text-align:center;color:var(--muted)}
.vv-status{font-size:.75rem;color:var(--green-tx)}
.vv-bild.vv-ziel.drueber{outline:3px dashed var(--accent);outline-offset:3px;border-radius:6px}
.vv-palette{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px;font-size:.78rem}
.vv-chip{padding:3px 9px;border-radius:999px;border:1px solid var(--border);background:var(--surface);cursor:grab;font-size:.78rem}
.vv-chip:hover{border-color:var(--accent);color:var(--accent-d)}
.vv-spot .vv-wert{pointer-events:none}
.vv-spot:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.vv-eingabe{position:absolute;transform:translate(-50%,8px);z-index:6;display:flex;align-items:center;gap:6px;flex-wrap:wrap;line-height:1.3;
  background:var(--surface);border:1px solid var(--accent);border-radius:8px;padding:8px;box-shadow:0 8px 24px rgba(0,0,0,.18);font-size:.85rem}
.vv-eingabe-lbl{width:100%;font-size:.72rem;color:var(--muted);font-weight:600}
.vv-eingabe input,.vv-eingabe select{min-width:140px;padding:5px 8px;border:1px solid var(--border);border-radius:6px;font:inherit}
/* 🖼 Visuelle Vorlage — Build 1057: Ampel, Drehen, Gruppen-Liste, feste Bildgrösse (kein Mit-Zoomen) */
.vv-bild,.vv-ort-schwebend .vv-bild,.vv-ort-fenster .vv-bild{display:inline-block;max-width:none}
.vv-bild img,.vv-card.vv-pin .vv-bild img,.vv-ort-schwebend .vv-bild img,.vv-ort-fenster .vv-bild img{max-width:none;max-height:none;width:auto}
.vv-ort-inline .vv-body{overflow:auto;max-height:75vh}
.vv-card.vv-pin .vv-body{max-height:45vh}
.vv-spot{transform:translate(-50%,-50%) rotate(var(--rot,0deg))}
.vv-spot:hover{transform:translate(-50%,-50%) rotate(var(--rot,0deg)) scale(1.08)}
.vv-spot.aktiv{transform:translate(-50%,-50%) rotate(var(--rot,0deg)) scale(1.12)}
.vv-spot.voll{background:var(--green-soft);color:var(--green-tx);border-color:var(--green)}
.vv-spot.voll.aktiv{background:var(--green);color:#fff;border-color:var(--green-tx);box-shadow:0 0 0 4px var(--green-soft)}
.vv-spot.blink{animation:vvBlink .4s ease-in-out 4 alternate}
@keyframes vvBlink{to{box-shadow:0 0 0 8px var(--accent-soft);background:var(--accent);color:#fff}}
.vv-dreh{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:.75rem;cursor:alias;opacity:.55}
.vv-dreh:hover{opacity:1;background:var(--accent-soft)}
.vv-palette{display:block}
.vv-pal-kopf{font-size:.78rem;margin-bottom:6px}
.vv-pal-grp{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:5px 0 5px 10px;border-left:3px solid var(--gc,var(--border));margin-bottom:6px}
.vv-pal-name{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-right:4px}
.vv-chip.drin{background:var(--green-soft);color:var(--green-tx);border-color:var(--green)}
.vv-float{overflow:hidden}
.vv-float .vv-card,.vv-popbody .vv-card{display:flex;flex-direction:column;height:100%;box-sizing:border-box}
.vv-popbody .vv-card{height:calc(100vh - 24px)}
.vv-float .vv-body,.vv-popbody .vv-body{flex:1;min-height:0;overflow:auto}
/* 🖼 Visuelle Vorlage — Build 1058: Anzeige-Fläche mit mehreren Bildern (Format v2) */
.vv-flaeche{position:relative;overflow:visible;border-radius:6px;box-shadow:0 0 0 1px var(--border);flex:none}
.vv-el{position:absolute;transform-origin:0 0;max-width:none;max-height:none;user-select:none;pointer-events:none}
.vv-flaeche .vv-spot{padding:.25em .6em;border-radius:.4em;font-weight:600;line-height:1.2}
.vv-studio-btn{margin-left:6px}
.vv-float .vv-body,.vv-popbody .vv-body,.vv-ort-inline .vv-body{padding:2px}
/* 🎨 Vorlagen-Studio (Build 1058) */
.vs-offen .imp-overlay{z-index:2600}
.vs-offen .pop-input{z-index:2700}
.vs-offen #toast{z-index:2800 !important}
.vs-studio{position:fixed;inset:0;z-index:2500;background:var(--bg);display:flex;flex-direction:column;outline:none}
.vs-leiste{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap}
.vs-leiste .spacer{flex:1}
.vs-leiste select{width:auto;max-width:260px}
.vs-titel{font-size:1rem;margin-right:6px}
.vs-trenn{width:1px;height:22px;background:var(--border);margin:0 4px}
.vs-zoom-anz{min-width:52px;text-align:center;font-size:.8rem;color:var(--muted)}
.vs-hilfe{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--border);color:var(--muted);font-weight:700;font-size:.8rem;cursor:help;margin-right:6px}
.vs-leiste{flex-wrap:nowrap;overflow-x:auto}
.vs-haupt{flex:1;min-height:0;display:grid;grid-template-columns:270px minmax(0,1fr) 270px}
.vs-links,.vs-rechts{overflow:auto;padding:12px;background:var(--surface)}
.vs-links{border-right:1px solid var(--border)}
.vs-rechts{border-left:1px solid var(--border)}
.vs-leinwand{position:relative;overflow:hidden;background:repeating-conic-gradient(var(--border-2) 0 25%,transparent 0 50%) 0 0/22px 22px,var(--bg)}
.vs-leinwand.vs-pan{cursor:grab}
.vs-leinwand.drueber{outline:3px dashed var(--accent);outline-offset:-6px}
.vs-links .col-search{width:100%;margin-bottom:8px}
.vs-sek{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:12px 0 6px}
.vs-grp{border-left:3px solid var(--gc,var(--border));margin-bottom:6px;padding-left:6px}
.vs-grp-kopf{display:flex;align-items:center;gap:6px;width:100%;border:0;background:none;cursor:pointer;padding:4px 2px;font:inherit;font-weight:600;font-size:.82rem;color:var(--text);text-align:left}
.vs-grp-n{margin-left:auto;font-weight:400;color:var(--muted);font-size:.75rem}
.vs-pfeil{width:12px;color:var(--muted)}
.vs-grp-liste{display:flex;flex-direction:column;gap:3px;padding:2px 0 4px}
.vs-merkmal{padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:grab;font-size:.8rem}
.vs-merkmal:hover{border-color:var(--accent)}
.vs-merkmal.drin{background:var(--green-soft);color:var(--green-tx);border-color:var(--green);cursor:pointer}
.vs-merkmal.gewaehlt,.vs-ebene.gewaehlt{box-shadow:0 0 0 2px var(--accent)}
.vs-ebene{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;cursor:pointer;font-size:.78rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.vs-ebene:hover{background:var(--accent-soft)}
.vs-feld{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 0;font-size:.82rem}
.vs-feld input[type=number]{width:100px;padding:4px 6px;border:1px solid var(--border);border-radius:6px;font:inherit}
.vs-knoepfe{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.vs-name{font-weight:600;font-size:.85rem;margin-bottom:4px;word-break:break-all}
.vs-tipp{font-size:.78rem;line-height:1.45;margin-top:12px}
/* 🎨 Vorlagen-Studio — Build 1059: gemeinsame Ebenen (Bilder + Merkmale), Vorder-/Hintergrund */
.vs-ebenen-kn{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.vs-ebene{cursor:grab;border:1px solid transparent}
.vs-ebene.zieht{opacity:.4}
.vs-ebene.ueber{border-top:2px solid var(--accent)}
.vs-ebene.unter{border-bottom:2px solid var(--accent)}
.vs-ebene-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vs-ebene-m{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;background:var(--accent-soft);color:var(--accent-d);font-size:.68rem;font-weight:700;flex:none}
/* 🚩 Zeiger an Merkmal-Feldern — Build 1060: Fahne / Pfeil / Stecknadel, Ampelfarben wie der Kasten */
.vv-zsvg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.vv-zsvg .f{fill:var(--accent-soft);stroke:var(--accent)}
.vv-zsvg .l{fill:none;stroke:var(--accent)}
.vv-zsvg .k{fill:var(--accent);stroke:var(--accent)}
.vv-zsvg.voll .f{fill:var(--green-soft);stroke:var(--green)} .vv-zsvg.voll .l{stroke:var(--green)} .vv-zsvg.voll .k{fill:var(--green);stroke:var(--green)}
.vv-zsvg.pflicht .f{fill:var(--danger-soft);stroke:var(--danger)} .vv-zsvg.pflicht .l{stroke:var(--danger)} .vv-zsvg.pflicht .k{fill:var(--danger);stroke:var(--danger)}
.vv-zsvg.leer .f{fill:var(--surface);stroke:var(--faint)} .vv-zsvg.leer .l{stroke:var(--faint)} .vv-zsvg.leer .k{fill:var(--faint);stroke:var(--faint)}
.vv-spot.form-fahne{border-radius:0}
.vs-formen{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.vs-form{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;font:inherit;font-size:.8rem}
.vs-form:hover{border-color:var(--accent)}
.vs-form.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-d);font-weight:600}
.vs-form-sym{font-size:1.05rem;width:18px;text-align:center}
/* Build 1061: Eingabe im Bild schwebt über allem (nie abgeschnitten, bleibt im Fenster) */
.vv-eingabe{position:fixed;transform:none;z-index:3000}
/* Build 1063: Merkmal-Felder in der GRUPPENFARBE (wie im Formular/Studio) — leer gestrichelt, fehlender Pflichtwert mit rotem Punkt */
.vv-flaeche .vv-spot.gc{background:color-mix(in srgb,var(--gc) 14%,#fff);border:1px solid var(--gc);color:color-mix(in srgb,var(--gc) 72%,#000)}
.vv-flaeche .vv-spot.gc.leer{background:#fff;border-style:dashed;color:color-mix(in srgb,var(--gc) 55%,#888)}
.vv-flaeche .vv-spot.gc.pflicht::after{content:'';position:absolute;top:-.3em;right:-.3em;width:.6em;height:.6em;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2px #fff}
.vv-flaeche .vv-spot.gc.aktiv{background:var(--gc);color:#fff;border-color:var(--gc);box-shadow:0 0 0 4px color-mix(in srgb,var(--gc) 25%,transparent)}
.vv-zsvg.gc .f{fill:color-mix(in srgb,var(--gc) 14%,#fff);stroke:var(--gc)} .vv-zsvg.gc .l{stroke:var(--gc)} .vv-zsvg.gc .k{fill:var(--gc);stroke:var(--gc)}
.vv-zsvg.gc.leer .f{fill:#fff}
/* Eingabe im Bild: Werteliste */
.vv-eingabe{flex-direction:column;align-items:stretch;min-width:220px;max-width:340px}
.vv-eingabe-lbl{display:flex;align-items:center;justify-content:space-between;gap:8px}
.vv-eingabe input[type=search]{width:100%;box-sizing:border-box}
.vv-opt-liste{display:flex;flex-direction:column;gap:3px;max-height:260px;overflow:auto}
.vv-opt{text-align:left;padding:5px 9px;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;font:inherit;font-size:.84rem}
.vv-opt:hover{border-color:var(--accent);background:var(--accent-soft)}
.vv-opt.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-d);font-weight:600}
.vv-opt-fuss{display:flex;gap:6px;align-items:center;justify-content:flex-end}
.vv-opt-fuss input{flex:1}
/* Build 1064: mehrere Vorlagen je Kategorie — Auswahl im Kopf, Regel-Editor im Studio */
.vv-vorlage-sel{max-width:230px;padding:3px 6px;border:1px solid var(--border);border-radius:6px;font:inherit;font-size:.8rem;background:var(--surface)}
.vv-vorlage-name{font-size:.8rem;font-weight:600;color:var(--accent-d);background:var(--accent-soft);padding:2px 8px;border-radius:999px}
.vs-titel-name{font-size:.85rem;color:var(--muted);margin-right:6px;white-space:nowrap}
.vs-feld-breit{flex-direction:column;align-items:stretch}
.vs-feld-breit input{width:100%;box-sizing:border-box;padding:5px 8px;border:1px solid var(--border);border-radius:6px;font:inherit}
.vs-regel{border:1px solid var(--border);border-radius:8px;padding:8px;margin-bottom:8px;background:var(--surface)}
.vs-regel-kopf{display:flex;align-items:center;gap:6px}
.vs-regel-kopf select{flex:1;min-width:0;width:auto}
.vs-und{font-size:.72rem;font-weight:700;color:var(--accent-d);text-transform:uppercase}
.vs-ist{font-size:.75rem;margin:6px 0 4px}
.vs-regel-werte{display:flex;flex-wrap:wrap;gap:4px}
.vs-regel-wert{padding:3px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);cursor:pointer;font:inherit;font-size:.76rem}
.vs-regel-wert.on{background:var(--accent);border-color:var(--accent);color:#fff}
.vs-regel input[type=text]{width:100%;box-sizing:border-box;padding:4px 7px;border:1px solid var(--border);border-radius:6px;font:inherit;font-size:.8rem}
.vs-warn{font-size:.74rem;color:var(--amber-tx);margin-top:4px}
/* Build 1065: Entwurf/Freigabe im Studio, Leer/Kopie-Frage, Entwürfe-Menü */
.vs-status{font-size:.76rem;padding:3px 9px;border-radius:999px;white-space:nowrap;background:var(--surface-2,#f3f4f6);color:var(--muted)}
.vs-status.st-ungespeichert{background:var(--amber-soft);color:var(--amber-tx)}
.vs-status.st-neu,.vs-status.st-entwurf{background:var(--accent-soft);color:var(--accent-d)}
.vs-status.st-frei{background:var(--green-soft);color:var(--green-tx)}
.vv-kopie-frage{display:flex;flex-direction:column;gap:8px;min-width:320px;max-width:380px;z-index:2700}
.vv-kopie-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;font:inherit}
.vv-kopie-opt:hover{border-color:var(--accent);background:var(--accent-soft)}
.vv-kopie-opt .muted{font-size:.78rem}
.vv-entwurf-btn{border-style:dashed}
.vv-entwurf-menu{position:fixed;z-index:3000;display:flex;flex-direction:column;min-width:260px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:6px}
.vv-entwurf-menu button{text-align:left;border:0;background:none;padding:7px 9px;border-radius:6px;cursor:pointer;font:inherit;font-size:.84rem}
.vv-entwurf-menu button:hover{background:var(--accent-soft)}
.vv-leer-box{display:flex;gap:8px;align-items:stretch;margin-top:16px}
.vv-leer-box .vv-leer{margin:0;flex:1}
/* Build 1066: Hinweis „Neue Fassung – anzeigen" (während der Arbeit freigegeben) */
.vv-neu-hinweis{background:var(--amber-soft);color:var(--amber-tx);border-color:var(--amber);animation:vvPuls 1.6s ease-in-out 3}
@keyframes vvPuls{50%{box-shadow:0 0 0 5px var(--amber-soft)}}
/* 🗂 DAM-Auswahl mit Ordnerbaum + Filtern (Build 1067) */
.dp-modal{width:min(1240px,96vw);max-width:none;height:86vh;display:flex;flex-direction:column;overflow:hidden}
.dp-modal .imp-head{flex:none;flex-wrap:wrap;gap:6px}
.dp-haupt{flex:1;min-height:0;display:grid;grid-template-columns:260px minmax(0,1fr);border-top:1px solid var(--border)}
.dp-links{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border);background:var(--bg)}
.dp-baum-suche{margin:8px;padding:5px 8px;border:1px solid var(--border);border-radius:6px;font:inherit;font-size:.82rem}
.dp-baum{flex:1;overflow:auto;padding:0 4px 8px}
.dp-ordner{display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:6px;cursor:pointer;font-size:.82rem;white-space:nowrap}
.dp-ordner:hover{background:var(--accent-soft)}
.dp-ordner.on{background:var(--accent);color:#fff}
.dp-ordner.on .dp-n{color:#fff}
.dp-pfeil{width:14px;flex:none;text-align:center;color:var(--muted);cursor:pointer}
.dp-ordner.on .dp-pfeil{color:#fff}
.dp-ordner-name{overflow:hidden;text-overflow:ellipsis}
.dp-n{margin-left:auto;padding-left:8px;font-size:.72rem;color:var(--faint)}
.dp-rechts{display:flex;flex-direction:column;min-height:0}
.dp-kopf{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border-2);flex-wrap:wrap}
.dp-filter{display:flex;align-items:center;gap:5px;flex-wrap:wrap;flex:1}
.dp-flabel{font-size:.72rem;font-weight:700;text-transform:uppercase;color:var(--muted);margin-right:2px}
.dp-chip{padding:3px 9px;border:1px solid var(--border);border-radius:999px;background:var(--surface);cursor:pointer;font:inherit;font-size:.76rem}
.dp-chip:hover{border-color:var(--accent)}
.dp-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.dp-trenn{width:1px;height:18px;background:var(--border);margin:0 4px}
.dp-sort{padding:3px 6px;border:1px solid var(--border);border-radius:6px;font:inherit;font-size:.78rem}
.dp-info{font-size:.78rem;white-space:nowrap}
.dp-body{flex:1;min-height:0;overflow:auto;max-height:none}
.dp-mehr{grid-column:1/-1;justify-self:center;margin:12px}
/* 🖌 Vorlagen-Studio — Build 1068: Rechteck/Lasso-Auswahl, Abdecken/Farbe/Pipette/Ausradieren/Zuschneiden, Linienzeichnung */
.vs-wz.on{background:var(--accent);border-color:var(--accent);color:#fff}
.vs-leinwand[data-werkzeug="rechteck"],.vs-leinwand[data-werkzeug="lasso"]{cursor:crosshair}
.vs-leinwand.vs-pipette{cursor:copy}
.vs-aktionen{position:absolute;z-index:5;display:flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:560px;padding:7px 9px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.18)}
.vs-akt-farbe{display:inline-flex;align-items:center;gap:4px;padding:2px 4px;border:1px solid var(--border-2);border-radius:8px}
.vs-akt-farbe input[type=color]{width:28px;height:24px;padding:0;border:1px solid var(--border);border-radius:5px;cursor:pointer}
.vs-ebene-f{width:16px;height:16px;border-radius:4px;border:1px solid var(--border);flex:none}
.vs-lz{width:min(1100px,94vw);max-width:none}
.vs-lz-haupt{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px;padding:12px}
.vs-lz-vorschau{display:flex;align-items:center;justify-content:center;min-height:300px;max-height:68vh;overflow:auto;background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 0 0/18px 18px;border-radius:8px;border:1px solid var(--border)}
.vs-lz-bild{max-width:100%;max-height:66vh}
.vs-lz-reg{display:flex;flex-direction:column;gap:6px}
.vs-lz-reg input[type=range]{width:100%}
/* Build 1070: durchsichtige Arbeitsfläche — in der Anzeige ohne Rahmen/Schatten */
.vv-flaeche.vv-durchsichtig{box-shadow:none}
/* 🖼 Wertbilder (Build 1071): Bild je Wert — Werte-Modul, Auswahl im Formular, Eingabe im Bild */
.vb-thumb{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;padding:0;border:1px dashed var(--border);border-radius:6px;background:#e9ecf1;color:var(--muted);cursor:pointer;font-size:.9rem;overflow:hidden;margin-right:6px}
.vb-thumb.hat{border-style:solid}
.vb-thumb img{width:100%;height:100%;object-fit:contain}
.vb-thumb:hover{border-color:var(--accent)}
.vb-zelle{display:flex;align-items:center}
.combo{position:relative}
.combo-wertbild{position:absolute;left:6px;top:50%;transform:translateY(-50%);width:24px;height:24px;object-fit:contain;background:#e9ecf1;border-radius:4px;pointer-events:none}
.combo.mit-wertbild .combo-input{padding-left:36px}
.combo-list.combo-bilder{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;padding:6px}
.combo-list.combo-bilder .combo-clear,.combo-list.combo-bilder .combo-new,.combo-list.combo-bilder .combo-empty{grid-column:1/-1}
.combo-item.combo-kachel{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:6px;border:1px solid var(--border);border-radius:8px}
.combo-item.combo-kachel.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.combo-kbild{display:flex;align-items:center;justify-content:center;width:64px;height:48px;background:#e9ecf1;border-radius:6px}
.combo-kbild img{max-width:100%;max-height:100%;object-fit:contain}
.vv-opt-liste.vv-opt-kacheln{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px;max-height:320px}
.vv-opt-kacheln .vv-opt{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:6px}
.vv-opt-bild{display:flex;align-items:center;justify-content:center;width:64px;height:48px;background:#e9ecf1;border-radius:6px}
.vv-opt-bild img{max-width:100%;max-height:100%;object-fit:contain}
.vv-eingabe.liste:has(.vv-opt-kacheln){max-width:440px}
/* ▦ Vorlagen-Galerie */
.vv-galerie{width:min(1100px,94vw);max-width:none}
.vv-galerie-hinweis{margin:8px 14px 0;padding:6px 10px;border-radius:8px;background:var(--accent-soft);color:var(--accent-d);font-size:.8rem}
.vv-galerie-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;padding:14px;max-height:72vh;overflow:auto}
.vv-gk{display:flex;flex-direction:column;gap:5px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.vv-gk.aktuell{border:2px solid var(--accent)}
.vv-gk.entwurf{border-style:dashed}
.vv-gk-bild{height:130px;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(#eceef2 0 25%,#f7f8fa 0 50%) 0 0/16px 16px;border-radius:8px;overflow:hidden}
.vv-gk-bild img{max-width:100%;max-height:100%;object-fit:contain}
.vv-gk-name{display:flex;align-items:center;gap:6px}
.vv-gk-badge{font-size:.7rem;padding:1px 7px;border-radius:999px;background:var(--accent);color:#fff}
.vv-gk-status{font-size:.74rem;font-weight:600}
.vv-gk-status.st-frei{color:var(--green-tx)} .vv-gk-status.st-entwurf{color:var(--accent-d)} .vv-gk-status.st-neu{color:var(--amber-tx)}
.vv-gk-regel{font-size:.76rem;line-height:1.35}
.vv-gk-kn{display:flex;gap:6px;margin-top:auto;padding-top:4px}
.imp-overlay.vv-galerie-ov{z-index:2600}
/* 🎨 Bereich „Visuelle Vorlagen" (Build 1072): Gestalten getrennt vom Produkt */
.vm{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;height:calc(100vh - 120px);min-height:400px}
.vm-links{display:flex;flex-direction:column;min-height:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px}
.vm-titel{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:2px 4px 8px}
.vm-links .col-search{width:100%;box-sizing:border-box;margin-bottom:8px}
.vm-baum{flex:1;overflow:auto}
.vm-kat{display:flex;align-items:center;gap:4px;padding:5px 6px;border-radius:6px;cursor:pointer;font-size:.85rem;white-space:nowrap}
.vm-kat:hover{background:var(--accent-soft)}
.vm-kat.on{background:var(--accent);color:#fff}
.vm-pfeil{width:14px;flex:none;text-align:center;color:var(--muted)}
.vm-kat.on .vm-pfeil{color:#fff}
.vm-kat-name{overflow:hidden;text-overflow:ellipsis}
.vm-n{margin-left:auto;font-size:.7rem;padding:0 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent-d)}
.vm-kat.on .vm-n{background:#fff}
.vm-rechts{overflow:auto;min-height:0;padding-right:4px}
.vm-leer{padding:40px;text-align:center;color:var(--muted)}
.vm-leer p{max-width:520px;margin:10px auto}
.vm-kopf{margin-bottom:8px}
.vm-pfad{font-size:.78rem}
.vm-h{margin:2px 0 0;font-size:1.35rem}
.vm-sek{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:16px}
.vm-sek-kopf{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.vm-sek-kopf h3{margin:0;font-size:1.02rem}
.vm-sek-kopf .muted{font-size:.8rem}
.vm-sek-kopf .spacer{flex:1}
.vm-grid{padding:0;max-height:none}
.vm-hinweis{padding:16px;border:1px dashed var(--border);border-radius:10px;color:var(--muted);font-size:.85rem}
.vm-merkmal{border-left:4px solid var(--gc,var(--border));padding:4px 0 6px 12px;margin:12px 0}
.vm-merkmal-kopf{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.vm-merkmal-kopf .muted{font-size:.78rem}
.vm-werte{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.vm-wert{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;font:inherit}
.vm-wert:hover:not([disabled]){border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.vm-wert.hat{border-color:var(--green)}
.vm-wert-bild{display:flex;align-items:center;justify-content:center;width:100%;height:78px;background:#e9ecf1;border-radius:8px;overflow:hidden}
.vm-wert-bild img{max-width:100%;max-height:100%;object-fit:contain}
.vm-plus{font-size:.8rem;color:var(--accent-d);font-weight:600}
.vm-wert-name{font-size:.84rem;font-weight:600;text-align:center}
.vv-verwalten-leer{margin-top:14px;display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:1px dashed var(--border);border-radius:10px;background:none;color:var(--muted);cursor:pointer;font:inherit;font-size:.84rem;text-align:left}
.vv-verwalten-leer:hover{border-color:var(--accent);color:var(--accent-d)}
/* Build 1073: Bereich „Visuelle Vorlagen" — aufklappbar wie FAQ, Löschen sichtbar, „Alle Wertelisten" */
.vm-klapp-kopf{display:flex;align-items:center;gap:10px;width:100%;flex-wrap:wrap;border:0;background:none;padding:2px 0;cursor:pointer;font:inherit;text-align:left;color:inherit}
.vm-klapp-kopf h3{margin:0;font-size:1.02rem}
.vm-klapp-kopf .spacer{flex:1}
.vm-klapp-pfeil{display:inline-block;width:16px;color:var(--muted);transition:transform .15s}
.vm-klapp.zu > .vm-klapp-kopf .vm-klapp-pfeil{transform:rotate(-90deg)}
.vm-klapp.zu > .vm-klapp-inhalt{display:none}
.vm-klapp-inhalt{margin-top:10px}
.vm-klapp-txt{font-size:.8rem}
.vm-zahl{font-size:.72rem;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-d)}
.vm-merkmal.vm-klapp{margin:8px 0}
.vm-merkmal > .vm-klapp-kopf{padding:6px 0}
.vm-wert{position:relative}
.vm-wert.aus{cursor:default;opacity:.8}
.vm-wert-weg{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--danger-tx);font-size:.95rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1}
.vm-wert-weg:hover{background:var(--danger-soft);border-color:var(--danger)}
.vm-loeschen{margin-left:auto}
.vm-loeschen:hover{color:var(--danger-tx);border-color:var(--danger)}
.vm-alle{font-weight:600}
.vm-trenn{height:1px;background:var(--border);margin:6px 4px}
.vm-listen-suche{width:100%;box-sizing:border-box;margin-bottom:10px}
/* 💡 Hilfe mit Bildern (Build 1074): „?" am Feld + Hilfe-Fenster */
.pf-hilfe{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;margin-left:6px;padding:0;border:1px solid var(--accent);border-radius:50%;background:var(--surface);color:var(--accent-d);font-size:.68rem;font-weight:700;line-height:1;cursor:pointer;vertical-align:middle}
.pf-hilfe:hover{background:var(--accent);color:#fff}
.wh-pop{position:fixed;z-index:3000;width:min(460px,92vw);max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.2);padding:10px 12px}
.wh-kopf{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}
.wh-txt{font-size:.78rem;margin-bottom:8px}
.wh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}
.wh-kachel{display:flex;flex-direction:column;align-items:center;gap:5px;padding:6px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;font:inherit}
.wh-kachel:hover:not([disabled]){border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.wh-kachel[disabled]{cursor:default;color:inherit}
.wh-kachel.on{border-color:var(--accent);background:var(--accent-soft)}
.wh-bild{display:flex;align-items:center;justify-content:center;width:100%;height:64px;background:#e9ecf1;border-radius:7px;overflow:hidden}
.wh-bild img{max-width:100%;max-height:100%;object-fit:contain}
.wh-name{font-size:.8rem;font-weight:600;text-align:center}
/* Build 1075: Bildart beim Hochladen in der DAM-Auswahl */
.dp-hoch{display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:3px;border:1px solid var(--border-2);border-radius:10px}
.dp-hoch-art{max-width:200px}
/* Build 1076: Linienzeichnung als eigenständiges Bild (Name/Ordner/Bildart) */
.vs-lz-feld{display:flex;flex-direction:column;gap:3px;font-size:.8rem;color:var(--muted)}
.vs-lz-in{padding:5px 8px;border:1px solid var(--border);border-radius:6px;font:inherit;font-size:.84rem;color:var(--text);width:100%;box-sizing:border-box}
/* ✎ Bild-Editor (Build 1077) — liegt über dem DAM-Detail, unter Rückfragen/Meldungen */
.vs-studio.be-ov{z-index:2650}
.be-buehne{position:relative;flex:1;min-height:0;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:20px;background:repeating-conic-gradient(var(--border-2) 0 25%,transparent 0 50%) 0 0/22px 22px,var(--bg)}
.be-buehne.vs-pipette .be-rahmen{cursor:copy}
.be-rahmen{position:relative;flex:none;margin:auto;box-shadow:0 4px 20px rgba(0,0,0,.18);cursor:crosshair}
.be-rahmen canvas{display:block;image-rendering:auto}
.be-auswahl{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.be-form{fill:rgba(225,29,72,.12);stroke:#e11d48;stroke-width:2;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}
.be-form.offen{fill:none}
.be-aktionen{z-index:6}
.be-linien{position:absolute;top:16px;right:16px;z-index:7;width:270px;display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 28px rgba(0,0,0,.18)}
/* Build 1078: ✎ direkt bearbeiten — DAM-Kachel, Wertbild-Kachel */
.dam-edbtn{right:38px}
.vm-wert-ed{position:absolute;top:4px;left:4px;width:22px;height:22px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--accent-d);font-size:.8rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1}
.vm-wert-ed:hover{background:var(--accent-soft);border-color:var(--accent)}
/* Build 1079: Zeichnung ↔ Wertbild sauber trennen */
.vm-warn{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 8px;border-radius:8px;background:var(--amber-soft);color:var(--amber-tx);font-size:.76rem}
.vm-wb-pop{width:min(360px,92vw);display:flex;flex-direction:column;gap:8px}
/* Build 1080: „Bilder zeigen" direkt in der Auswahl */
.vv-bilder-an{margin-left:auto;margin-right:4px;padding:2px 8px;font-size:.74rem}
.combo-item.combo-bilder-an{color:var(--accent-d);font-weight:600;background:var(--accent-soft)}
.combo-list.combo-bilder .combo-bilder-an{grid-column:1/-1}

/* Visuelle Vorlage: Merkmal-Name im Feld (leer = Platzhalter, sonst „Form: Oval") — 02.10.2026 */
.vv-spot .vv-name{pointer-events:none;opacity:.75;font-weight:500}
.vv-spot.leer .vv-name{opacity:1;font-style:italic}
.vs-check{display:flex;align-items:center;gap:6px;font-size:.82rem;margin:4px 0 6px;cursor:pointer}

/* 🏭 Herstellerkatalog pro Marke (02.10.2026) */
.hk-ov{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:2700;display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px;overflow:auto}
.hk-box{background:var(--surface);color:var(--text);border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.3);width:min(720px,100%);padding:18px 20px}
.hk-kopf{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}
.hk-t{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.hk-marke{font-size:1.35rem;font-weight:700}
.hk-reiter{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:8px}
.hk-tab{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:4px 12px;cursor:pointer;display:inline-flex;gap:6px;align-items:center;font:inherit;color:inherit}
.hk-tab.on{background:var(--accent);border-color:var(--accent);color:#fff}
.hk-n{font-size:.75rem;opacity:.75}
.hk-warn{background:var(--danger);color:#fff;border-radius:999px;font-size:.7rem;font-weight:700;padding:0 6px}
.hk-info{font-size:.82rem;margin:4px 0 10px}
.hk-liste{display:flex;flex-direction:column;gap:6px;max-height:55vh;overflow:auto}
.hk-zeile{display:grid;grid-template-columns:52px 1fr 70px 180px 30px;gap:10px;align-items:center;padding:6px 8px;border:1px solid var(--border);border-radius:10px}
.hk-zeile.rot{border-color:var(--danger);background:var(--danger-soft)}
.hk-zeile.prov .hk-name b{font-style:italic}
.hk-bild{width:52px;height:52px;border:1px dashed var(--faint);border-radius:8px;background:var(--surface);cursor:pointer;padding:0;overflow:hidden;display:flex;align-items:center;justify-content:center}
.hk-bild img{width:100%;height:100%;object-fit:cover}
.hk-plus{font-size:1.3rem;color:var(--muted)}
.hk-prov{margin-left:8px;font-size:.7rem;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:0 6px}
.hk-auch{font-size:.74rem}
.hk-fam{width:100%}
.hk-leer{padding:14px 4px}
.hk-neu{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.hk-neu input{flex:1;min-width:200px}
.hk-tipp{font-size:.76rem;margin:6px 0 0}
@media (max-width:560px){.hk-zeile{grid-template-columns:44px 1fr 60px 30px}.hk-zeile .hk-fam{grid-column:2/4}}

/* 📄 PDF-Betrachter im PIM (02.10.2026) */
.pa-ov{position:fixed;inset:0;z-index:2800;background:rgba(15,23,42,.82);display:flex;flex-direction:column}
.pa-leiste{display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--surface);color:var(--text);box-shadow:0 2px 10px rgba(0,0,0,.2);flex-wrap:wrap}
.pa-titel{font-weight:600;flex:1;min-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pa-steuer{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pa-nr{width:64px;text-align:center}
.pa-total,.pa-zoom{font-size:.85rem;color:var(--muted);min-width:42px;text-align:center}
.pa-trenn{width:1px;height:22px;background:var(--border);margin:0 4px}
.pa-seiten{flex:1;overflow:auto;padding:16px 20px;display:flex;flex-direction:column;align-items:safe center;gap:14px;min-width:0}
.pa-seite{background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.35);flex:none;max-width:none}
.pa-seite canvas{display:block}
.pa-lade,.pa-fehler{color:#fff;padding:40px}

/* 📁 Katalog-PDFs: Art + Archiv-Ordner (02.10.2026) */
.katpdf-gruppe{margin-bottom:8px}
.katpdf-gkopf{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:6px 0 3px;font-weight:600}
.katpdf-art{max-width:150px}
.katpdf-aktuell{font-size:.7rem;background:var(--green-soft);color:var(--green-tx);border-radius:999px;padding:1px 8px;white-space:nowrap}
.katpdf-archiv{margin:4px 0 2px;border:1px dashed var(--border);border-radius:8px;padding:4px 8px}
.katpdf-archiv summary{cursor:pointer;font-size:.8rem;color:var(--muted);display:flex;align-items:center;gap:4px}
.katpdf-archiv[open] summary{margin-bottom:4px}
.katpdf-archiv .katpdf-row{opacity:.85}
.kat-menu-h{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:6px 10px 2px}
.kat-menu-archiv summary{cursor:pointer;font-size:.8rem;color:var(--muted);padding:5px 10px;display:flex;align-items:center;gap:4px}
.kat-menu-archiv .kat-menu-z{padding-left:22px;opacity:.85}

/* 📄 PDF-Betrachter: Suche, gemerkte Suchen, Text-Schicht, Markierungen (03.10.2026) */
.pa-suchleiste{display:flex;align-items:center;gap:6px;padding:6px 14px;background:var(--surface);border-top:1px solid var(--border);flex-wrap:wrap;color:var(--text)}
.pa-such{width:260px;max-width:100%}
.pa-begriffe{display:flex;gap:4px;flex-wrap:wrap}
.pa-begriff{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 8px;border-radius:999px;font-size:.8rem;background:color-mix(in srgb,var(--f) 45%,transparent);border:1px solid var(--f);color:var(--text)}
.pa-begriff button{border:0;background:none;cursor:pointer;color:inherit;font-size:.9rem;padding:0 3px}
.pa-treffer{font-size:.8rem;min-width:80px}
.pa-gemerkt{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:0 14px 6px;background:var(--surface);color:var(--text)}
.pa-gemerkt:empty{display:none}
.pa-gm-t{font-size:.78rem}
.pa-gm{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden}
.pa-gm button{border:0;background:var(--surface);cursor:pointer;font:inherit;font-size:.78rem;padding:2px 8px;color:var(--text)}
.pa-gm-k:hover{background:var(--accent-soft)}
.pa-gm-x{color:var(--muted)!important;padding:2px 6px!important}
.pa-seite{position:relative}
.pa-hl,.pa-text{position:absolute;inset:0}
.pa-hl{pointer-events:none}
.pa-mark{position:absolute;mix-blend-mode:multiply;opacity:.55;pointer-events:auto;cursor:pointer;border-radius:2px}
.pa-treffer-box{position:absolute;mix-blend-mode:multiply;opacity:.5;border-radius:2px}
.pa-treffer-box.an{opacity:.8;outline:2px solid #ea580c}
.pa-text{overflow:hidden;line-height:1;z-index:2}
.pa-text span{position:absolute;white-space:pre;color:transparent;transform-origin:0 0;cursor:text;font-family:sans-serif}
.pa-text span::selection{background:rgba(59,130,246,.35);color:transparent}
.pa-markpop{position:fixed;z-index:2900;background:#facc15;color:#111;border:0;border-radius:8px;padding:5px 10px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.3);display:inline-flex;align-items:center;gap:4px}
.pa-markliste{position:fixed;z-index:2900;width:320px;max-height:60vh;overflow:auto;background:var(--surface);color:var(--text);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.35);padding:4px 0}
.pa-ml-t{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:6px 10px}
.pa-ml-z{display:block;width:100%;text-align:left;border:0;background:none;padding:6px 10px;cursor:pointer;font:inherit;font-size:.84rem;color:inherit}
.pa-ml-z:hover{background:var(--accent-soft)}
.pa-ml-zeile{display:flex;align-items:center}
.pa-ml-zeile .pa-ml-z{flex:1}
.pa-ml-x{border:0;background:none;cursor:pointer;color:var(--muted);font-size:1rem;padding:4px 10px}
.pa-ml-x:hover{color:var(--danger)}

/* PDF-Betrachter: Farben + Notizen (03.10.2026) */
.pa-markpop{display:inline-flex;align-items:center;gap:5px;background:var(--surface)!important;color:var(--text)!important;padding:5px 7px!important}
.pa-farbe{width:22px;height:22px;border-radius:50%;border:2px solid rgba(0,0,0,.15);cursor:pointer;padding:0}
.pa-farbe:hover{transform:scale(1.15)}
.pa-mp-notiz{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:2px 8px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;font:inherit;font-size:.8rem}
.pa-notizen{position:absolute;inset:0;pointer-events:none;z-index:3}
.pa-notiz{position:absolute;pointer-events:auto;border:1px solid rgba(0,0,0,.25);background:var(--nf);color:#111;border-radius:6px;padding:2px 4px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;box-shadow:0 2px 6px rgba(0,0,0,.25);font-size:.75rem;max-width:220px}
.pa-notiz svg{width:13px;height:13px}
.pa-notiz.frei{border-radius:6px}
.pa-notiz-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pa-notizmodus .pa-seite{cursor:crosshair}
.pa-notizmodus .pa-text span{cursor:crosshair}
.btn.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.pa-ml-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle;border:1px solid rgba(0,0,0,.2)}
.pa-ml-notiz{font-size:.78rem;color:var(--muted);margin:2px 0 0 16px;white-space:pre-wrap}

/* Eingabe-/Frage-Fenster auch über dem PDF-Betrachter */
.pa-ov ~ .pop-input,body:has(.pa-ov) .pop-input{z-index:2950}
body:has(.pa-ov) .frage-ov,body:has(.pa-ov) .confirm-ov{z-index:2960}

/* PDF-Betrachter: Kleinansicht, breite Scrollbalken mit Abstand zum Rand, Maus-Zoom (03.10.2026) */
.pa-haupt{flex:1;display:flex;min-height:0;padding-right:14px}
.pa-seiten::-webkit-scrollbar{width:18px;height:18px}
.pa-seiten::-webkit-scrollbar-track{background:rgba(255,255,255,.08);border-radius:10px;margin:6px}
.pa-seiten::-webkit-scrollbar-thumb{background:rgba(255,255,255,.55);border-radius:10px;border:3px solid transparent;background-clip:padding-box;min-height:60px}
.pa-seiten::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.8);background-clip:padding-box;border:3px solid transparent}
.pa-seiten::-webkit-scrollbar-corner{background:transparent}
.pa-thumbs{width:150px;flex:none;overflow:auto;padding:12px 10px;display:flex;flex-direction:column;gap:12px;background:rgba(15,23,42,.55);border-right:1px solid rgba(255,255,255,.12)}
.pa-thumbs.zu{display:none}
.pa-thumbs::-webkit-scrollbar{width:10px}
.pa-thumbs::-webkit-scrollbar-thumb{background:rgba(255,255,255,.35);border-radius:8px}
.pa-thumb{border:0;background:none;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;color:#e2e8f0}
.pa-thumb-bild{display:block;width:118px;background:#fff;border-radius:3px;box-shadow:0 2px 8px rgba(0,0,0,.4);overflow:hidden;outline:3px solid transparent;outline-offset:2px}
.pa-thumb-bild canvas{display:block;width:100%;height:auto}
.pa-thumb.an .pa-thumb-bild{outline-color:var(--accent)}
.pa-thumb:hover .pa-thumb-bild{outline-color:rgba(255,255,255,.6)}
.pa-thumb-nr{font-size:.75rem}

/* PDF-Betrachter: Senden an Benutzer (03.10.2026) */
.pa-sd-ov{position:fixed;inset:0;z-index:2940;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.pa-sd{background:var(--surface);color:var(--text);border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.35);width:min(520px,100%);padding:16px 18px;display:flex;flex-direction:column;gap:6px;max-height:90vh;overflow:auto}
.pa-sd-kopf{display:flex;justify-content:space-between;align-items:center;font-size:1.05rem}
.pa-sd-zitat{background:var(--amber-soft);border-left:4px solid #facc15;padding:8px 10px;border-radius:6px;font-size:.88rem;white-space:pre-wrap}
.pa-sd-quelle{font-size:.76rem}
.pa-sd-t{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:6px}
.pa-sd-art,.pa-sd-an{display:flex;gap:6px;flex-wrap:wrap}
.pa-sd-chip{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:4px 12px;cursor:pointer;font:inherit;font-size:.84rem}
.pa-sd-chip.an{background:var(--accent);border-color:var(--accent);color:#fff}
.pa-sd textarea,.pa-sd input,.pa-sd select{width:100%}
.pa-sd-extra label{display:flex;flex-direction:column;gap:3px;font-size:.78rem;color:var(--muted);margin-top:6px}
.pa-sd-reihe{display:flex;gap:10px}.pa-sd-reihe label{flex:1}
.pa-sd-fuss{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
.pa-seiten{position:relative}

/* PDF-Betrachter: Notiz/Korrektur mit Pfeil, Pfeil/Strich/Rahmen (03.10.2026) */
.pa-werkzeuge{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap}
.pa-wz-notiz.on{background:#fde047;border-color:#ca8a04;color:#111}
.pa-wz-korrektur.on{background:#ef4444;border-color:#dc2626;color:#fff}
.pa-stift{width:30px;height:28px;padding:1px;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer}
.pa-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.pa-svg .pa-form{pointer-events:stroke;cursor:pointer}
.pa-svg rect.pa-form{pointer-events:stroke}
.pa-svg polygon.pa-form{pointer-events:fill}
.pa-notiz.mitpfeil{transform:translate(0,-100%);cursor:grab;max-width:260px;padding:5px 8px;font-size:.8rem;align-items:flex-start}
.pa-notiz.mitpfeil .pa-notiz-txt{white-space:normal;text-align:left}
.pa-notiz.korrektur{color:#fff;border-color:#b91c1c}
.pa-notiz.korrektur svg{color:#fff}
.pa-zeichnen .pa-seite,.pa-zeichnen .pa-text span{cursor:crosshair}
.pa-zeichnen .pa-text{pointer-events:none;user-select:none}

/* PDF senden: Katalog-Titel, Textblöcke, Bildausschnitte (03.10.2026) */
.pa-sd{width:min(600px,100%)}
.pa-sd-katalog{font-weight:600;font-size:.95rem}
.pa-sd-bloecke{display:flex;gap:5px;flex-wrap:wrap}
.pa-sd-block{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:3px 9px;cursor:pointer;font:inherit;font-size:.8rem}
.pa-sd-block:hover{background:var(--accent-soft)}
.pa-sd-block.eigen{display:inline-flex;padding:0;overflow:hidden}
.pa-sd-block.eigen button{border:0;background:none;padding:3px 8px;cursor:pointer;font:inherit;font-size:.8rem;color:inherit}
.pa-sd-block.eigen .x{color:var(--muted);padding:3px 6px;border-left:1px solid var(--border)}
.pa-sd-block.neu{border-style:dashed;color:var(--muted)}
.pa-sd-bildzeile{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pa-sd-bilder{display:flex;gap:6px;flex-wrap:wrap}
.pa-sd-bild{position:relative;width:84px;height:64px;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:#fff}
.pa-sd-bild img{width:100%;height:100%;object-fit:contain}
.pa-sd-bild button{position:absolute;top:2px;right:2px;border:0;background:rgba(0,0,0,.6);color:#fff;border-radius:50%;width:18px;height:18px;line-height:16px;cursor:pointer;padding:0}
.pa-ausschnitt{position:absolute;border:2px dashed #2563eb;background:rgba(37,99,235,.12);z-index:5;pointer-events:none}

.pa-griff{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;border:2px solid var(--gf);pointer-events:auto;cursor:move;opacity:.35;z-index:4;transition:opacity .15s,transform .15s}
.pa-seite:hover .pa-griff{opacity:.9}
.pa-griff:hover{opacity:1;transform:scale(1.3)}

/* PDF: Artikel erkennen (03.10.2026) */
.pa-art-rahmen{position:absolute;border:2px solid;border-radius:3px;pointer-events:none}
.pa-art-rahmen.ok{border-color:#16a34a}
.pa-art-rahmen.klickbar{pointer-events:auto;cursor:pointer}
.pa-art-rahmen.klickbar:hover{background:rgba(22,163,74,.12)}
.pa-art-rahmen.fehlt{border-color:#f97316;border-style:dashed}
.pa-art-punkt{position:absolute;width:14px;height:14px;border-radius:50%;border:2px solid #fff;pointer-events:auto;cursor:pointer;padding:0;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.pa-art-punkt.ok{background:#16a34a}.pa-art-punkt.fehlt{background:#f97316}
.pa-art-punkt:hover{transform:scale(1.25)}
.pa-art-pop{position:fixed;z-index:2930;width:340px;background:var(--surface);color:var(--text);border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.35);padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.pa-ap-t{font-weight:700;font-size:.85rem}.pa-ap-t.ok{color:#16a34a}.pa-ap-t.fehlt{color:#ea580c}
.pa-ap-nr{font-family:ui-monospace,monospace;font-size:.95rem}
.pa-ap-unter{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:4px}
.pa-ap-liste{max-height:220px;overflow:auto;display:flex;flex-direction:column}
.pa-ap-z{border:0;background:none;text-align:left;padding:6px 6px;border-radius:6px;cursor:pointer;font:inherit;font-size:.83rem;color:inherit}
.pa-ap-z:hover{background:var(--accent-soft)}
.pa-ap-hinweis{font-size:.75rem}
.pa-ap-knoepfe{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.pa-artpanel{width:320px;flex:none;background:var(--surface);color:var(--text);display:flex;flex-direction:column;border-left:1px solid var(--border);margin-left:6px}
.pa-artpanel.zu{display:none}
.pa-ap-kopf{display:flex;justify-content:space-between;align-items:center;padding:10px 12px 4px}
.pa-ap-sum{padding:0 12px;font-size:.8rem}
.pa-ap-schalter{display:flex;gap:6px;align-items:center;padding:6px 12px;font-size:.82rem;cursor:pointer}
.pa-ap-reiter{display:flex;gap:5px;padding:4px 12px 8px;flex-wrap:wrap}
.pa-ap-eintraege{flex:1;overflow:auto;padding:0 6px 10px}
.pa-artz{display:flex;gap:8px;align-items:center;width:100%;border:0;background:none;text-align:left;padding:6px;border-radius:8px;cursor:pointer;font:inherit;color:inherit}
.pa-artz:hover{background:var(--accent-soft)}
.pa-art-dot{width:10px;height:10px;border-radius:50%;flex:none}.pa-art-dot.ok{background:#16a34a}.pa-art-dot.fehlt{background:#f97316}
.pa-artz-txt{flex:1;display:flex;flex-direction:column;min-width:0;font-size:.82rem}
.pa-artz-txt .muted{font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pa-artz-s{font-size:.72rem;color:var(--muted);flex:none}

/* 💰 Preis-Zeile im Produkt + Dashboard (03.10.2026) */
.preis-zeile{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 8px;padding:6px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:.85rem}
.preis-t{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.preis-j{color:inherit;text-decoration:none;padding:2px 8px;border-radius:6px;background:var(--bg)}
.preis-j:hover{background:var(--accent-soft)}
.preis-j.unsicher{border:1px dashed var(--amber-tx)}
.preis-pfeil{color:var(--muted)}
.preis-diff{font-weight:700;font-size:.78rem;border-radius:999px;padding:1px 7px;white-space:nowrap}
.preis-diff.hoch{background:var(--danger-soft);color:var(--danger-tx)}
.preis-diff.tief{background:var(--green-soft);color:var(--green-tx)}
.preis-diff.gleich{background:var(--bg);color:var(--muted)}
.preis-diff.unsicher{outline:1px dashed var(--amber-tx)}
.preis-dash{max-height:340px;overflow:auto}
.preis-dz{display:flex!important;gap:8px;align-items:center;width:100%;text-align:left}
.preis-dz-n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.83rem}
.preis-dz-p{font-size:.78rem;color:var(--muted);white-space:nowrap}
.katpdf-preis{font-weight:700;min-width:28px}

.pa-nf{position:fixed;z-index:2935;left:50%;top:150px;transform:translateX(-50%);width:min(460px,92vw);background:var(--surface);color:var(--text);border-left:5px solid #f97316;border-radius:10px;box-shadow:0 14px 40px rgba(0,0,0,.35);padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.pa-nf-z{display:flex;gap:6px}.pa-nf-z input{flex:1}

.kp-hilfe{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:4px;font-size:.8rem}
.kp-preis{background:var(--green-soft);color:var(--green-tx);border-radius:6px;padding:2px 8px}
.kp-preis.unsicher{background:var(--amber-soft);color:var(--amber-tx)}

.kat-preis-knopf{font-weight:700;font-size:.95rem;min-width:22px}

.pf-zusatz{display:inline-flex;gap:4px;align-items:center;flex:none;margin-left:4px;position:relative;z-index:1}

/* 🎨 Hersteller-Code neben dem Wert (03.10.2026) */
.hk-code{width:100%;font-family:ui-monospace,monospace;text-align:center}
.hk-neu .hk-code{width:80px;flex:none}
.wert-code{font-family:ui-monospace,monospace;font-size:.72rem;background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:0 5px;margin-left:6px;color:var(--muted)}
.pf-tag .wert-code{margin-left:4px}

/* 📝 Geteilte PDF-Notizen + Preiskorrektur (03.10.2026) */
.pa-notiz.geteilt{box-shadow:0 0 0 2px #fff,0 0 0 4px #2563eb,0 2px 6px rgba(0,0,0,.25)}
.pa-nd textarea{width:100%}
.pa-nd-preisbox{border:1px dashed var(--border);border-radius:8px;padding:6px 8px;display:flex;flex-direction:column;gap:4px}
.pa-nd-reihe{display:flex;gap:6px}.pa-nd-reihe select{flex:1;min-width:0}
.pa-nd-preis{width:110px;flex:none}
.pa-nd-allen{display:flex;align-items:center;gap:6px;font-size:.84rem;cursor:pointer;margin-top:4px}
.pa-ml-allen{font-size:.74rem;color:#2563eb}
.preis-vk{font-size:.8rem;padding:2px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent-d)}

/* 💲 Preise & Konditionen pro Lieferant (03.10.2026) */
.lp-ov{position:fixed;inset:0;z-index:2700;background:rgba(15,23,42,.45);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;overflow:auto}
.lp-box{background:var(--surface);color:var(--text);border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.3);width:min(720px,100%);padding:16px 18px;display:flex;flex-direction:column;gap:8px}
.lp-kopf{display:flex;align-items:flex-start;gap:10px}.lp-kopf>div{flex:1}
.lp-t{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.lp-name{font-size:1.3rem;font-weight:700}
.lp-geheim{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;color:var(--amber-tx);background:var(--amber-soft);border-radius:999px;padding:2px 9px}
.lp-sek{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:6px;font-weight:600}
.lp-reihe{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.lp-reihe label{display:inline-flex;gap:6px;align-items:center;font-size:.85rem}
.lp-zahl{width:90px}
.lp-kurs{display:inline-flex;gap:6px;align-items:center}
.lp-beispiel{font-size:.82rem;background:var(--bg);border-radius:8px;padding:6px 10px}
.lp-box textarea{width:100%}
.lp-teuer{display:flex;flex-direction:column;gap:4px}
.lp-t-zeile{display:flex;gap:10px;align-items:center;font-size:.84rem;border:1px solid var(--border);border-radius:8px;padding:5px 8px}
.lp-t-p.hoch{color:var(--danger-tx)}.lp-t-p.tief{color:var(--green-tx)}
.lp-t-txt{flex:1;min-width:0}
.lp-t-neu input[type=text]:not(.lp-zahl){flex:1;min-width:140px}
.lp-fuss{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.lp-dollar{font-weight:800;font-size:.9rem}
.preis-teuer{font-size:.8rem;padding:2px 8px;border-radius:6px;background:var(--danger-soft);color:var(--danger-tx)}

/* Notiz-Dialog: Häkchen normal gross, Empfänger-Auswahl, Dashboard-Hinweise (03.10.2026) */
.pa-sd input[type=checkbox]{width:auto;flex:none;margin-top:3px}
.pa-nd-allen{display:flex!important;align-items:flex-start;gap:8px;font-size:.86rem;cursor:pointer;margin-top:6px;line-height:1.3}
.pa-nd-allen .muted{font-size:.76rem}
.pa-nd-an{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--border);padding-top:6px}
.pa-nd-chips{display:flex;gap:5px;flex-wrap:wrap}
.pa-sd-chip.gruppe{border-style:dashed;font-weight:600}
.hinweis-liste{max-height:300px;overflow:auto}
.hinweis-z{display:flex!important;gap:8px;align-items:flex-start;width:100%;text-align:left}
.hinweis-punkt{width:9px;height:9px;border-radius:50%;background:var(--accent);margin-top:6px;flex:none}
.hinweis-z.gelesen{opacity:.6}.hinweis-z.gelesen .hinweis-punkt{background:var(--border)}
.hinweis-txt{flex:1;min-width:0;font-size:.84rem}
.hinweis-zeit{font-size:.72rem;white-space:nowrap}

/* 🏷 Preis-Freigabe & Export (03.10.2026) */
.pf-box{width:min(980px,100%)}
.pf-hoheit{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--bg);border-radius:10px;padding:8px 10px}
.pf-radio{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;padding:3px 10px;border:1px solid var(--border);border-radius:999px;cursor:pointer;background:var(--surface)}
.pf-radio.an{border-color:var(--accent);color:var(--accent-d);font-weight:600}
.pf-radio input{width:auto}
.pf-tabelle{max-height:55vh;overflow:auto;border:1px solid var(--border);border-radius:10px}
.pf-tabelle table{width:100%;border-collapse:collapse;font-size:.83rem}
.pf-tabelle th{position:sticky;top:0;background:var(--surface);text-align:left;font-size:.72rem;text-transform:uppercase;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--border)}
.pf-tabelle td{padding:5px 8px;border-bottom:1px solid var(--border);vertical-align:middle}
.pf-r{text-align:right;white-space:nowrap}
.pf-vk{width:100px;text-align:right}
.pf-name{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-fuss{align-items:center}
.preis-vk-frei{font-size:.84rem;padding:2px 10px;border-radius:6px;background:var(--green-soft);color:var(--green-tx)}

/* 📦 IGH DataExpert®BIM-Vorschau (03.10.2026) */
.igh-box{width:min(1200px,100%)}
.igh-kat{display:flex;flex-direction:column;gap:2px;font-size:.82rem}
.igh-filter{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.igh-filter input[type=search]{flex:1;min-width:180px}
.igh-haupt{display:grid;grid-template-columns:1fr 340px;gap:10px;min-height:0}
@media (max-width:900px){.igh-haupt{grid-template-columns:1fr}}
.igh-tab{max-height:58vh}
.igh-tab tr{cursor:pointer}
.igh-tab tr:hover{background:var(--accent-soft)}
.igh-tab tr.an{background:var(--accent-soft);outline:2px solid var(--accent)}
.igh-tab tr.igh-im td:first-child{border-left:4px solid #16a34a}
.igh-nr{font-family:ui-monospace,monospace;font-size:.78rem;white-space:nowrap}
.igh-detail{border:1px solid var(--border);border-radius:10px;padding:10px;max-height:58vh;overflow:auto;display:flex;flex-direction:column;gap:6px;font-size:.84rem}
.igh-d-nr{font-family:ui-monospace,monospace;color:var(--muted);font-size:.78rem}
.igh-d-bilder{display:flex;gap:6px;flex-wrap:wrap}
.igh-d-bilder img{width:96px;height:96px;object-fit:contain;background:#fff;border:1px solid var(--border);border-radius:6px}
.igh-d-bilder a.igh-d-bildlink{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;padding:3px 8px;border:1px solid var(--border);border-radius:6px;text-decoration:none}
.igh-d-td{width:100%;border-collapse:collapse;font-size:.8rem}
.igh-d-td td{border-bottom:1px solid var(--border);padding:3px 4px}
.igh-d-td td:first-child{color:var(--muted)}
.igh-d-doks{display:flex;flex-direction:column;gap:3px}
.igh-d-doks a{display:inline-flex;gap:4px;align-items:center;font-size:.8rem}
.igh-d-lang{white-space:pre-wrap;font-size:.78rem;color:var(--muted);border-top:1px solid var(--border);padding-top:6px}
.preis-quelle{font-size:.66rem;border:1px solid var(--border);border-radius:4px;padding:0 4px;color:var(--muted)}

/* IGH Phase 2 (03.10.2026) */
.igh-werkzeuge{display:flex;gap:6px;flex-wrap:wrap}
.igh-warn{font-size:.72rem;color:var(--amber-tx);background:var(--amber-soft);border-radius:4px;padding:1px 6px;margin-top:2px;display:inline-block}
.pf-tabelle input.gesetzt{border-color:#16a34a;background:var(--green-soft)}
.pf-tabelle td input[list]{width:100%;min-width:200px}
.igh-vs-knoepfe{white-space:nowrap}
.igh-vs-knoepfe .btn{margin-left:4px}

/* 🎨 Moodboards (03.10.2026) */
.mb-seite{padding:20px 24px;display:flex;flex-direction:column;gap:10px}
.mb-kopf{display:flex;align-items:center;justify-content:space-between;gap:10px}
.mb-kopf h1{margin:0}
.mb-raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.mb-karte{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:0;overflow:hidden;cursor:pointer;text-align:left;font:inherit;color:inherit;display:flex;flex-direction:column}
.mb-karte:hover{box-shadow:var(--shadow);border-color:var(--accent)}
.mb-vorschau{height:150px;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden}
.mb-vorschau img{width:100%;height:100%;object-fit:cover}
.mb-k-name{font-weight:600;padding:8px 10px 0}
.mb-k-meta{font-size:.76rem;padding:2px 10px 10px}
.mb-geteilt{font-size:.68rem;background:var(--accent-soft);color:var(--accent-d);border-radius:999px;padding:1px 7px;margin-left:6px}
.mb-editor{display:flex;flex-direction:column;height:calc(100vh - 40px);min-height:480px}
.mb-leiste{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--surface)}
.mb-name{font-weight:600;min-width:180px;max-width:320px}
.mb-status{font-size:.76rem;min-width:90px}
.mb-haupt{flex:1;display:grid;grid-template-columns:1fr 260px;min-height:0}
@media (max-width:820px){.mb-haupt{grid-template-columns:1fr}.mb-rechts{display:none}}
.mb-flaeche{background:repeating-conic-gradient(#e5e7eb 0 25%,#f3f4f6 0 50%) 0 0/24px 24px;min-height:0;overflow:hidden;position:relative}
.mb-flaeche.drop{outline:3px dashed var(--accent);outline-offset:-6px}
.mb-rechts{border-left:1px solid var(--border);background:var(--surface);padding:12px;display:flex;flex-direction:column;gap:8px;overflow:auto}
.mb-regler{display:grid;grid-template-columns:80px 1fr 32px;gap:6px;align-items:center;font-size:.8rem}
.mb-wert{font-size:.74rem;color:var(--muted);text-align:right}
.mb-reihe{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.pa-wz-moodboard.on{background:#7c3aed;border-color:#6d28d9;color:#fff}

/* 🔗 Seitenlinks im PDF (03.10.2026) */
.pa-link{position:absolute;pointer-events:auto;border:0;border-bottom:2px solid #2563eb;background:rgba(37,99,235,.08);cursor:pointer;padding:0;border-radius:2px}
.pa-link:hover{background:rgba(37,99,235,.25)}
.pa-link-leiste{position:fixed;z-index:2900;left:50%;bottom:20px;transform:translateX(-50%);background:var(--surface);color:var(--text);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.35);padding:8px 12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pa-zurueck{position:fixed;z-index:2900;left:50%;top:120px;transform:translateX(-50%);background:#2563eb;color:#fff;border:0;border-radius:999px;padding:8px 16px;font-weight:600;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.3)}

/* Moodboards: benutzerfreundlicher (03.10.2026) */
.mb-karte{cursor:default}
.mb-vorschau{border:0;width:100%;padding:0;cursor:pointer}
.mb-mini{display:grid;grid-template-columns:1fr 1fr;gap:2px;width:100%;height:100%}
.mb-mini img{width:100%;height:100%;object-fit:cover;background:#fff}
.mb-k-aktionen{display:flex;gap:6px;padding:0 10px 10px}
.mb-liste{display:flex;flex-direction:column;gap:4px}
.mb-li{display:flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:8px;padding:3px}
.mb-li-wahl{flex:1;min-width:0;display:flex;gap:8px;align-items:center;border:0;background:none;cursor:pointer;font:inherit;color:inherit;text-align:left;padding:2px}
.mb-li-wahl:hover{background:var(--accent-soft);border-radius:6px}
.mb-li img{width:44px;height:44px;object-fit:contain;background:#fff;border-radius:4px;border:1px solid var(--border);flex:none}
.mb-li-t{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-weight:700;background:var(--bg);border-radius:4px;flex:none}
.mb-li-name{font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mb-ab-haupt{width:100%;padding:10px;font-size:1rem}
.mb-ab-zeile{display:flex;gap:10px;align-items:center;width:100%;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:6px;cursor:pointer;font:inherit;color:inherit;text-align:left}
.mb-ab-zeile:hover{border-color:var(--accent);background:var(--accent-soft)}
.mb-ab-bilder{display:flex;gap:2px;min-width:60px}
.mb-ab-bilder img{width:30px;height:30px;object-fit:cover;border-radius:4px;background:#fff}

/* ✂ Ausschnitt: nur Bild / mit Notizen (03.10.2026) */
.pa-aw-haupt,.pa-aw-neben{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;text-align:left;margin-top:6px}
.pa-aw-haupt span{font-size:.78rem;opacity:.9;font-weight:400}
.pa-aw-neben span{font-size:.76rem}

/* 📑 Inhalt im PDF-Betrachter (03.10.2026) */
.pa-inhalt{width:250px;flex:none;overflow:auto;padding:6px 6px 16px;background:#0f172a;color:#e2e8f0;border-right:1px solid rgba(255,255,255,.12)}
.pa-inhalt.zu{display:none}
.pa-in-kopf{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;opacity:.8;padding:4px 4px 6px 8px}
.pa-in-kopf .iconb{color:inherit}
.pa-in-sek{font-size:.7rem;opacity:.6;padding:10px 8px 4px;text-transform:uppercase;letter-spacing:.05em}
.pa-in-z{display:flex;gap:8px;width:100%;text-align:left;border:0;background:none;color:inherit;font:inherit;font-size:.82rem;line-height:1.25;padding:5px 8px;border-radius:6px;cursor:pointer}
.pa-in-z:hover{background:rgba(255,255,255,.12)}
.pa-in-z.an{background:#2563eb;color:#fff}
.pa-in-nr{min-width:22px;opacity:.65;font-variant-numeric:tabular-nums;text-align:right}
.pa-in-z.an .pa-in-nr{opacity:.9}
.pa-in-leer{font-size:.8rem;opacity:.75;padding:8px}
.pa-in-zahl{opacity:.7}
.pa-inhalt::-webkit-scrollbar{width:10px}
.pa-inhalt::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3);border-radius:8px}

/* 💲 Preis-Bereich im Produkt + Protokoll (03.10.2026) */
.pb{margin:4px 0 8px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:.86rem;display:flex;flex-direction:column;gap:4px}
.pb-kopf{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pb-knoepfe{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.pb-z{display:grid;grid-template-columns:110px auto 30px 1fr;align-items:center;gap:8px}
.pb-l{color:var(--muted);font-size:.78rem}
.pb-w{font-variant-numeric:tabular-nums;white-space:nowrap}
.pb-z.entwurf .pb-w{color:var(--amber-tx)}
.pb-z.vorschlag .pb-w{color:var(--muted);font-weight:500;font-style:italic}
.pb-info{color:var(--muted);font-size:.76rem}
.pb-kopie{border:1px solid var(--border);background:var(--bg);border-radius:6px;width:26px;height:24px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);padding:0}
.pb-kopie:hover{color:var(--accent);border-color:var(--accent)}
.pb-kopie svg{width:14px;height:14px}
.pb-extra{font-size:.78rem;color:var(--amber-tx);padding-left:118px}
.pb-listen{margin:4px 0 0;border:0;border-top:1px dashed var(--border);border-radius:0;padding:6px 0 0;background:none}
.pb-form{display:flex;flex-direction:column;gap:10px;padding:4px 2px}
.pb-feld{display:flex;flex-direction:column;gap:3px;font-size:.8rem;color:var(--muted)}
.pb-feld input,.pb-feld textarea{font:inherit;font-size:.92rem;color:var(--text);padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.pb-auto{font-size:.74rem;color:var(--muted)}
.pb-check{display:flex;align-items:center;gap:8px;font-size:.84rem;cursor:pointer}
.pb-check input{width:auto;margin:0}
.pb-alt td{opacity:.5}
.pb-status{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.72rem;background:var(--bg);white-space:nowrap}
.pb-status.s-entwurf{background:var(--amber-soft,#fef3c7);color:var(--amber-tx)}
.pb-status.s-freigegeben,.pb-status.s-exportiert{background:var(--green-soft);color:var(--green-tx)}
.pb-status.s-teuerung,.pb-status.s-import{background:var(--accent-soft)}
.pb-status.s-rueckgaengig{background:var(--danger-soft);color:var(--danger-tx)}
.pvg-details td{background:var(--bg)}
.pvg-liste table{width:100%;font-size:.78rem}
@media (max-width:600px){.pb-z{grid-template-columns:90px auto 30px}.pb-info{grid-column:1/-1}.pb-extra{padding-left:0}}

/* 🎫 Tickets zum Artikel (03.10.2026) */
.tk-knopf.tk-hat{border-color:var(--amber-tx);color:var(--amber-tx)}
.tk-zahl{font-weight:700}
.tk-pop{width:330px}
.tk-z{display:block}
.tk-z b{font-weight:600}
.tk-erl{opacity:.55}
.tk-st{display:inline-block;font-size:.68rem;padding:0 7px;border-radius:999px;background:var(--bg);margin-right:6px}
.tk-st.s-neu{background:var(--accent-soft)}
.tk-st.s-in_arbeit{background:var(--amber-soft,#fef3c7);color:var(--amber-tx)}
.tk-st.s-erledigt{background:var(--green-soft);color:var(--green-tx)}
.tk-neu{color:var(--accent);font-weight:600;border-top:1px solid var(--border)}
.tk-aend{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:8px 10px;border-top:1px solid var(--border);font-size:.76rem;color:var(--muted)}
/* ↗ Kommende Preisänderung im Produkt (03.10.2026) */
.pb-kommt{border:1px solid var(--amber-tx);background:var(--amber-soft,#fef3c7);border-radius:8px;padding:7px 10px;display:flex;flex-direction:column;gap:2px;font-size:.84rem}
.pb-kommt.bald{border-width:2px}
.pb-kommt-t b{color:var(--amber-tx)}
.pb-kommt-p{margin-left:6px;font-weight:700;font-size:.76rem;border-radius:999px;padding:1px 7px}
.pb-kommt-p.hoch{background:var(--danger-soft);color:var(--danger-tx)}
.pb-kommt-p.tief{background:var(--green-soft);color:var(--green-tx)}
/* 📌 Gruppe anheften beim Varianten-Vergleich + Tabellen-Portionen (04.10.2026) */
.pf-pin{margin-left:auto;border:0;background:none;cursor:pointer;color:var(--muted);opacity:.45;padding:2px 4px;border-radius:6px;display:inline-flex;align-items:center}
.pf-pin svg{width:15px;height:15px}
.pf-group:hover .pf-pin{opacity:.9}
.pf-pin.an{opacity:1;color:var(--accent);background:var(--accent-soft)}
.pf-grp-pin{box-shadow:0 0 0 2px var(--accent) inset}
.pf-diff{outline:2px solid #f59e0b;outline-offset:1px;border-radius:8px;background:rgba(245,158,11,.08)}
.pt-mehr td{background:var(--accent-soft);padding:10px 12px;font-size:.85rem}
/* ↕↔ Tabelle: breite Bildlaufleisten auf eigenem weissen Streifen (04.10.2026, Aileen: „sonst klickt man aus Versehen in die Tabelle") */
.ptbl-wrap{scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:#9aa6b8 #fff}
.ptbl-wrap::-webkit-scrollbar{width:18px;height:18px}
.ptbl-wrap::-webkit-scrollbar-track{background:#fff;border-left:1px solid var(--border)}
.ptbl-wrap::-webkit-scrollbar-track:horizontal{border-left:0;border-top:1px solid var(--border)}
.ptbl-wrap::-webkit-scrollbar-thumb{background:#aeb8c7;border-radius:9px;border:4px solid #fff;background-clip:padding-box;min-height:40px;min-width:40px}
.ptbl-wrap::-webkit-scrollbar-thumb:hover{background:#7f8ba0;background-clip:padding-box}
.ptbl-wrap::-webkit-scrollbar-thumb:active{background:var(--accent);background-clip:padding-box}
.ptbl-wrap::-webkit-scrollbar-corner{background:#fff}
html[data-theme="dunkel"] .ptbl-wrap{scrollbar-color:#5b6475 #1b1f27}
html[data-theme="dunkel"] .ptbl-wrap::-webkit-scrollbar-track,html[data-theme="dunkel"] .ptbl-wrap::-webkit-scrollbar-corner{background:#1b1f27}
html[data-theme="dunkel"] .ptbl-wrap::-webkit-scrollbar-thumb{background:#5b6475;border-color:#1b1f27;background-clip:padding-box}
/* ↕↔ Überall: breite Bildlaufleisten auf eigenem weissen Streifen (04.10.2026, Aileen: „überall wo man scrollen muss") */
html{scrollbar-color:#aeb8c7 #fff}
::-webkit-scrollbar{width:16px;height:16px}
::-webkit-scrollbar-track{background:#fff;border-left:1px solid var(--border)}
::-webkit-scrollbar-track:horizontal{border-left:0;border-top:1px solid var(--border)}
::-webkit-scrollbar-thumb,html[data-theme="neo"] ::-webkit-scrollbar-thumb{background:#aeb8c7;border-radius:8px;border:4px solid #fff;background-clip:padding-box;min-height:36px;min-width:36px}
::-webkit-scrollbar-thumb:hover{background:#7f8ba0;background-clip:padding-box}
::-webkit-scrollbar-thumb:active{background:var(--accent);background-clip:padding-box}
::-webkit-scrollbar-corner{background:#fff}
html[data-theme="dunkel"]{scrollbar-color:#5b6475 #1b1f27}
html[data-theme="dunkel"] ::-webkit-scrollbar-track,html[data-theme="dunkel"] ::-webkit-scrollbar-corner{background:#1b1f27;border-color:#2a303b}
html[data-theme="dunkel"] ::-webkit-scrollbar-thumb{background:#5b6475;border-color:#1b1f27;background-clip:padding-box}
html[data-theme="dunkel"] ::-webkit-scrollbar-thumb:hover{background:#7a8496;background-clip:padding-box}

/* 📝 Notizen & Markierungen als Spalte im PDF-Betrachter (04.10.2026) */
.pa-notizpanel{width:310px;flex:none;background:var(--surface);color:var(--text);display:flex;flex-direction:column;border-left:1px solid var(--border);margin-left:6px;min-height:0}
.pa-notizpanel.zu{display:none}
.pa-np-kopfzeile{display:flex;align-items:center;gap:4px;padding:8px 10px;border-bottom:1px solid var(--border)}
.pa-np-kopfzeile .iconb{margin-left:auto}
.pa-np-chips{display:flex;gap:5px;align-items:center;padding:6px 10px;font-size:.78rem;border-bottom:1px solid var(--border)}
.pa-np-chip{border:1px solid var(--border);background:var(--bg);border-radius:999px;padding:2px 10px;font:inherit;font-size:.76rem;cursor:pointer;color:inherit}
.pa-np-chip.an{background:var(--accent);border-color:var(--accent);color:#fff}
.pa-np-liste{flex:1;overflow:auto;padding:4px 0 10px}
.pa-np-gruppe{display:flex;justify-content:space-between;padding:10px 12px 4px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.pa-np-z{display:flex;align-items:flex-start;border-bottom:1px solid var(--border)}
.pa-np-wahl{flex:1;min-width:0;display:flex;gap:6px;align-items:flex-start;border:0;background:none;text-align:left;padding:7px 4px 7px 12px;cursor:pointer;font:inherit;color:inherit}
.pa-np-wahl:hover{background:var(--accent-soft)}
.pa-np-wahl .pa-ml-dot{margin-top:4px;flex:none}
.pa-np-text{display:flex;flex-direction:column;min-width:0;font-size:.82rem}
.pa-np-kopf{overflow:hidden;text-overflow:ellipsis}
.pa-np-notiz{font-size:.78rem;white-space:pre-wrap;margin-top:2px}
.pa-np-meta{font-size:.7rem;color:var(--muted);margin-top:2px}
.pa-np-fuss{font-size:.7rem;padding:6px 10px;border-top:1px solid var(--border)}
/* ✂ Ausschnitte für Artikel + Token (05.10.2026) */
.tt-leiste{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 6px}
.tt-token{display:inline-block;padding:3px 9px;border-radius:999px;background:var(--accent-soft);border:1px solid #c9cff7;font-size:.78rem;cursor:grab;user-select:none;white-space:nowrap}
.tt-token.zahl{background:#fef3c7;border-color:#f0d79a}
.tt-token:hover{border-color:var(--accent)}
.ab-grid{display:grid;grid-template-columns:220px 1fr;gap:14px;align-items:start}
.ab-bild{border:1px solid var(--border);border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;min-height:120px;max-height:260px;overflow:hidden}
.ab-bild img{max-width:100%;max-height:256px;object-fit:contain}
.pb-feld textarea{resize:vertical}
.ab-panel{margin:4px 0 8px;padding:8px 12px;border:1px solid #f0d79a;border-radius:10px;background:var(--amberbg,#fff8e6)}
.ab-kopf{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px;font-size:.84rem}
.ab-kopf .btn{margin-left:auto}
.ab-karte{display:grid;grid-template-columns:92px 1fr auto;gap:10px;align-items:start;padding:8px 0;border-top:1px solid rgba(0,0,0,.06)}
.ab-mini img{width:92px;height:92px;object-fit:contain;background:#fff;border:1px solid var(--border);border-radius:6px}
.ab-meta{font-size:.78rem;margin-bottom:2px}
.ab-text{width:100%;font:inherit;font-size:.8rem;border:1px solid var(--border);border-radius:6px;padding:4px 6px;background:var(--surface);color:var(--text)}
.ab-knoepfe{display:flex;flex-direction:column;gap:5px}
.ab-katzeile{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:.8rem;flex-wrap:wrap}
.ab-katbilder{display:flex;gap:3px}
.ab-katbilder img{width:34px;height:34px;object-fit:contain;background:#fff;border:1px solid var(--border);border-radius:4px}
/* 📦 Datenlieferungen der Lieferanten (05.10.2026) */
.vm-neu-row{display:flex;gap:6px;flex-wrap:wrap}
.vm-neu-btn.dl-hat{border-color:var(--amber-tx);color:var(--amber-tx);font-weight:600}
.dl-ablage{border:2px dashed var(--border);border-radius:10px;padding:16px;text-align:center;color:var(--muted);display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;margin-bottom:8px}
.dl-ablage.drop-da{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.dl-bem-neu,.dl-bem{width:100%;font:inherit;font-size:.82rem;padding:5px 8px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text)}
.dl-liste{margin-top:10px;display:flex;flex-direction:column;gap:6px;max-height:55vh;overflow:auto}
.dl-zeile{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:8px 10px}
.dl-zeile.dl-weg{opacity:.5}
.dl-haupt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.dl-art{display:inline-block;margin-left:8px;font-size:.72rem;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-weight:600}
.dl-meta{font-size:.74rem}
.dl-knoepfe{display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:420px}
.dl-status{font:inherit;font-size:.78rem;padding:4px 6px;border-radius:7px;border:1px solid var(--border);background:var(--surface);color:var(--text)}
.dl-status.s-neu{border-color:var(--amber-tx);color:var(--amber-tx)}
.dl-status.s-verarbeitet{border-color:var(--green-tx);color:var(--green-tx)}
.dl-kopfzeile td{font-weight:700;background:var(--soft,#eef0fd)}
.dl-pre{max-height:40vh;overflow:auto;background:var(--bg);padding:8px;border-radius:8px;font-size:.74rem;white-space:pre-wrap}

.igh-kat-weg{border:0;background:none;cursor:pointer;color:var(--muted,#64748b);padding:0 4px;vertical-align:middle}
.igh-kat-weg:hover{color:#dc2626}
.igh-pk{font-size:.78rem;margin-top:4px}
.igh-pk summary{cursor:pointer;color:var(--muted,#64748b)}
.igh-pk-z{display:flex;gap:8px;align-items:center;padding:3px 0}
/* 📁 Kategorie als Ordner (06.10.2026) */
.t-ordner{display:inline-flex;align-items:center;gap:3px;margin-left:6px;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#a16207;background:#fef3c7;border:1px solid #fde68a;border-radius:6px;padding:1px 6px;vertical-align:middle}
.t-ordner .ico svg{width:11px;height:11px}
.tnode.ist-ordner .tname{font-weight:700}
.cd-ordner{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px dashed var(--border);border-radius:10px;margin:8px 0;cursor:pointer;font-size:.85rem}
.cd-ordner.an{background:#fffbeb;border-color:#fcd34d}
.cd-ordner .ico svg{width:16px;height:16px;color:#a16207}
.kat-ordner-ico{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:#a16207;flex:none;margin-right:2px}
.kat-ordner-ico .ico svg{width:15px;height:15px}
/* 📄 Merkmale aus Datenblättern & Inbox Attribute (06.10.2026) */
.mq-box{width:min(1000px,100%);max-height:92vh;overflow:auto}
.mq-quellen{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.mq-q{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:999px;padding:3px 6px 3px 10px;font-size:.78rem}
.mq-q button{border:0;background:none;cursor:pointer;color:var(--muted);font-size:1rem}
.mq-links{width:100%;font-size:.84rem;margin-bottom:6px}
.mq-ergebnis{display:flex;flex-direction:column;gap:6px}
.mq-kopf{display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid var(--border);flex-wrap:wrap}
.mq-liste{display:flex;flex-direction:column;gap:3px;max-height:38vh;overflow:auto}
.mq-z{display:grid;grid-template-columns:20px minmax(0,1fr) minmax(0,1.1fr);gap:8px;align-items:center;padding:5px 8px;border:1px solid var(--border);border-radius:8px;font-size:.82rem;cursor:pointer}
.mq-z.schon{opacity:.6;cursor:default}
.mq-info{display:flex;gap:8px;align-items:center;justify-content:flex-end;min-width:0}
.mq-info .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mq-anz{flex:none;font-size:.72rem;font-weight:700;background:var(--accent-soft,#eef2ff);border-radius:999px;padding:1px 7px}
.mq-tag{margin-left:6px;font-size:.7rem;color:#16a34a}
.mq-aehnlich{margin-left:6px;border:1px solid #fcd34d;background:#fffbeb;color:#92400e;border-radius:6px;font-size:.72rem;padding:1px 6px;cursor:pointer}
.mq-leer{padding:6px 2px;font-size:.82rem}
.mq-inbox-an{border-color:#f59e0b!important;color:#b45309!important}
.mq-inbox{display:flex;flex-direction:column;gap:8px;max-height:72vh;overflow:auto}
.mq-in-z{border:1px solid var(--border);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:4px}
.mq-in-kopf{display:flex;gap:6px;align-items:center}
.mq-in-name{flex:1;font-weight:600}
.mq-in-einh{width:90px}
.mq-in-sub{font-size:.76rem}
.mq-in-akt{display:flex;gap:6px;align-items:center}
/* feiner Strich über jedem Ordner im Kategorie-Baum (06.10.2026) */
.tnode.ist-ordner{border-top:1px solid #cbd5e1;margin-top:4px;padding-top:2px}
:root[data-theme="dark"] .tnode.ist-ordner{border-top-color:rgba(255,255,255,.18)}
.mq-warn{border:1px solid #fcd34d;background:#fffbeb;color:#92400e;border-radius:10px;padding:8px 10px;font-size:.82rem;margin:6px 0}
.mq-zf{grid-template-columns:20px minmax(0,.9fr) minmax(180px,.8fr) minmax(0,1fr);cursor:default}
.mq-wahl{display:flex;align-items:center;gap:6px}
.mq-ziel{width:100%;font-size:.8rem;padding:3px 8px;border-radius:7px}
.mq-ziel.vorh{border-color:#22c55e;background:#f0fdf4}
.mq-ziel.neu{border-style:dashed}
.mq-ziel.falsch{border-color:#ef4444;background:#fef2f2}
.mq-links{min-height:92px;resize:vertical}
/* 📑 PDF-Preislisten-Import (07.10.2026) */
.pli-box{width:min(1300px,100%);max-height:94vh;display:flex;flex-direction:column}
.pli-haupt{display:grid;grid-template-columns:230px minmax(0,1fr);gap:10px;min-height:0;flex:1;overflow:hidden}
.pli-haupt .igh-tab{max-height:62vh;overflow:auto}
.pli-seiten{display:flex;flex-direction:column;gap:2px;max-height:62vh;overflow:auto;border:1px solid var(--border);border-radius:10px;padding:6px}
.pli-s-kopf{display:flex;justify-content:space-between;align-items:center;padding:2px 4px 6px}
.pli-s{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:6px;align-items:center;border:0;background:none;text-align:left;padding:4px 6px;border-radius:7px;cursor:pointer;font-size:.76rem;color:inherit}
.pli-s:hover{background:var(--accent-soft,#eef2ff)}
.pli-s.an{background:#e0e7ff;font-weight:700}
.pli-s.warn .pli-s-n{color:#b45309;font-weight:700}
.pli-s.ki .pli-s-nr::after{content:' KI';font-size:.6rem;color:#7c3aed}
.pli-s-nr{font-weight:700}
.pli-s-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pli-ki{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.pli-var{display:inline-block;font-size:.7rem;background:#eef2ff;border-radius:6px;padding:0 6px;margin-top:2px}
.pli-ki-tag{display:inline-block;font-size:.62rem;font-weight:800;color:#7c3aed;border:1px solid #c4b5fd;border-radius:5px;padding:0 4px;margin-left:6px}
/* 🗂 Einsortieren (07.10.2026) */
.es-box{width:min(1150px,100%);max-height:92vh;display:flex;flex-direction:column}
.es-inhalt{display:flex;flex-direction:column;gap:6px;min-height:0;overflow:auto}
.es-lauf{display:block;text-align:left;border:1px solid var(--border);background:none;border-radius:8px;padding:6px 10px;cursor:pointer;color:inherit;font-size:.82rem}
.es-lauf:hover{border-color:#6366f1}
.es-lauft{display:flex;flex-direction:column;gap:8px;padding:20px}
.es-fort{height:10px}
.es-kopf{display:flex;align-items:center;gap:6px}
.es-tab{max-height:60vh;overflow:auto}
.es-ziel{max-width:340px;font-size:.8rem}
.es-proz{display:inline-block;color:#fff;font-weight:800;font-size:.74rem;border-radius:999px;padding:1px 8px}
tr.es-uebernommen td{opacity:.6}
tr.es-abgelehnt td{opacity:.45;text-decoration:line-through}
.gm-fort{display:block;height:6px;border-radius:3px;background:var(--border,#e2e8f0);overflow:hidden;margin-top:5px}.gm-fort i{display:block;height:100%;background:#6366f1;border-radius:3px}
/* 🧹 Import-Regeln (07.10.2026) */
.ir-box{width:min(1050px,100%);max-height:90vh;overflow:auto}
.ir-liste{display:flex;flex-direction:column;gap:5px}
.ir-z{display:grid;grid-template-columns:20px 90px minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) 30px;gap:6px;align-items:center;font-size:.82rem}
.ir-z.aus{opacity:.5}
.ir-z select,.ir-z input[type=text]{width:100%;font-size:.8rem}
.ir-scope{font-size:.72rem;background:var(--accent-soft,#eef2ff);border-radius:6px;padding:2px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ir-test{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr);gap:8px;align-items:center}
.ir-out{color:#16a34a}
/* ⚙ Aufträge (07.10.2026) */
.au-schild{display:flex;align-items:center;gap:4px;width:100%;border:1px solid rgba(99,102,241,.5);background:rgba(99,102,241,.12);color:inherit;border-radius:9px;padding:5px 8px;font-size:.74rem;cursor:pointer;margin-bottom:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.au-schild .ico svg{width:14px;height:14px;animation:au-dreh 2.4s linear infinite}
@keyframes au-dreh{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.au-schild .ico svg{animation:none}}
.au-liste{display:flex;flex-direction:column;gap:6px;max-height:70vh;overflow:auto}
.au-z{border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:.82rem;display:flex;flex-direction:column;gap:4px}
.au-s{display:flex;align-items:center;gap:6px}
.au-status{font-weight:700}
.au-fehler .au-status,.au-unterbrochen .au-status{color:#dc2626}
.au-fertig .au-status{color:#16a34a}
.au-laeuft .au-status{color:#4f46e5}
/* 📤 Export-Vorlagen (07.10.2026) */
.ev-box{width:min(1350px,100%);max-height:94vh;display:flex;flex-direction:column}
.ev-haupt{display:grid;grid-template-columns:230px minmax(0,1fr);gap:14px;min-height:0;overflow:auto}
.ev-links{display:flex;flex-direction:column;gap:5px}
.ev-v{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid var(--border);background:none;border-radius:9px;padding:6px 9px;cursor:pointer;color:inherit;font-size:.8rem}
.ev-v.an{border-color:#6366f1;background:rgba(99,102,241,.08)}
.ev-rechts{display:flex;flex-direction:column;gap:7px;min-width:0}
.ev-zeile{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ev-name{font-weight:700;font-size:1rem;flex:1;min-width:220px}
.ev-tabs{display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin-top:4px}
.ev-kopf{width:100%;font-size:.82rem}
.ev-spalten{display:flex;flex-direction:column;gap:4px}
.ev-sp{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr) 120px minmax(0,1.6fr) auto;gap:5px;align-items:center}
.ev-sp input,.ev-sp select{width:100%;font-size:.8rem}
.ev-p2{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:4px}
.ev-pf{display:flex;gap:2px}
.ev-aktionen{display:flex;gap:6px;align-items:center;margin-top:8px;flex-wrap:wrap}
.ev-vorschau{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.ev-vgl{font-size:.84rem}
.ev-kz{font-weight:700;font-size:.82rem}
.ev-tab{max-height:40vh;overflow:auto}
.ev-gr th{background:#e0e7ff}
/* ✍ KI-Texte (07.10.2026) */
.mt-box{width:min(1300px,100%);max-height:94vh;display:flex;flex-direction:column}
.mt-inhalt{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:6px}
.mt-f{display:flex;flex-direction:column;gap:2px;font-size:.78rem;flex:1;min-width:160px}
.mt-f span{color:var(--muted,#64748b);font-weight:600}
.mt-f input,.mt-f textarea,.mt-f select{width:100%;font-size:.84rem}
.mt-prompt{white-space:pre-wrap;font-size:.74rem;background:var(--accent-soft,#f1f5f9);border-radius:8px;padding:8px;max-height:220px;overflow:auto}
.mt-text{width:100%;min-width:320px;font-size:.8rem}
.mt-kpi{display:flex;gap:24px;font-size:1.1rem;margin:8px 0}
.mt-zwei{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mt-zl{display:grid;grid-template-columns:minmax(0,1fr) 50px 90px;gap:6px;font-size:.82rem;padding:2px 0;border-bottom:1px dashed var(--border)}
/* 🎯 Sicherheit beim Abgleich (07.10.2026) */
.ab-sicher{display:inline-block;margin-left:6px;font-size:.68rem;font-weight:800;border-radius:999px;padding:0 6px;color:#fff;vertical-align:middle;cursor:help}
.ab-sicher.hoch{background:#16a34a}.ab-sicher.mittel{background:#d97706}.ab-sicher.tief{background:#dc2626}
/* 🔒 Schloss im Vorlagen-Studio (08.10.2026) */
.vs-schloss{display:inline-flex;align-items:center;gap:5px;border:1px solid transparent;background:none;border-radius:6px;padding:2px 4px;cursor:pointer;color:var(--muted,#94a3b8);margin-left:auto;flex:none}
.vs-schloss svg{width:15px;height:15px}
.vs-schloss:hover{border-color:var(--border);color:inherit}
.vs-schloss.zu{color:#b45309}
.vs-schloss span{font-size:.8rem;font-weight:600}
.vs-sek+.vs-name+.vs-schloss{margin:2px 0 6px;border-color:var(--border);padding:4px 8px}
/* 🔢 Variante: ausgefüllte Werte als hellgraue Zahl ohne Rahmen in der Zeichnung (08.10.2026) — leere bleiben Kästchen */
.vv-variante .vv-flaeche .vv-spot.voll,.vv-variante .vv-flaeche .vv-spot.gc.voll{background:transparent;border-color:transparent;box-shadow:none;color:#8a94a6;padding:0 2px;font-weight:600}
.vv-variante .vv-flaeche .vv-spot.voll .vv-name{color:#a3acbb}
.vv-variante .vv-flaeche .vv-spot.voll:hover{text-decoration:underline dotted}
.vv-variante .vv-flaeche .vv-spot.voll.aktiv{background:var(--green-soft);color:var(--green-tx);border-color:var(--green)}
.vv-variante .vv-zsvg.voll{opacity:.45}
/* 📝 Eigener Text-Editor (12.10.2026) */
.te{border:1px solid var(--border);border-radius:10px;background:var(--card,#fff);display:flex;flex-direction:column;overflow:hidden}
.te-leiste{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding:6px;border-bottom:1px solid var(--border);background:var(--bg-soft,#f8fafc)}
.te-leiste .btn{padding:3px 8px}
.te-b{font-weight:900}.te-i{font-style:italic}.te-u{text-decoration:underline}
.te-trenn{width:1px;height:20px;background:var(--border);margin:0 3px}
.te-such{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding:6px;border-bottom:1px solid var(--border);background:#fffbeb}
.te-such input[type=text]{flex:1;min-width:140px;font-size:.84rem}
.te-such[hidden]{display:none}
.te-opt{display:inline-flex;gap:3px;align-items:center;font-size:.76rem;font-family:monospace;padding:0 4px}
.te-koerper{--te-z:1;display:grid;grid-template-columns:auto minmax(0,1fr);position:relative;resize:vertical;overflow:hidden;min-height:120px}
.te-nr{font:calc(13px*var(--te-z))/1.55 Consolas,'Cascadia Mono',monospace;color:#94a3b8;background:var(--bg-soft,#f8fafc);text-align:right;padding:8px 8px 8px 10px;overflow:hidden;user-select:none;border-right:1px solid var(--border);min-width:2.6em}
.te-flaeche{position:relative;overflow:hidden}
.te-ta,.te-farbe{position:absolute;inset:0;margin:0;padding:8px 10px;border:0;font:calc(13px*var(--te-z))/1.55 Consolas,'Cascadia Mono',monospace;tab-size:4;white-space:pre;overflow:auto;box-sizing:border-box;letter-spacing:0}
.te-ta{background:transparent;color:transparent;caret-color:var(--ink,#0f172a);resize:none;outline:none;z-index:1}
.te-ta::selection{background:rgba(99,102,241,.28);color:transparent}
.te-farbe{color:var(--ink,#0f172a);pointer-events:none;overflow:hidden}
.te.umbruch .te-ta,.te.umbruch .te-farbe{white-space:pre-wrap;overflow-wrap:anywhere}
.te-spiegel{position:absolute;visibility:hidden;left:-9999px;top:0;font:calc(13px*var(--te-z))/1.55 Consolas,'Cascadia Mono',monospace;white-space:pre-wrap;overflow-wrap:anywhere;padding:0 10px;box-sizing:border-box;tab-size:4}
.te-bst{color:#4f46e5;background:rgba(99,102,241,.1);border-radius:3px}
.te-bst.unbekannt{color:#dc2626;background:rgba(220,38,38,.1)}
.te-wenn{color:#b45309;font-weight:700}
.te-tag{color:#0f766e}
.te-ws{color:#cbd5e1}
.te-treffer{background:#fde047;color:inherit;border-radius:2px}
.te-status{display:flex;gap:14px;align-items:center;font-size:.72rem;color:var(--muted,#64748b);padding:4px 10px;border-top:1px solid var(--border);background:var(--bg-soft,#f8fafc)}
.te-laenge{font-weight:700}.te-laenge.gruen{color:#16a34a}.te-laenge.gelb{color:#d97706}.te-laenge.rot{color:#dc2626}
.te-vorschau{padding:10px 14px;border-top:1px solid var(--border);font-size:.9rem;max-height:220px;overflow:auto}
.te-menue{position:fixed;z-index:4000;background:var(--card,#fff);border:1px solid var(--border);border-radius:9px;box-shadow:0 10px 30px rgba(15,23,42,.2);padding:4px;display:flex;flex-direction:column;max-height:60vh;overflow:auto;min-width:220px}
.te-menue button{text-align:left;border:0;background:none;padding:6px 10px;border-radius:6px;cursor:pointer;font-size:.82rem;color:inherit;white-space:nowrap}
.te-menue button:hover{background:var(--accent-soft,#eef2ff)}
.te-menue hr{border:0;border-top:1px solid var(--border);margin:3px 0}
:root[data-theme="dark"] .te-ta::selection{background:rgba(129,140,248,.35)}
/* 🧾 Texte & Ausgaben (Kategorie-Fenster + Artikel-Reiter) */
.ak-box{width:min(1180px,100%)}
.ak-inhalt{display:flex;flex-direction:column;gap:8px;min-height:300px}
.ak-haupt{display:grid;grid-template-columns:230px 1fr;gap:14px;align-items:start}
.ak-liste{display:flex;flex-direction:column;gap:3px;max-height:70vh;overflow:auto;border-right:1px solid var(--border);padding-right:8px}
.ak-f{display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;border:1px solid transparent;background:none;color:var(--text);border-radius:8px;padding:6px 8px;cursor:pointer;font:inherit;font-size:.86rem}
.ak-f:hover{background:var(--surface-2,rgba(0,0,0,.04))}.ak-f.an{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.ak-st{font-size:.72rem;border-radius:999px;padding:1px 8px;border:1px solid var(--border);color:var(--muted);white-space:nowrap}
.ak-st.eigen,.ak-st.hand{color:#1d4ed8;border-color:#93c5fd}.ak-st.geerbt,.ak-st.auto{color:#047857;border-color:#6ee7b7}
.ak-st.aus,.ak-st.keine{color:var(--muted);border-style:dashed}.ak-st.warn{color:#b45309;border-color:#fcd34d}
.ak-rechts{display:flex;flex-direction:column;gap:8px;min-width:0}
.ak-zeile{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ak-zeile>input[type=text]{flex:1;min-width:140px}
.ak-vorschau{border:1px solid var(--border);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}
.ak-vk{display:flex;gap:6px;align-items:center}
.ak-text,.au-text{margin:0;white-space:pre-wrap;font:inherit;font-size:.88rem;background:var(--surface-2,rgba(0,0,0,.03));border-radius:8px;padding:8px 10px;word-break:break-word}
.ak-abk{font-size:.78rem;color:#047857}.ak-warn{font-size:.8rem;color:#b91c1c}
.ak-hilfe summary{cursor:pointer;font-size:.82rem;color:var(--muted)}.ak-hilfe div div{font-size:.78rem;margin:2px 0}
.ak-h{border:1px solid var(--border);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}
.ak-h.geerbt{background:var(--surface-2,rgba(0,0,0,.025))}.ak-h.aus{opacity:.55}.ak-htext{font-size:.86rem;white-space:pre-wrap}
.ak-a{border:1px solid var(--border);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}
.ak-aname{font-weight:700}.ak-feld{padding-left:14px}.ak-feld label{display:flex;align-items:center;gap:4px}
.ak-abkliste{display:flex;flex-direction:column;gap:4px}
.au-gruppe{border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-bottom:12px;display:flex;flex-direction:column;gap:10px}
.au-gkopf{font-size:.95rem}
.au-feld{display:flex;flex-direction:column;gap:5px;border-top:1px solid var(--border);padding-top:8px}
.au-feld.hand{border-left:3px solid #93c5fd;padding-left:8px}
.au-fkopf{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.au-vgl{border:1px dashed #fcd34d;border-radius:8px;padding:6px 8px;display:flex;flex-direction:column;gap:5px}
@media (max-width:760px){.ak-haupt{grid-template-columns:1fr}.ak-liste{border-right:0;max-height:none}}
/* ↕ Ziehen zum Sortieren (ziehsort.js) */
.zs-zeile{cursor:grab;user-select:none;touch-action:none;transition:transform .15s ease}
.zs-zeile:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.zs-aktiv .zs-zeile{cursor:grabbing}
.zs-zeile.zs-zieht{transition:none;position:relative;z-index:5;background:var(--surface);box-shadow:0 8px 24px rgba(15,23,42,.18);border-radius:10px;cursor:grabbing}
.zs-griff{display:inline-flex;width:16px;height:16px;color:var(--muted);opacity:.55;flex:0 0 auto}.zs-griff svg{width:16px;height:16px}
.zs-zeile:hover .zs-griff{opacity:1}
/* ✂ Wort-Modus im automatischen Text: Wörter als Kacheln, Klick = Kurzform ins Glossar */
.rte-view.wort-modus{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.wort-kachel{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:7px;padding:3px 9px;font:inherit;font-size:.86rem;cursor:pointer}
.wort-kachel:hover{border-color:var(--accent);color:var(--accent)}
.wort-kachel.hat{border-color:#6ee7b7;background:color-mix(in srgb,#10b981 8%,transparent)}
.wort-kachel small{color:#047857;font-weight:700}
.fp-kurz.an{background:var(--accent);color:#fff;border-color:var(--accent)}
.ki-kurz{flex-basis:100%;display:flex;flex-direction:column;gap:5px;align-items:flex-start}.ki-kurz:empty{display:none}
.ki-kurz-zeile{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.84rem}
/* 💡 Hinweise-Auswahl im Texte-Reiter */
.hw-zeile{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:8px 10px;cursor:pointer}
.hw-zeile.passt{border-color:#6ee7b7}.hw-zeile input{margin-top:3px}
.hw-text{font-size:.84rem;margin-top:3px}
/* 🛠 Texteditor gegen Design-Themen absichern (Fund 12.10.: Thema «neo» gab dem Eingabefeld Hintergrund+Schatten →
   deckte die sichtbare Schrift-Schicht ab, Text unsichtbar). Eingabefeld bleibt IMMER durchsichtig, gleiche Masse wie die Farbschicht. */
.te-koerper textarea.te-ta,.te-koerper textarea.te-ta:focus{background:transparent!important;box-shadow:none!important;border:0!important;border-radius:0!important;
  color:transparent!important;padding:8px 10px!important;margin:0!important;font:calc(13px*var(--te-z))/1.55 Consolas,'Cascadia Mono',monospace!important;outline:none!important}
.te-koerper pre.te-farbe{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important}
.te-flaeche{background:var(--surface,#fff)}
html[data-theme="dunkel"] .te-koerper pre.te-farbe{color:var(--text)}
html[data-theme="dunkel"] .te-koerper textarea.te-ta{caret-color:var(--text)}
html[data-theme="dunkel"] .te-nr,html[data-theme="dunkel"] .te-leiste,html[data-theme="dunkel"] .te-status{background:var(--bg)}
html[data-theme="dunkel"] .te-ws{color:#475569}
/* 🧱 Bedingung aus Bausteinen (bedingung-bloecke.js) */
.ak-bed{display:flex;gap:10px;align-items:flex-start;background:var(--bg-soft,#f8fafc);border:1px dashed var(--border);border-radius:9px;padding:6px 10px}
.ak-bed-l{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding-top:7px;white-space:nowrap}
.bb{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}
.bb-zeile{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.bb-vor{font-size:.76rem;font-weight:700;color:var(--accent);min-width:38px}
.bb-merkmal{min-width:180px}.bb-wert{width:170px}
.bb-verkn{font-size:.8rem;color:var(--muted);display:flex;gap:6px;align-items:center}
.bb-immer{font-size:.84rem;color:var(--muted);padding:5px 0}
.bb-fuss{display:flex;gap:8px;align-items:center}
.bb-formel{border:0;background:none;color:var(--muted);font-size:.72rem;cursor:pointer;text-decoration:underline}
.ak-leer{display:flex;flex-direction:column;gap:12px;padding:14px 6px;max-width:720px}
.ak-schritt{display:flex;gap:12px;align-items:flex-start}
.ak-schritt-n{flex:0 0 26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:.85rem}
/* 🔤 Wortform-Befehle (Adj/Ez/Mz) im Vorlagen-Editor — andere Farbe als die Schreibweise (AA/aa/Aa) */
.tpl-cmd.form{background:#fef3c7!important;border-color:#fbbf24!important;color:#92400e!important}.tpl-cmd.form .tpl-ph-x{color:#92400e}
.wf-reihe{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.wf-reihe input{width:100%}
/* 💡 Hinweis-Bausteine im Vorlagen-Editor */
.tpl-chip.hw{border-color:#fbbf24;background:#fffbeb;color:#92400e}
.tpl-chip.hw:hover{background:#fef3c7}
.tpl-hw-info{margin-top:6px;font-size:.76rem;display:flex;flex-direction:column;gap:2px}
.tpl-hw-info .ja{color:#047857}.tpl-hw-info .nein{color:#b45309}
.bb-schalter{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden;align-self:flex-start}
.bb-schalter button{border:0;background:var(--surface);color:var(--text);padding:5px 14px;font:inherit;font-size:.82rem;cursor:pointer}
.bb-schalter button.an{background:var(--accent);color:#fff;font-weight:700}
/* 📖 Lieferanten-Glossar (IGH) */
.gl-box{width:min(1000px,100%)}
.gl-liste{display:flex;flex-direction:column;gap:6px;max-height:62vh;overflow:auto}
.gl-zeile{display:grid;grid-template-columns:minmax(180px,1fr) 2fr;gap:12px;align-items:center;border:1px solid var(--border);border-radius:10px;padding:7px 10px}
.gl-zeile.zuordnen{border-color:#6ee7b7}.gl-zeile.weglassen{opacity:.65}
.gl-bsp{font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gl-eingabe{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.gl-merkmal{min-width:150px}.gl-wert{width:180px}
@media (max-width:760px){.gl-zeile{grid-template-columns:1fr}}
.gl-ki{margin-left:6px;font-size:.7rem;font-weight:700;color:#6d28d9;background:#ede9fe;border-radius:999px;padding:1px 7px}
.gl-ki.unsicher{color:#b45309;background:#fef3c7}
/* ✓ Rechtschreibung im Texte-Reiter */
.rs-box{border:1px solid var(--border);border-radius:10px;padding:8px 10px;margin-top:6px;display:flex;flex-direction:column;gap:5px;background:var(--surface)}
.rs-kopf{display:flex;align-items:center;gap:4px;font-size:.84rem}.rs-kopf .iconb{margin-left:auto}
.rs-fund{display:flex;gap:8px;align-items:center;font-size:.84rem;flex-wrap:wrap}
.rs-alt{color:#b91c1c;text-decoration:line-through;font-family:inherit}
/* ▦ Raster-Ansicht der Text-Vorlage (vorlagen-raster.js) */
.vr-schalter{margin:2px 0 6px}
.vr{border:1px solid var(--border);border-radius:10px;padding:8px;background:var(--surface);display:flex;flex-direction:column;gap:6px}
.vr-liste{display:flex;flex-direction:column}
.vr-reihe{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:9px;padding:5px 8px;background:var(--bg-soft,#f8fafc);min-height:38px}
.vr-reihe.aktiv{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.vr-reihe.vr-ziel{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.vr-reihe.fest{opacity:.75}
.vr-teile{flex:1;display:flex;flex-wrap:wrap;gap:5px;align-items:center;min-width:0}
.vr-stueck{display:inline-flex;align-items:center;gap:3px;cursor:grab;user-select:none}
.vr-stueck.zieht{opacity:.35}
.vr-chip{background:#e0e7ff;border:1px solid #a5b4fc;color:#3730a3;border-radius:7px;padding:2px 4px 2px 8px;font-size:.82rem;font-weight:600}
.vr-chip.aw{background:#f3e8ff;border-color:#d8b4fe;color:#6b21a8}
.vr-cmd{background:#fef3c7;border:1px solid #fbbf24;color:#92400e;border-radius:5px;padding:0 4px;font-size:.66rem;font-weight:800;font-family:Consolas,monospace}
.vr-text{background:var(--surface);border:1px dashed var(--border);border-radius:7px;padding:1px 2px 1px 4px}
.vr-text-in{border:0!important;background:transparent!important;box-shadow:none!important;padding:1px 2px!important;font:inherit;font-size:.84rem;min-width:1.5em}
.vr-x{border:0;background:none;color:var(--muted);cursor:pointer;font-size:.9rem;padding:0 3px;line-height:1}
.vr-x:hover{color:#dc2626}
.vr-plus{padding:2px 8px!important;font-size:.74rem!important}
.vr-luecke{height:8px;border-radius:4px;margin:1px 0}
.vr-luecke.vr-ziel{height:22px;background:color-mix(in srgb,var(--accent) 14%,transparent);border:1px dashed var(--accent)}
.vr-leer{font-size:.78rem}
.vr-fest-info{font-size:.72rem;white-space:nowrap}
.vr-menue .an{font-weight:700;color:var(--accent)}
.vr-menue-t{font-size:.72rem;font-weight:700;color:var(--muted);padding:4px 10px 2px}
.vr-stil{display:inline-flex;gap:2px}
.vr-stil-k{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:6px;width:24px;height:24px;font:inherit;font-size:.78rem;cursor:pointer;padding:0}
.vr-stil-b{font-weight:900}.vr-stil-i{font-style:italic}.vr-stil-u{text-decoration:underline}
.vr-stil-k.an{background:var(--accent);border-color:var(--accent);color:#fff}
.vr-teile.st-b .vr-chip,.vr-teile.st-b .vr-text-in{font-weight:900}
.vr-teile.st-i .vr-chip,.vr-teile.st-i .vr-text-in{font-style:italic}
.vr-teile.st-u .vr-chip,.vr-teile.st-u .vr-text-in{text-decoration:underline}
/* 🔤 Bausteine sortieren/suchen im Vorlagen-Editor */
.tpl-sortleiste{display:flex;gap:8px;align-items:center;margin:4px 0 6px;flex-wrap:wrap}
.tpl-sortleiste input[type=search]{flex:1;min-width:180px;max-width:320px}
.tpl-chip-gruppe{flex-basis:100%;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:4px}
/* 🔒 Gruppen [ … ] im Vorlagen-Editor = feste Blöcke: als Ganzes ziehen, Inhalt nicht herauslösbar */
.rte-area .tpl-opt[contenteditable=false]{cursor:grab;outline:1px dashed rgba(16,122,63,.45);border-radius:6px}
.rte-area .tpl-opt[contenteditable=false]:hover{outline-color:#107a3f}
.rte-area .tpl-opt .tpl-ph-x,.rte-area .tpl-opt .tpl-ph-grip{display:none}
.rte-area .tpl-opt.zieht{opacity:.4}
/* 🌳 Export: Unterkategorien an-/abwählen */
.exp-katbaum{margin-top:8px;border:1px solid var(--border);border-radius:10px;padding:8px 10px;max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.exp-kat-kopf{display:flex;gap:6px;align-items:center;margin-bottom:4px;font-size:.78rem}
.exp-kat{display:flex;gap:6px;align-items:center;font-size:.84rem;cursor:pointer}
.exp-preise{display:flex;gap:8px;align-items:center;font-size:.86rem;cursor:pointer}
.exp-medien{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 14px}
.exp-preis-detail{margin:6px 0 0 24px;padding:8px 10px;border:1px solid var(--border);border-radius:10px}
/* Export-Dialog: unten genug Platz, damit Auswahllisten (Welche Preise, Stichtag) nicht am Rand kleben */
.exp-modal .imp-body{padding-bottom:40px}
.exp-modal .imp-actions{margin-top:14px;padding-bottom:160px}   /* Platz unter dem Knopf, damit Auswahllisten nicht am Rand kleben */
/* ☑ Kontroll-Spalten der Produkt-Tabelle */
.pt-kontr-th{background:var(--bg-soft,#f8fafc);font-style:italic}
.pt-kontr{text-align:center;white-space:nowrap;font-size:.8rem}
.pk-zahl{display:inline-block;min-width:22px;padding:1px 7px;border-radius:999px;background:#dcfce7;color:#166534;font-weight:700}
.pk-geerbt{color:var(--muted);font-size:.76rem}
.pk-leer{color:#dc2626;font-weight:700}
.pk-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}.pk-dot.ok{background:#16a34a}.pk-dot.offen{background:#f59e0b}
.pk-menue{min-width:230px}.pk-opt{display:flex;gap:8px;align-items:center;padding:5px 10px;font-size:.84rem;cursor:pointer}
/* Haken-Quadrat „Alle" */
.exp-alle{display:inline-flex;gap:6px;align-items:center;font-size:.82rem;font-weight:700;cursor:pointer}
.pk-alle{border-bottom:1px solid var(--border);font-weight:700}
/* 🔍 Übersicht beim Darüberfahren (Kontroll-Spalten) */
.pk-pop{position:fixed;z-index:5000;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 30px rgba(15,23,42,.22);padding:8px 10px;max-width:380px;max-height:420px;overflow:auto;display:flex;flex-direction:column;gap:6px}
.pk-pop-kopf{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.pk-pop-z{display:flex;gap:8px;align-items:center}
.pk-pop-z img{width:52px;height:52px;object-fit:contain;border-radius:6px;background:#fff;border:1px solid var(--border);flex:0 0 auto}
.pk-pop-ico{width:28px;text-align:center;font-size:1.1rem;color:var(--muted);flex:0 0 auto}
.pk-pop-t{min-width:0;font-size:.8rem}.pk-pop-n{font-weight:600;word-break:break-all}.pk-pop-t .muted{font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pk-pop.gross{max-width:min(620px,calc(100vw - 16px));max-height:min(560px,calc(100vh - 16px))}
.pk-kacheln{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.pk-k{display:flex;flex-direction:column;gap:4px;min-width:0;border-radius:8px;padding:4px}
.pk-k.klick{cursor:zoom-in}.pk-k.klick:hover{background:var(--hover,rgba(37,99,235,.08))}
.pk-k-bild{height:130px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--border);border-radius:6px;overflow:hidden}
.pk-k-bild img{max-width:100%;max-height:100%;object-fit:contain}
.pk-k-typ{font-size:.85rem;font-weight:700;color:var(--muted);letter-spacing:.05em}.pk-k-hint{font-size:.7rem;color:var(--muted)}
.pk-k-n{font-size:.74rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-kontr{cursor:default}
/* 🎨 Farbkarte je Lieferant (18.10.2026) */
.fk-box{width:min(1280px,100%)}
.fk-regel{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.84rem;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--bg)}
.fk-regel span{display:inline-flex;gap:4px;align-items:center}
.fk-bsp{color:var(--accent,#2563eb)}
.fk-tab{overflow-x:auto;display:flex;flex-direction:column;gap:3px;padding-bottom:6px}
.fk-z{display:flex;gap:4px;align-items:center;flex:0 0 auto}
.fk-z input{font-size:.8rem;padding:3px 6px;flex:0 0 auto}
.fk-z .fk-code{font-weight:700}
.fk-kopf span{font-size:.7rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;flex:0 0 auto;padding-left:2px}
.fk-schalter{margin-left:6px;font-size:.66rem;padding:1px 6px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;line-height:1.4}
.fk-schalter.an{border-color:var(--accent,#2563eb);color:var(--accent,#2563eb)}
.fk-vorschlag{margin-top:4px}
.fk-warn{margin-top:4px;font-size:.76rem;color:var(--danger-tx,#b91c1c);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
/* 🛡 Mögliche Dublette am Feld (18.10.2026) */
.dubl-hinweis{grid-column:1/-1;margin-top:3px;font-size:.76rem;color:var(--danger-tx,#b91c1c);display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.dubl-hinweis a{color:inherit;text-decoration:underline;font-weight:600}
/* 📄 Preisliste als Quelle anbieten (18.10.2026) */
.quelle-hinweis{grid-column:1/-1;margin-top:4px;display:flex;gap:6px;align-items:center;font-size:.76rem}

/* 🧩 Konfigurator (18.10.2026) */
.kf-seite{padding:20px 24px;display:flex;flex-direction:column;gap:10px}
.kf-kopf{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.kf-kopf h1,.kf-kopf h3{margin:0;margin-right:auto}
.kf-raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.kf-karte{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.kf-karte:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.kf-k-name{font-weight:600}
.kf-k-meta{font-size:.78rem}
.kf-k-aktionen{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;align-items:center}
.kf-tab-wrap{overflow:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.kf-tab{width:100%;border-collapse:collapse;font-size:.84rem}
.kf-tab th{text-align:left;font-weight:600;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}
.kf-tab td{padding:5px 8px;border-bottom:1px solid var(--border);vertical-align:top}
.kf-t1{max-width:420px}
.kf-nowrap{white-space:nowrap}
.kf-drei{display:grid;grid-template-columns:minmax(220px,300px) minmax(320px,1fr) minmax(280px,380px);gap:16px;align-items:start}
@media (max-width:1100px){.kf-drei{grid-template-columns:1fr}}
.kf-links{display:flex;flex-direction:column;gap:8px;position:sticky;top:10px;max-height:calc(100vh - 90px)}
.kf-anz{font-size:.76rem}
.kf-modelle{display:flex;flex-direction:column;gap:4px;overflow:auto;padding-right:4px}
.kf-modell{display:flex;gap:8px;align-items:center;text-align:left;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:5px;cursor:pointer}
.kf-modell:hover{border-color:var(--accent)}
.kf-modell.an{border-color:var(--accent);background:var(--accent-soft)}
.kf-modell img,.kf-noimg{width:46px;height:46px;object-fit:contain;background:#fff;border-radius:6px;flex:none;display:flex;align-items:center;justify-content:center;color:var(--faint)}
.kf-m-name{font-size:.8rem;line-height:1.25}
.kf-mitte{display:flex;flex-direction:column;gap:12px}
.kf-titel{margin:0 0 4px;font-size:1.1rem}
.kf-leer{padding:30px 10px;text-align:center}
.kf-schritt{border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:10px 12px}
.kf-schritt.fertig{border-color:var(--green)}
.kf-s-kopf{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.kf-nr{width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent-d);display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700}
.kf-schritt.fertig .kf-nr{background:var(--green-soft);color:var(--green-tx)}
.kf-fest{margin-left:auto;font-size:.76rem;background:var(--accent-soft);color:var(--accent-d);border-radius:999px;padding:1px 8px}
.kf-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.kf-chips.kf-viele{max-height:240px;overflow:auto}
.kf-chip{font:inherit;font-size:.82rem;border:1px solid var(--border);background:var(--bg);color:inherit;border-radius:999px;padding:4px 11px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.kf-chip:hover{border-color:var(--accent)}
.kf-chip.an{background:var(--accent);border-color:var(--accent);color:#fff}
.kf-chip.aus{opacity:.42;text-decoration:line-through}
.kf-chip.aus.an{opacity:1;text-decoration:none;background:var(--danger);border-color:var(--danger)}
.kf-auf{opacity:.8}
.kf-weg{border:0;background:none;color:inherit;cursor:pointer;padding:0 2px;display:inline-flex;margin-left:auto}
.kf-chip .kf-weg{margin-left:2px}
.kf-weg svg{width:13px;height:13px}
.kf-filter{margin-bottom:6px;max-width:300px}
.kf-rechts{position:sticky;top:10px}
.kf-erg{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.kf-erg h3{margin:0}
.kf-bild{max-width:100%;max-height:200px;object-fit:contain;background:#fff;border-radius:8px;align-self:center}
.kf-lbl{display:flex;align-items:center;gap:6px;font-size:.74rem;font-weight:600;color:var(--muted);margin-top:4px}
.kf-kop{border:0;background:none;color:var(--muted);cursor:pointer;padding:0;display:inline-flex}
.kf-kop svg{width:13px;height:13px}
.kf-text1{font-weight:600;font-size:.88rem}
.kf-text2{white-space:pre-wrap;font:inherit;font-size:.82rem;margin:0;background:var(--bg);border-radius:8px;padding:8px}
.kf-code{font-family:ui-monospace,monospace;font-size:.78rem;background:var(--bg);border-radius:6px;padding:6px 8px}
.kf-fehler{background:var(--danger-soft);color:var(--danger-tx);border-radius:8px;padding:6px 8px;font-size:.8rem}
.kf-hinweis{background:var(--accent-soft);border-radius:8px;padding:6px 8px;font-size:.78rem}
.kf-preis{border-top:1px solid var(--border);padding-top:6px;font-size:.84rem;display:flex;flex-direction:column;gap:2px}
.kf-preis>div{display:flex;justify-content:space-between;gap:8px}
.kf-sum{font-weight:600}
.kf-speichern{display:flex;gap:6px;align-items:center;margin-top:6px}
.kf-speichern .input{flex:1;min-width:0}
.kf-menge{max-width:70px;flex:none!important}
.kf-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:9000}
.kf-dialog{background:var(--surface);border-radius:12px;padding:18px 20px;width:min(460px,94vw);display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow)}
.kf-dialog h3{margin:0 0 6px}
.kf-dialog label,.kf-form label{font-size:.78rem;font-weight:600;color:var(--muted)}
.kf-sek{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:12px 14px}
.kf-sek h3{margin:0 0 8px}
.kf-form{display:grid;grid-template-columns:120px minmax(200px,420px);gap:6px 10px;align-items:center}
.kf-gruppe{border:1px solid var(--border-2,var(--border));border-radius:10px;padding:10px;margin-bottom:10px;background:var(--bg)}
.kf-g-kopf{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.kf-g-kopf .input:first-child{max-width:220px}
.kf-klein{max-width:160px}
.kf-cb{display:inline-flex;align-items:center;gap:4px;font-size:.82rem}
.kf-edit td{padding:3px 4px}
.kf-edit .input{width:100%;min-width:60px}
.kf-fgruppe{margin-bottom:8px}
.kf-fkopf{font-size:.74rem;font-weight:600;color:var(--muted);margin:2px 0 4px}
.kf-chips-box.kf-viele{max-height:320px;overflow:auto}
.kf-mehr{border:0;background:none;color:var(--accent-d);cursor:pointer;font:inherit;font-size:.78rem;padding:4px 0}
.kf-zeile{cursor:pointer}
.kf-zeile:hover td{background:var(--accent-soft)}
.kf-code-zelle{font-family:ui-monospace,monospace;font-size:.78rem}
.kf-artikel .kf-tab-wrap{max-height:280px}

/* 🧩 Konfigurator — Aufbau wie ein Shop-Konfigurator (Artikelauswahl als Kacheln, Bühne links, Auswahl rechts) */
.kf-akk{border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--surface)}
.kf-akk-kopf{width:100%;display:flex;align-items:center;gap:10px;padding:12px 16px;border:0;background:var(--text);color:var(--surface);font:inherit;font-weight:600;cursor:pointer;text-align:left}
.kf-akk-kopf svg{width:20px;height:20px}
.kf-akk-wahl{font-weight:400;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.kf-akk-pm{margin-left:auto;font-size:1.3rem;line-height:1}
.kf-akk-inhalt{padding:12px 16px;display:flex;flex-direction:column;gap:8px}
.kf-filterzeile{display:flex;gap:10px;align-items:center}
.kf-filterzeile .input{max-width:360px}
.kf-kacheln{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;max-height:62vh;overflow:auto;padding:4px}
.kf-kachel{border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:10px;cursor:pointer;font:inherit;color:inherit;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.kf-kachel:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.kf-kachel.an{border-color:var(--accent);background:var(--accent-soft)}
.kf-kachel-bild{width:100%;height:120px;background:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--faint)}
.kf-kachel-bild img{max-width:100%;max-height:100%;object-fit:contain}
.kf-kachel-masse{font-size:.8rem;line-height:1.35}
.kf-kachel-name{font-size:.78rem;color:var(--muted);line-height:1.3}
.kf-zwei{display:grid;grid-template-columns:minmax(300px,1.1fr) minmax(360px,1fr);gap:22px;align-items:start;margin-top:6px}
@media (max-width:1000px){.kf-zwei{grid-template-columns:1fr}}
.kf-buehne{position:sticky;top:10px;display:flex;flex-direction:column;gap:12px}
.kf-b-bild{background:#fff;border:1px solid var(--border);border-radius:12px;min-height:340px;display:flex;align-items:center;justify-content:center;padding:20px;color:var(--faint)}
.kf-b-bild img{max-width:100%;max-height:480px;object-fit:contain}
.kf-b-info{display:flex;gap:14px;align-items:flex-end;justify-content:space-between}
.kf-b-titel{font-weight:600}
.kf-b-nr{font-family:ui-monospace,monospace;font-size:.82rem;margin-top:2px}
.kf-b-farbe{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.78rem}
.kf-panel{display:flex;flex-direction:column;gap:6px}
.kf-sek2{border-bottom:1px solid var(--border);padding:10px 0 12px}
.kf-sek2-kopf{display:flex;gap:8px;align-items:baseline;margin-bottom:8px;font-size:.9rem}
.kf-sek2-kopf .muted{font-size:.76rem}
.kf-chip-q{border-radius:4px;padding:6px 12px;background:var(--surface)}
.kf-gewaehlt{font-size:.82rem;margin:-4px 0 8px}
.kf-swatches{display:flex;flex-wrap:wrap;gap:8px}
.kf-swbtn{border:0;background:none;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;width:66px;font:inherit;color:inherit}
.kf-sw{width:58px;height:58px;border:1px solid var(--border);border-radius:4px;overflow:hidden;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--muted)}
.kf-sw img{width:100%;height:100%;object-fit:cover}
.kf-sw.gross{width:72px;height:72px}
.kf-swbtn.an .kf-sw{outline:2px solid var(--accent);outline-offset:2px}
.kf-swbtn.aus{opacity:.35}
.kf-swname{font-size:.68rem;line-height:1.15;text-align:center;word-break:break-word}
.kf-summe{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:14px 16px;margin-top:8px;display:flex;flex-direction:column;gap:8px}
.kf-szs{display:flex;flex-direction:column;gap:3px}
.kf-sz{display:flex;justify-content:space-between;gap:10px;font-size:.86rem}
.kf-total{font-weight:700;font-size:1.05rem;border-top:1px solid var(--border);padding-top:6px;margin-top:4px}
.kf-vk{font-weight:600}
.kf-quelle{font-size:.72rem}
.kf-texte summary,.kf-artikel summary{cursor:pointer;font-size:.86rem}
.kf-gross{width:100%;padding:12px;font-size:.95rem}
.kf-gross2{width:100%}

.kf-sek2.offen{border-left:3px solid var(--amber);padding-left:10px}
.kf-offen{color:var(--amber-tx);font-size:.76rem;font-weight:600}
.kf-bildopts{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.kf-bildopt{border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:6px;cursor:pointer;font:inherit;color:inherit;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.kf-bildopt:hover{border-color:var(--accent)}
.kf-bildopt.an{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.kf-bildopt.aus{opacity:.35}
.kf-bo-bild{width:100%;aspect-ratio:3/2;background:#fff;border-radius:4px;overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--muted)}
.kf-bo-bild img{width:100%;height:100%;object-fit:cover}
.kf-bo-name{font-size:.74rem;line-height:1.2}
.kf-vorschau-hinweis{background:var(--amber-soft,var(--accent-soft));color:var(--amber-tx);border-radius:8px;padding:7px 9px;font-size:.8rem}
.kf-vorschau .kf-text1,.kf-vorschau .kf-text2{opacity:.8}
.kf-mini{width:34px;height:24px;object-fit:cover;border-radius:3px;vertical-align:middle;margin-right:4px}
.kf-edit td.kf-nowrap{display:flex;align-items:center}

.kf-gruppen{display:flex;flex-direction:column;gap:18px}
.kf-lgruppe .kf-kopf h2{margin:0;font-size:1.05rem}
.kf-lgruppe .kf-kopf .muted{margin-right:auto;font-size:.8rem}
.kf-links-box{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:12px 14px;margin-top:18px}
.kf-links-box h3{margin:0 0 8px}
.kf-linkzeile{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--border)}
.kf-linkzeile .muted{font-size:.8rem;margin-right:auto}
/* 🧩 Konfigurator: nicht wählbar = hellgrau wie deaktiviert (19.10.2026, Aileen) */
.kf-chip.aus{opacity:1;text-decoration:none;background:#f1f2f4;color:#b3b8c2;border-color:#e3e5e9;cursor:not-allowed}
.kf-chip.aus small{color:#c4c8d0}
.kf-bildopt.aus,.kf-swbtn.aus{opacity:1;cursor:not-allowed}
.kf-bildopt.aus{background:#f1f2f4;border-color:#e3e5e9}
.kf-bildopt.aus .kf-bo-bild,.kf-swbtn.aus .kf-sw{filter:grayscale(1);opacity:.35}
.kf-bildopt.aus .kf-bo-name,.kf-swbtn.aus .kf-swname{color:#b3b8c2}

/* 🧾 Konfigurator: Zusammenstellung */
.kf-zs-leiste{position:sticky;bottom:0;margin-top:16px;display:flex;gap:12px;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--accent);border-radius:12px;padding:10px 14px;box-shadow:var(--shadow);z-index:4}
.kf-zs-leiste svg{width:15px;height:15px;vertical-align:-2px}
.kf-zs-bild{width:64px;height:48px;object-fit:contain;background:#fff;border-radius:4px}
.kf-zs-code{font-size:.74rem;font-family:ui-monospace,monospace}
.kf-zs-tab td{vertical-align:middle}
.kf-zs-total{display:flex;gap:18px;justify-content:flex-end;padding:10px 6px;font-size:.95rem}
.kf-lfm{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.kf-lfm label{font-size:.78rem;font-weight:600;color:var(--muted)}

/* 🧊 Planung (Build 1223): 3D / Front 2D der Zusammenstellung aus den PIM-Daten */
.kf-plan{border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}
.kf-plan-kopf{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.kf-plan-spacer{flex:1}
.kf-plan-flaeche{position:relative;height:440px;background:#f7f6f3;overflow:hidden}
.kf-plan-canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}
.kf-plan-canvas:active{cursor:grabbing}
.kf-plan-labels{position:absolute;inset:0;pointer-events:none}
.kf-plan-mass{position:absolute;transform:translate(-50%,-50%);background:#fff;border:1px solid #9aa79c;border-radius:6px;padding:1px 6px;font-size:.74rem;color:#33443a;white-space:nowrap}
.kf-plan-mass.gross{font-weight:600}
.kf-plan-plus{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;width:30px;height:30px;border-radius:50%;border:2px solid #fff;background:var(--accent);color:#fff;font-size:1.1rem;line-height:1;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.kf-plan-plus:hover{filter:brightness(1.1)}
.kf-plan-svg{width:100%;height:100%;display:block}
.kf-plan-svg .boden{stroke:#b9b3a8;stroke-width:4}
.kf-plan-svg .korpus{fill:#e9e6df;stroke:#8c8780;stroke-width:3}
.kf-plan-svg .front{fill:#ddd9d0;stroke:#6f6a63;stroke-width:3}
.kf-plan-svg .offen{fill:#8d9094}
.kf-plan-svg .sockel{fill:#3a3a3a}
.kf-plan-svg .griff{fill:#3a3a3a}
.kf-plan-svg .mass{stroke:#5b6b5f;stroke-width:3}
.kf-plan-svg .masstext{font:var(--fs,34px) sans-serif;fill:#33443a;text-anchor:middle}
.kf-plan-svg .masstext.gross{font-weight:600}
.kf-plan-svg .pos{font:var(--fs,30px) sans-serif;fill:#8c8780;text-anchor:middle}
.kf-plan-fuss{padding:6px 12px;font-size:.76rem}
.kf-plan-hinweise{padding:8px 12px;border-top:1px solid var(--border);color:#8a5a00;font-size:.84rem;display:flex;flex-direction:column;gap:3px}
.kf-plan-modal{max-width:960px;padding:16px 18px}
.kf-plan-mkopf{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.kf-plan-mkopf h2{margin:2px 0 0}
.kf-plan-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}
.kf-plan-raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.kf-plan-karte{border:1px solid var(--border);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:5px}
.kf-plan-karte img,.kf-plan-ohnebild{width:100%;height:110px;object-fit:contain;background:#fff;border-radius:6px}
.kf-plan-ohnebild{background:#f1efea}
.kf-plan-kname{font-weight:600;font-size:.86rem}
.kf-plan-svg .tablar{stroke:#e2ded6;stroke-width:14}
.kf-plan-svg .spiegel{fill:#dbe5ea;stroke:#6f7a80;stroke-width:4}
.kf-plan-svg .top{fill:#e4dfd6;stroke:#6f6a63;stroke-width:3}
.kf-plan-svg .becken{fill:#fafaf8;stroke:#8c8780;stroke-width:3}

/* 🧰 Planungs-Arbeitsplatz (Build 1226): Bibliothek · Ansicht · Einstellungen */
.kf-ap{display:grid;grid-template-columns:270px minmax(0,1fr) 340px;gap:0;border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden;min-height:560px}
.kf-ap-bib,.kf-ap-props{padding:12px;display:flex;flex-direction:column;gap:8px;overflow:auto;max-height:720px;background:var(--surface)}
.kf-ap-bib{border-right:1px solid var(--border)}
.kf-ap-props{border-left:1px solid var(--border)}
.kf-ap-mitte{display:flex;flex-direction:column;min-width:0}
.kf-ap-mitte .kf-plan-flaeche{flex:1;min-height:460px}
.kf-ap-titel{font-weight:700;font-size:.95rem}
.kf-ap-bks{display:flex;flex-wrap:wrap;gap:4px}
.kf-ap-bks .btn{font-size:.74rem;padding:3px 8px}
.kf-ap-bibliste{display:flex;flex-direction:column;gap:4px}
.kf-ap-art{border:1px solid var(--border);border-radius:8px;padding:2px 6px}
.kf-ap-art>summary{cursor:pointer;display:flex;justify-content:space-between;font-weight:600;font-size:.82rem;padding:5px 2px}
.kf-ap-modul{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;background:transparent;padding:5px 4px;border-radius:6px;cursor:pointer}
.kf-ap-modul:hover{background:var(--bg,#f4f4f6)}
.kf-ap-modul img,.kf-ap-ohnebild{width:44px;height:34px;object-fit:contain;background:#fff;border:1px solid var(--border);border-radius:4px;flex:none}
.kf-ap-mtext{display:flex;flex-direction:column;min-width:0;flex:1}
.kf-ap-mname{font-size:.78rem;line-height:1.2}
.kf-ap-mtext .muted{font-size:.7rem}
.kf-ap-plus{flex:none;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.kf-ap-tipp{font-size:.74rem}
.kf-ap-leer{height:100%;min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.kf-ap-kopf{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.kf-ap-name{font-weight:700;font-size:.9rem;line-height:1.25}
.kf-ap-knoepfe{display:flex;gap:3px;flex:none}
.kf-ap-sek{border-top:1px solid var(--border);padding-top:8px;display:flex;flex-direction:column;gap:6px}
.kf-ap-sektitel{font-weight:600;font-size:.8rem}
.kf-ap-props .kf-chips{display:flex;flex-wrap:wrap;gap:4px}
.kf-ap-props .kf-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px}
.kf-ap-erg{border-top:1px solid var(--border);padding-top:8px;display:flex;flex-direction:column;gap:4px}
.kf-ap-preis{font-weight:700}
.kf-plan-svg .modul{cursor:pointer}
.kf-plan-svg .modul.gewaehlt rect{stroke:#6d5df5;stroke-width:8}
@media (max-width:1300px){.kf-ap{grid-template-columns:240px minmax(0,1fr)}.kf-ap-props{grid-column:1 / -1;border-left:0;border-top:1px solid var(--border);max-height:none}}
@media (max-width:860px){.kf-ap{grid-template-columns:1fr}.kf-ap-bib{border-right:0;border-bottom:1px solid var(--border);max-height:360px}}
/* 📏 Mass-Feld (Build 1227) */
.kf-plan-mass.klickbar{pointer-events:auto;cursor:pointer;font:inherit;font-size:.74rem}
.kf-plan-mass.klickbar:hover{border-color:var(--accent);color:var(--accent)}
.kf-plan-mass.gewaehlt{border-color:#6d5df5;color:#4b3fd1;font-weight:600}
.kf-massfeld{position:absolute;z-index:5;width:222px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:8px;display:flex;flex-direction:column;gap:6px}
.kf-mf-kopf{font-size:.74rem;color:var(--muted,#6b7280)}
.kf-mf-reihe{display:flex;align-items:center;justify-content:space-between;gap:6px}
.kf-mf-reihe .btn{width:38px;font-size:1.05rem}
.kf-mf-wert{font-size:1.05rem}
.kf-mf-werte{display:flex;flex-wrap:wrap;gap:4px}
.kf-massfeld{width:250px}
.kf-mf-sl{display:flex;flex-direction:column;gap:2px}
.kf-mf-slider{width:100%;accent-color:#6d5df5;cursor:pointer}
.kf-mf-ticks{display:flex;justify-content:space-between;font-size:.68rem;color:var(--muted,#6b7280);padding:0 2px}
.kf-mf-ticks .aus{opacity:.4;text-decoration:line-through}
.kf-ap-griffe{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}
.kf-ap-griffe .kf-bo-name{font-size:.72rem}

/* 🖥📱 Arbeitsplatz für PC und Tablet (Build 1229): Bildschirmhöhe füllen, Vollbild, Bibliothek einklappen, Touch */
.kf-ap{height:calc(100vh - 150px);min-height:540px;grid-template-rows:minmax(0,1fr);grid-template-columns:270px minmax(0,1fr) 340px}
.kf-ap-bib,.kf-ap-props{max-height:none;min-height:0}
.kf-ap-mitte{min-height:0}
.kf-ap-mitte .kf-plan-flaeche{flex:1;min-height:0;height:auto}
@media (min-width:1700px){.kf-ap{grid-template-columns:300px minmax(0,1fr) 400px}}
@media (max-width:1300px){.kf-ap{grid-template-columns:230px minmax(0,1fr) 300px}.kf-ap-props{grid-column:auto;border-left:1px solid var(--border);border-top:0;max-height:none}}
.kf-ap.kf-ap-bibzu{grid-template-columns:0 minmax(0,1fr) 340px}
@media (min-width:1700px){.kf-ap.kf-ap-bibzu{grid-template-columns:0 minmax(0,1fr) 400px}}
@media (max-width:1300px){.kf-ap.kf-ap-bibzu{grid-template-columns:0 minmax(0,1fr) 300px}}
.kf-ap.kf-ap-bibzu .kf-ap-bib{display:none}
.kf-ap.kf-ap-voll{position:fixed;inset:0;z-index:300;height:100vh;min-height:0;border-radius:0;border:0}
body.kf-ap-vollbild{overflow:hidden}
/* Tablet hochkant / schmal: Möbel oben gross, Einstellungen darunter, Bibliothek unten */
@media (max-width:1000px){
  .kf-ap,.kf-ap.kf-ap-bibzu{grid-template-columns:1fr;grid-template-rows:auto;height:auto}
  .kf-ap-mitte{order:1}.kf-ap-mitte .kf-plan-flaeche{height:58vh;flex:none}
  .kf-ap-props{order:2;border-left:0;border-top:1px solid var(--border)}
  .kf-ap-bib{order:3;border-right:0;border-top:1px solid var(--border);max-height:50vh}
  .kf-ap.kf-ap-voll{height:100vh;overflow:auto}
}
/* Finger: grössere Ziele */
@media (pointer:coarse){
  .kf-plan-plus{width:44px;height:44px;font-size:1.4rem}
  .kf-plan-mass.klickbar{padding:6px 11px;font-size:.92rem}
  .kf-ap-props .kf-chip,.kf-mf-werte .kf-chip{padding:9px 13px}
  .kf-mf-reihe .btn{width:48px;height:44px;font-size:1.3rem}
  .kf-mf-slider{height:34px}
  .kf-ap-modul{padding:10px 6px}
  .kf-plan-kopf .btn{min-height:38px}
}
.kf-plan-zoom{display:inline-flex;gap:2px;margin:0 4px}
.kf-plan-svg{width:100%;height:100%;max-height:100%;display:block;touch-action:none;user-select:none}
.kf-plan-flaeche{overflow:hidden}
.kf-ap-mitte,.kf-plan-flaeche,.kf-plan-canvas{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.kf-plan-canvas:focus,.kf-plan-svg:focus{outline:none}
/* Lasche für die eingeklappte Bibliothek (Build 1231) */
.kf-ap-lasche{display:none}
.kf-ap.kf-ap-bibzu .kf-ap-lasche{display:flex;align-items:center;justify-content:center;border:0;border-right:1px solid var(--border);background:var(--bg,#f4f4f6);cursor:pointer;color:var(--accent);font-weight:600;padding:0}
.kf-ap.kf-ap-bibzu .kf-ap-lasche span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.82rem;letter-spacing:.04em}
.kf-ap.kf-ap-bibzu .kf-ap-lasche:hover{background:#ece9ff}
.kf-ap.kf-ap-bibzu{grid-template-columns:34px minmax(0,1fr) 340px}
@media (min-width:1700px){.kf-ap.kf-ap-bibzu{grid-template-columns:34px minmax(0,1fr) 400px}}
@media (max-width:1300px){.kf-ap.kf-ap-bibzu{grid-template-columns:34px minmax(0,1fr) 300px}}
@media (max-width:1000px){.kf-ap.kf-ap-bibzu .kf-ap-lasche{order:0;writing-mode:horizontal-tb;padding:10px;border-right:0;border-bottom:1px solid var(--border)}.kf-ap.kf-ap-bibzu .kf-ap-lasche span{writing-mode:horizontal-tb;transform:none}}
.kf-plan-svg .griff{stroke:#2f3134;stroke-width:1.5}
.kf-plan-svg .griff-fase{stroke:none;opacity:.8}
.kf-plan-svg .griff-j{fill:#2b2c2e !important;stroke:none}
/* 🧩 Passendes Zubehör (Build 1236) */
.kf-ap-zub{display:flex;flex-direction:column;gap:8px}
.kf-ap-zgruppe{display:flex;flex-direction:column;gap:4px}
.kf-ap-zeile{display:flex;align-items:center;gap:8px;padding:4px;border:1px solid var(--border);border-radius:8px}
.kf-ap-zeile img,.kf-ap-zeile .kf-ap-ohnebild{width:44px;height:34px;object-fit:contain;background:#fff;border-radius:4px;flex:none}
.kf-ap-zeile .kf-ap-mtext .muted{font-size:.7rem}
/* 🖼 Bibliothek als grosse Kacheln (Build 1236, Aileen: „viel zu klein, sehe fast nicht") */
.kf-ap-art[open]{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px 6px 8px}
.kf-ap-art[open]>summary{grid-column:1 / -1}
.kf-ap-modul{position:relative;flex-direction:column;align-items:stretch;gap:4px;padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.kf-ap-modul:hover{border-color:var(--accent);background:var(--surface)}
.kf-ap-modul img,.kf-ap-modul .kf-ap-ohnebild{width:100%;height:110px;object-fit:contain;border:0;background:#fff}
.kf-ap-modul .kf-ap-mname{font-size:.76rem;line-height:1.25}
.kf-ap-modul .kf-ap-mtext .muted{font-size:.68rem}
.kf-ap-modul .kf-ap-plus{position:absolute;top:6px;right:6px;width:26px;height:26px;box-shadow:0 1px 4px rgba(0,0,0,.25)}
@media (min-width:1700px){.kf-ap-modul img,.kf-ap-modul .kf-ap-ohnebild{height:130px}}
@media (max-width:1300px){.kf-ap-art[open]{grid-template-columns:1fr}.kf-ap-modul img,.kf-ap-modul .kf-ap-ohnebild{height:120px}}
@media (max-width:1000px){.kf-ap-art[open]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}
.kf-ap-zeile img,.kf-ap-zeile .kf-ap-ohnebild{width:72px;height:56px}

/* 📄 Offerte (Konfigurator-Zusammenstellung) — A4-Blatt am Bildschirm, beim Drucken nur das Blatt */
.kf-off-ov { position: fixed; inset: 0; z-index: 100000; background: rgba(40, 38, 34, .55); display: flex; flex-direction: column; }
.kf-off-leiste { display: flex; gap: 8px; align-items: center; padding: 10px 16px; background: var(--card, #fff); border-bottom: 1px solid var(--border, #ddd); }
.kf-off-flaeche { flex: 1; overflow: auto; padding: 24px 16px; }
.kf-off-blatt { box-sizing: border-box; width: 210mm; max-width: 100%; min-height: 297mm; margin: 0 auto; background: #fff; color: #222; padding: 18mm 16mm; box-shadow: 0 6px 30px rgba(0,0,0,.25); font-size: 10.5pt; line-height: 1.4; }
.kf-off-kopf { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; border-bottom: 2px solid #222; padding-bottom: 8px; margin-bottom: 12px; }
.kf-off-kopf h1 { margin: 0; font-size: 22pt; letter-spacing: .02em; }
.kf-off-name { font-size: 12pt; margin-top: 2px; }
.kf-off-meta { text-align: right; font-size: 10pt; }
.kf-off-bild { margin: 6px 0 14px; text-align: center; }
.kf-off-bild img { width: 100%; max-height: 95mm; object-fit: contain; background: #f3f1ed; border-radius: 4px; }
.kf-off-tab { width: 100%; border-collapse: collapse; }
.kf-off-tab th { text-align: left; font-size: 9pt; text-transform: uppercase; letter-spacing: .04em; color: #555; border-bottom: 1px solid #999; padding: 4px 6px; }
.kf-off-tab td { vertical-align: top; padding: 8px 6px; border-bottom: 1px solid #e3e0da; }
.kf-off-tab .r { text-align: right; }
.kf-off-tab tr { break-inside: avoid; }
.kf-off-t1 { font-weight: 600; }
.kf-off-t2 { white-space: pre-line; color: #444; margin-top: 3px; }
.kf-off-code { font-size: 9pt; color: #777; margin-top: 3px; }
.kf-off-total { display: flex; justify-content: flex-end; gap: 24px; font-size: 12pt; border-top: 2px solid #222; margin-top: 6px; padding-top: 6px; }
.kf-off-fuss { margin-top: 18px; font-size: 8.5pt; }
@media print {
  body.kf-druck > *:not(.kf-off-ov) { display: none !important; }
  body.kf-druck .kf-off-ov { position: static; background: none; display: block; }
  body.kf-druck .kf-off-leiste { display: none; }
  body.kf-druck .kf-off-flaeche { padding: 0; overflow: visible; }
  body.kf-druck .kf-off-blatt { box-shadow: none; width: auto; min-height: 0; padding: 0; }
  @page { size: A4; margin: 15mm 14mm; }
}

/* 🪨 Steinplatten wählen (Boden, Rückwand, Waschtisch-Platte) */
.kf-stein-modal { max-width: 1100px; width: 96vw; display: flex; flex-direction: column; gap: 10px; max-height: 92vh; }
.kf-stein-raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px; overflow: auto; min-height: 200px; flex: 1; }
.kf-stein-kachel { display: flex; flex-direction: column; gap: 4px; padding: 4px; border: 2px solid transparent; border-radius: 8px; background: var(--card, #fff); cursor: pointer; text-align: left; font-size: .78rem; }
.kf-stein-kachel img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 6px; background: #e8e4dc; }
.kf-stein-kachel.an { border-color: var(--primary, #6d5df5); }
.kf-stein-unten { display: flex; gap: 12px; align-items: center; border-top: 1px solid var(--border, #ddd); padding-top: 10px; }
.kf-stein-unten img { width: 72px; height: 72px; object-fit: cover; border-radius: 6px; }
.kf-stein-info { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.kf-stein-akt { display: flex; gap: 10px; align-items: center; padding: 6px 0; }
.kf-stein-akt > div { flex: 1; }
.kf-stein-akt img, .kf-stein-akt .kf-ap-ohnebild { width: 52px; height: 52px; object-fit: cover; border-radius: 6px; }
.kf-raum-modal { max-width: 560px; width: 94vw; }
.kf-off-raum { margin-top: 14px; }

/* 🚀 3D-Planer direkt (Konfigurator-Übersicht) */
.kf-planer-start { display: flex; flex-wrap: wrap; gap: 12px; margin: 6px 0 22px; }
.kf-planer-knopf { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 16px 26px; border-radius: 14px; min-width: 260px; text-align: left; }
.kf-pk-gross { font-size: 1.25rem; font-weight: 700; }
.kf-pk-klein { font-size: .8rem; opacity: .85; font-weight: 400; }
@media (pointer: coarse) { .kf-planer-knopf { padding: 20px 30px; min-width: 300px; } }
.kf-raum-mass { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; border-top: 1px solid var(--border, #ddd); margin-top: 8px; padding-top: 10px; }
.kf-raum-mass > b, .kf-raum-mass > div { flex-basis: 100%; }
.kf-raum-zahl { width: 90px; display: inline-block; }
body.kf-ap-vollbild .modal-ov{z-index:400}   /* Dialoge im Planer-Vollbild nach vorne */

/* 📋 Liste & Offerte im Planer · 🪨 Raum & Licht */
.kf-liste-modal { max-width: 1000px; width: 96vw; max-height: 92vh; overflow: auto; padding: 16px 18px; }
.kf-liste { display: flex; flex-direction: column; gap: 0; margin-top: 8px; }
.kf-liste-pos { display: grid; grid-template-columns: 28px 64px 1fr auto; gap: 12px; align-items: start; padding: 10px 0; border-bottom: 1px solid var(--border, #e3e0da); }
.kf-liste-pos img, .kf-liste-pos .kf-ap-ohnebild { width: 64px; height: 64px; object-fit: contain; background: #f6f4f0; border-radius: 6px; }
.kf-liste-nr { font-weight: 700; padding-top: 2px; }
.kf-liste-text { user-select: text; font-size: .86rem; }
.kf-liste-rechts { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; white-space: nowrap; }
.kf-liste-raum { margin-top: 12px; display: flex; flex-direction: column; gap: 4px; font-size: .86rem; }
.kf-raum-modal { max-width: 860px !important; width: 96vw; max-height: 92vh; overflow: auto; padding: 16px 18px; }
.kf-raum-sek { border: 1px solid var(--border, #e3e0da); border-radius: 10px; padding: 10px 12px; margin-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.kf-raum-zeile { display: grid; grid-template-columns: 150px 1fr; gap: 10px; align-items: center; }
.kf-raum-lbl { font-size: .78rem; color: var(--muted, #777); }
.kf-raum-wert { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
.kf-raum-wert .kf-chips { margin: 0; }
.kf-raum-feld { white-space: nowrap; }
.kf-raum-hinweis { flex-basis: 100%; font-size: .72rem; }
.kf-raum-menge { background: var(--bg-soft, #f6f4f0); border-radius: 8px; padding: 6px 10px; font-size: .8rem; display: flex; flex-direction: column; gap: 2px; }
@media (max-width: 700px) { .kf-raum-zeile { grid-template-columns: 1fr; } .kf-liste-pos { grid-template-columns: 24px 48px 1fr; } .kf-liste-rechts { grid-column: 3; align-items: flex-start; } }

/* 📸 Foto (Pathtracing) */
.kf-foto-ov { position: fixed; inset: 0; z-index: 100000; background: rgba(20, 18, 16, .88); display: flex; flex-direction: column; }
.kf-foto-leiste { display: flex; gap: 10px; align-items: center; padding: 10px 16px; background: var(--card, #fff); }
.kf-foto-flaeche { flex: 1; overflow: auto; display: flex; align-items: center; justify-content: center; padding: 10px; }
.kf-foto-canvas { max-width: 100%; max-height: 100%; box-shadow: 0 8px 40px rgba(0,0,0,.5); background: #ddd; }

/* 🪟 schwebendes Fenster „Raum & Licht" (verschiebbar, ohne Abdunkelung) */
.kf-schwebe { position: fixed; top: 70px; right: 20px; width: min(560px, 94vw); max-height: 82vh; z-index: 450; background: var(--card, #fff); border-radius: 12px; box-shadow: 0 12px 40px rgba(0,0,0,.28); display: flex; flex-direction: column; overflow: hidden; }
.kf-schwebe-kopf { display: flex; gap: 8px; align-items: center; padding: 8px 12px; background: var(--bg-soft, #f3f1ed); cursor: move; touch-action: none; user-select: none; }
.kf-schwebe-koerper { overflow: auto; padding: 8px 12px 12px; }
.kf-schwebe.zu .kf-schwebe-koerper { display: none; }
.kf-schwebe .kf-raum-zeile { grid-template-columns: 110px 1fr; }
body:has(.kf-schwebe) .modal-ov{z-index:500}   /* Stein-Auswahl über dem schwebenden Fenster */

/* 🏠 Raum: Fenster/Türen-Liste */
.kf-oeff-liste { display: flex; flex-direction: column; gap: 6px; width: 100%; }
.kf-oeff { border: 1px dashed var(--border, #ddd); border-radius: 8px; padding: 6px 8px; display: flex; flex-direction: column; gap: 4px; }
.kf-oeff-kopf { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.kf-foto-balken { width: 180px; height: 10px; accent-color: var(--primary, #6d5df5); }
.kf-foto-info { font-size: .82rem; color: var(--muted, #666); }
.kf-foto-buehne { position: relative; display: inline-block; max-width: 100%; max-height: 100%; }
.kf-foto-vor { display: block; max-width: 100%; max-height: calc(100vh - 90px); filter: blur(1px) saturate(.9); transition: opacity .6s; }
.kf-foto-buehne .kf-foto-canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; transition: opacity .6s; }
.kf-stufen { display: inline-flex; gap: 2px; padding: 2px; border-radius: 8px; background: var(--bg-soft, #f3f1ed); }

/* 📐 Grundriss-Editor (21.10.2026) */
.gr-wrap{position:absolute;inset:0;background:#fbfaf8;overflow:hidden;user-select:none}
.gr-svg{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}
.gr-leiste{position:absolute;left:8px;top:8px;right:290px;display:flex;flex-wrap:wrap;gap:4px;align-items:center;z-index:2}
.gr-leiste .btn:not(.primary){background:var(--surface)}
.gr-trenn{width:1px;height:22px;background:var(--border);margin:0 4px}
.gr-objwahl{font-size:.8rem;padding:4px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);max-width:220px}
.gr-panel{position:absolute;right:8px;top:8px;bottom:36px;width:270px;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow);font-size:.82rem;z-index:2}
.gr-panel b{display:block;margin-bottom:6px}
.gr-ab{margin-top:12px}
.gr-zeile{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0}
.gr-lbl{width:92px;color:var(--muted);font-size:.78rem}
.gr-feld{display:inline-flex;align-items:center;gap:4px}
.gr-zahl{width:76px;padding:3px 6px;font-size:.82rem}
.gr-chips{display:inline-flex;flex-wrap:wrap;gap:3px}
.gr-tipp{margin-top:10px;font-size:.76rem;line-height:1.35}
.gr-loeschen{margin-top:12px}
.gr-objbild{max-width:100%;max-height:110px;object-fit:contain;display:block;margin:4px 0 8px}
.gr-info{position:absolute;left:8px;right:290px;bottom:8px;font-size:.76rem;color:var(--muted);background:rgba(255,255,255,.85);border-radius:8px;padding:4px 8px;z-index:2}
.gr-wand{fill:#9b968e;stroke:#57534e;stroke-width:1.2px;vector-effect:non-scaling-stroke;cursor:pointer}
.gr-wand.zeile{fill:#8f8a82}
.gr-wand.an{fill:var(--accent);stroke:var(--accent-d)}
.gr-loch{fill:#fbfaf8;stroke:#57534e;stroke-width:1px;vector-effect:non-scaling-stroke}
.gr-loch.an{fill:var(--accent-soft);stroke:var(--accent)}
.gr-glas{stroke:#5b8fa8;stroke-width:1.5px;vector-effect:non-scaling-stroke}
.gr-tuer{stroke:#3f3a35;stroke-width:2px;vector-effect:non-scaling-stroke}
.gr-bogen{fill:none;stroke:#8a847c;stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}
.gr-tuer.an,.gr-bogen.an,.gr-glas.an{stroke:var(--accent)}
.gr-mass{fill:#3f3a35;text-anchor:middle;dominant-baseline:middle;font-family:inherit;pointer-events:none;paint-order:stroke;stroke:#fbfaf8;stroke-width:3px}
.gr-mass.klein{fill:#6b665f}
.gr-moebel{fill:rgba(180,150,110,.35);stroke:#8a6d48;stroke-width:1.2px;vector-effect:non-scaling-stroke;cursor:grab}
.gr-moebel.an{fill:rgba(79,70,229,.18);stroke:var(--accent)}
.gr-obj{cursor:move}
.gr-obj-umriss{fill:rgba(255,255,255,.88);stroke:#3f3a35;stroke-width:1.4px;vector-effect:non-scaling-stroke}
.gr-obj-linie{fill:none;stroke:#57534e;stroke-width:1px;vector-effect:non-scaling-stroke}
.gr-obj-linie.hell{stroke:#c9c4bc}
.gr-obj-linie.schraffur{stroke:#a8a29a}
.gr-glaswand{stroke:#5b8fa8;stroke-width:3px;vector-effect:non-scaling-stroke}
.gr-obj.an .gr-obj-umriss{stroke:var(--accent);fill:rgba(238,240,255,.9)}
.gr-obj.geist{opacity:.5;pointer-events:none}
.gr-obj-text{fill:#3f3a35;text-anchor:middle;dominant-baseline:middle;pointer-events:none}
.gr-griff{fill:#fff;stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke;cursor:grab}
.gr-griff.mass,.gr-neu.mass{stroke:#d97706}
.gr-neu{stroke:var(--accent);stroke-width:2px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}
.gr-sani-dialog{width:min(920px,94vw);max-height:86vh;display:flex;flex-direction:column;gap:8px;padding:14px}
.gr-sani-kopf{display:flex;justify-content:space-between;align-items:center}
.gr-sani-liste{overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.gr-sani{display:flex;flex-direction:column;gap:4px;text-align:left;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;font-size:.78rem}
.gr-sani:hover{border-color:var(--accent)}
.gr-sani img,.gr-sani-ohne{width:100%;height:90px;object-fit:contain;background:#f5f4f1;border-radius:6px}
@media (max-width:820px){.gr-panel{top:auto;height:42%;width:auto;left:8px}.gr-leiste,.gr-info{right:8px}.gr-info{bottom:calc(42% + 16px)}}
/* Offerte: Details je Position (Farbe, Material, Holz, Oberfläche, Griff …) */
.kf-off-det{display:grid;grid-template-columns:max-content 1fr;gap:1px 12px;margin:6px 0 2px;font-size:.78rem;color:#4b5563}
.kf-off-det span{color:#6b7280}
.kf-off-det b{font-weight:500;color:#111827}
/* Offerte: Bild je Position + Muster (Dekor/Textur, Griff, Steinplatte) — auch im Druck/PDF */
.kf-off-bildzelle{width:96px;vertical-align:top}
.kf-off-pbild{width:90px;height:72px;object-fit:contain;background:#f7f6f3;border-radius:6px;display:block}
.kf-off-muster{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 2px}
.kf-off-muster figure{margin:0;width:78px}
.kf-off-muster img{width:78px;height:46px;object-fit:cover;border-radius:5px;border:1px solid #e5e7eb;display:block;background:#f7f6f3}
.kf-off-muster figcaption{font-size:.66rem;color:#4b5563;line-height:1.2;margin-top:2px}
@media print{.kf-off-pbild,.kf-off-muster img{-webkit-print-color-adjust:exact;print-color-adjust:exact}.kf-off-tab tr{break-inside:avoid}}
/* Grundriss: Überschneidungen rot, Symbole zum Verschieben/Drehen */
.gr-moebel{fill:rgba(180,150,110,.55)}
.gr-moebel.rot,.gr-obj.rot .gr-obj-umriss{stroke:#dc2626;stroke-width:2.2px;fill:rgba(254,226,226,.75)}
.gr-symbol{fill:#4338ca;text-anchor:middle;dominant-baseline:central;pointer-events:none;font-weight:700}
.gr-gizmo{fill:#fff;stroke:#4f46e5;stroke-width:2px;vector-effect:non-scaling-stroke;cursor:move}
.gr-gizmo.dreh{cursor:grab;fill:#eef0ff}
.gr-gizmo-linie{stroke:#4f46e5;stroke-width:1.2px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}
.gr-info{display:flex;flex-wrap:wrap;gap:4px 12px}
.gr-warn{color:#b91c1c;font-weight:600}
/* Grundriss: Raum aus Massen (kleines Fenster neben der Leiste) */
.gr-pop{position:absolute;left:8px;top:84px;z-index:5;width:330px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:12px;display:flex;flex-direction:column;gap:6px;font-size:.82rem}
.gr-pop-feld{display:flex;align-items:center;gap:6px}.gr-pop-feld>span:first-child{width:110px;color:var(--muted)}.gr-pop-feld input{width:90px;padding:3px 6px}
.gr-pop-zeile{display:flex;flex-direction:column;gap:3px}.gr-pop-zeile>span{color:var(--muted);font-size:.76rem}
.gr-pop-knoepfe{display:flex;justify-content:flex-end;gap:6px;margin-top:6px}
/* Grundriss: Belag-Farbmuster */
.gr-farben{display:inline-flex;flex-wrap:wrap;gap:4px}
.gr-farbe{width:22px;height:22px;border-radius:6px;border:1px solid rgba(0,0,0,.15);cursor:pointer;padding:0}
.gr-farbe.klein{width:16px;height:16px;border-radius:4px}
.gr-farbe.an{outline:2px solid var(--accent);outline-offset:1px}
.gr-belag{stroke-linecap:butt;opacity:.95;pointer-events:none}
.gr-belag.fliese{stroke-dasharray:6 1.5}
/* Grundriss: Bewegungsflächen (Richtwerte) */
.gr-bewegung{fill:rgba(22,163,74,.07);stroke:#16a34a;stroke-width:1px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;pointer-events:none}
.gr-bewegung.rot{fill:rgba(220,38,38,.08);stroke:#dc2626}
.gr-beispiele{margin-bottom:4px}
/* Grundriss: Symbolleiste direkt neben der Auswahl */
.gr-kontext{position:absolute;z-index:4;display:none;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:3px}
.gr-k{width:30px;height:30px;border:0;background:transparent;border-radius:7px;font-size:16px;line-height:1;cursor:pointer;color:#374151}
.gr-k:hover{background:var(--accent-soft);color:var(--accent)}
/* 3D: Symbolleiste über dem gewählten Möbel */
.kf-plan-kontext{position:absolute;transform:translate(-50%,-100%);display:flex;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:3px;pointer-events:auto;z-index:3}
.kf-k{width:30px;height:30px;border:0;background:transparent;border-radius:7px;font-size:16px;line-height:1;cursor:pointer;color:#374151}
.kf-k:hover{background:var(--accent-soft);color:var(--accent)}
/* Varianten vergleichen */
.kf-var-dialog{width:min(1280px,96vw);max-height:90vh;display:flex;flex-direction:column;gap:10px;padding:14px}
.kf-var-leiste{display:flex;align-items:center;gap:8px}
.kf-var-raster{overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.kf-var-karte{border:1px solid var(--border);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.kf-var-kopf{display:flex;gap:6px}.kf-var-name{font-weight:600}
.kf-var-bild{height:190px;background:#f5f4f1;border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden}.kf-var-bild img{width:100%;height:100%;object-fit:cover}
.kf-var-total{display:flex;align-items:baseline;gap:8px;font-size:1.05rem}
.kf-var-mehr{color:#b91c1c;font-size:.82rem}.kf-var-weniger{color:#15803d;font-size:.82rem}
.kf-var-liste{display:flex;flex-direction:column;gap:3px;font-size:.78rem}.kf-var-liste span{margin-left:6px}
.kf-var-raum{font-size:.74rem}
/* Offerte: Grundriss */
.kf-off-gr{margin-top:14px;break-inside:avoid}
.kf-off-grundriss{width:100%;max-height:420px;display:block;margin:6px 0 10px;background:#fff}
.modal-box.kf-var-dialog,.modal-box.gr-sani-dialog{max-width:none}
/* Grundriss: kompakte Symbol-Leiste */
.gr-leiste{flex-wrap:wrap;row-gap:4px}
.gr-leiste .btn{padding:4px 8px;font-size:.8rem;white-space:nowrap;min-width:32px}
.gr-leiste .gr-objwahl{max-width:170px}
/* Build 1261: Eigenschaften einklappbar, Stein je Fläche, Referenzen, Offerte mit Sanitär & Belägen */
.gr-klappe{position:absolute;z-index:3;right:282px;top:14px;width:22px;height:22px;border-radius:50%;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);font-size:.8rem;line-height:1;cursor:pointer;padding:0;color:var(--text)}
.gr-klappe.zu{right:0;top:50%;transform:translateY(-50%);width:auto;height:auto;border-radius:10px 0 0 10px;padding:10px 5px;writing-mode:vertical-rl;font-size:.78rem}
.gr-wrap.panel-zu .gr-panel{display:none}
.gr-wrap.panel-zu .gr-leiste,.gr-wrap.panel-zu .gr-info{right:30px}
@media (max-width:820px){.gr-klappe:not(.zu){right:12px;top:auto;bottom:calc(42% - 4px)}}
.gr-stein-such{margin:4px 0;font-size:.8rem;padding:4px 8px}
.gr-stein-liste{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;max-height:210px;overflow:auto;margin-bottom:6px}
.gr-stein{display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--border);border-radius:6px;background:var(--surface);padding:3px;cursor:pointer;font-size:.68rem;line-height:1.1;color:var(--text)}
.gr-stein img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px}
.gr-stein.an{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}
.gr-stein-akt{width:34px;height:34px;object-fit:cover;border-radius:4px;margin-right:6px;vertical-align:middle}
.gr-norm-liste{margin:4px 0 8px;padding-left:16px;font-size:.74rem;color:var(--muted)}
.gr-norm-liste li{margin:2px 0}
.gr-wendekreis{fill:rgba(120,130,140,.06);stroke:#9aa0a6;stroke-dasharray:40 30;stroke-width:8}
.gr-normwahl{max-width:150px}
.kf-off-fliese{width:60px;height:60px;border-radius:4px;border:1px solid #ddd}
.kf-off-posten{margin-top:10px}
@media (min-width:1001px){.kf-ap.kf-ap-gr{grid-template-columns:230px minmax(0,1fr)}.kf-ap.kf-ap-gr.kf-ap-bibzu{grid-template-columns:34px minmax(0,1fr)}.kf-ap.kf-ap-gr .kf-ap-props{display:none}}
.gr-messlinie{stroke:#d9480f;stroke-width:2px;vector-effect:non-scaling-stroke}
.gr-messlinie.neu{stroke-dasharray:6 4}
.gr-messtext{fill:#b8390b;font-weight:600}
.gr-svg.gr-schieben{cursor:grab}
.gr-ziel{stroke:#2f9e44;stroke-width:2px;vector-effect:non-scaling-stroke}
.gr-rasterwahl{max-width:120px}
.gr-stein-liste{grid-template-columns:repeat(2,1fr);gap:6px;max-height:340px}
.gr-stein{font-size:.74rem;padding:4px}
.gr-stein img{aspect-ratio:4/3;background:#eee}
.gr-stein-vorschau{margin:4px 0 6px;display:flex;flex-direction:column;gap:3px}
.gr-stein-vorschau img{width:100%;height:150px;object-fit:cover;border-radius:8px;border:1px solid var(--border);background:#eee}
.gr-stein-vorschau figcaption{font-weight:600;font-size:.8rem}
.kf-belag-pop{position:fixed;z-index:3000;width:300px;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:8px 10px;font-size:.82rem}
.kf-belag-kopf{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.kf-belag-inhalt .gr-zeile{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:4px 0}
.kf-plan-kontext{padding:2px;border-radius:8px;gap:0;opacity:.92}
.kf-plan-kontext .kf-k{width:24px;height:24px;font-size:13px}
.kf-farbpunkt{display:inline-block;width:11px;height:11px;border-radius:50%;border:1px solid rgba(0,0,0,.25);margin-right:4px;vertical-align:-1px}
.set-adr-tab{width:100%;border-collapse:collapse;font-size:.84rem;margin:10px 0}
.set-adr-tab th,.set-adr-tab td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border)}
.set-adr-tab th{font-size:.74rem;color:var(--muted);font-weight:600}
.set-adr-tab .set-warn{color:#b45309}
/* 👤 Kunde erfassen */
.modal-box.kd-dialog{max-width:560px;width:100%}
.kd-kopf{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}
.kd-art{display:flex;gap:6px;margin-bottom:10px}
.kd-raster{display:grid;grid-template-columns:120px 1fr;gap:8px 10px;align-items:center}
.kd-raster>label{font-size:.82rem;color:var(--muted)}
.kd-zwei,.kd-plzort,.kd-strnr{display:grid;gap:8px}
.kd-zwei{grid-template-columns:1fr 1fr}.kd-plzort{grid-template-columns:110px 1fr}.kd-strnr{grid-template-columns:1fr 90px}
.kd-chips{display:flex;flex-wrap:wrap;gap:4px}
.kd-feldbox{position:relative}
.kd-feldbox .input{width:100%}
.kd-vorschlag{display:none;position:absolute;left:0;right:0;top:100%;z-index:5;max-height:240px;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg);margin-top:2px}
.kd-v{display:block;width:100%;text-align:left;border:0;background:transparent;padding:6px 10px;font:inherit;font-size:.85rem;cursor:pointer;color:var(--text)}
.kd-v.an,.kd-v:hover{background:var(--accent-soft,#ece9ff)}
.kd-fuss{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:.8rem}
.kd-knopf{justify-self:start}
.kf-kunde-knopf{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf-off-kunde{margin:10px 0 4px;font-size:.9rem;line-height:1.45}
.kf-off-kname{font-weight:600}
@media (max-width:600px){.kd-raster{grid-template-columns:1fr}}
.modal-box.kd-dialog{padding:16px 18px;box-sizing:border-box}
.kd-raster .input,.kd-raster input{width:100%;min-width:0;box-sizing:border-box}
/* 🪟 Planer als eigenes Fenster: ohne PIM-Seitenleiste */
body.nur-planer .sidebar,body.nur-planer #sidebarToggle{display:none !important}
body.nur-planer .main{margin-left:0;width:100%;max-width:none}
.kf-fenster-zeile{display:flex;justify-content:flex-end;margin:-6px 0 8px}
.kd-vorschlag{position:fixed;right:auto;z-index:6000;margin-top:0}
.modal-box.kd-dialog{padding:20px 22px}
.kd-raster{gap:12px 12px}
.kd-fuss{margin-top:20px}
/* 📐 Hersteller-CAD */
.gr-cad{mix-blend-mode:multiply;opacity:.9;pointer-events:none}
.gr-cad-tag{display:inline-block;margin-top:2px;font-size:.66rem;font-weight:600;color:#5b4bd6;background:#ece9ff;border-radius:5px;padding:1px 5px}
.kf-cad-info{font-size:.78rem;margin:4px 0;padding:4px 6px;background:#f2f0ff;border-radius:6px}
/* 🎨 Farbwähler */
.fw-pop{position:fixed;z-index:6500;width:340px;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:10px 12px;font-size:.82rem}
.fw-kopf{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.fw-reiter{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}
.fw-r{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:3px 10px;font:inherit;font-size:.76rem;cursor:pointer;color:var(--text)}
.fw-r.an{background:var(--accent,#6d5df5);border-color:var(--accent,#6d5df5);color:#fff}
.fw-raster{display:grid;grid-template-columns:repeat(8,1fr);gap:5px}
.fw-feld{width:100%;aspect-ratio:1;border-radius:6px;border:1px solid rgba(0,0,0,.18);cursor:pointer;padding:0}
.fw-feld.an{outline:2px solid var(--accent,#6d5df5);outline-offset:1px}
.fw-such{width:100%;margin-bottom:6px;box-sizing:border-box}
.fw-ral{max-height:300px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.fw-ral-z{display:grid;grid-template-columns:30px 42px 1fr;align-items:center;gap:6px;border:0;background:transparent;padding:3px 4px;border-radius:6px;cursor:pointer;font:inherit;font-size:.78rem;text-align:left;color:var(--text)}
.fw-ral-z:hover,.fw-ral-z.an{background:var(--accent-soft,#ece9ff)}
.fw-ral-f{width:30px;height:18px;border-radius:4px;border:1px solid rgba(0,0,0,.15)}
.fw-quelle{font-size:.7rem;margin-top:6px}
.fw-leer{padding:8px 0}
.fw-sammlung{border:1px solid var(--border);border-radius:8px;padding:6px 8px;margin-bottom:6px}
.fw-s-kopf{display:flex;align-items:center;gap:4px;margin-bottom:4px}
.fw-liste{display:flex;flex-direction:column;gap:3px}
.fw-eintrag{display:grid;grid-template-columns:26px 1fr 22px;align-items:center;gap:6px}
.fw-eintrag .fw-feld{width:26px}
.fw-e-text{font-size:.76rem}
.fw-e-weg{border:0;background:transparent;cursor:pointer;color:var(--muted)}
.fw-frei{display:flex;gap:10px;margin-bottom:8px}
.fw-vorschau{width:86px;height:86px;border-radius:10px;border:1px solid rgba(0,0,0,.18);flex:none}
.fw-frei-r{display:flex;flex-direction:column;gap:6px;flex:1}
.fw-zeile{display:flex;align-items:center;gap:6px}
.fw-color{width:44px;height:32px;padding:0;border:1px solid var(--border);border-radius:6px;background:none}
.fw-hex{width:100px}
.fw-bild{margin:6px 0}
.fw-canvas{max-width:100%;border-radius:8px;cursor:crosshair;display:block}
.fw-pop .input{width:100%;box-sizing:border-box;margin-bottom:5px}
.fw-pop .fw-hex{width:100px;margin:0}
.fw-fuss{margin-top:6px}
.gr-farbe-mehr{display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--muted);background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 50%/8px 8px}
.gr-laenge-griff{fill:#fff;stroke:var(--accent,#6d5df5);stroke-width:2px;vector-effect:non-scaling-stroke;cursor:ew-resize}
/* 🔎 Filter in der Bibliothek */
.kf-bib-filter{display:flex;flex-direction:column;gap:5px;padding:6px 0 4px;border-bottom:1px solid var(--border);margin-bottom:4px}
.kf-bib-fz{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.kf-bib-sel{flex:1;min-width:0;font-size:.8rem;padding:4px 6px}
.kf-bib-muster{width:26px;height:26px;border-radius:6px;object-fit:cover;border:1px solid var(--border);flex:none}
.kf-bib-muster.leer{background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 50%/8px 8px}
.kf-bib-breite .btn{padding:2px 7px;font-size:.72rem}
.kf-bib-zahl{font-size:.74rem}
.kf-bib-weg{align-self:flex-start}
.kf-hoehefeld{position:fixed;z-index:3000;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:8px 10px;font-size:.8rem}
.kf-hf-z{display:flex;align-items:center;gap:6px;margin-top:5px}
.kf-hf-z .input{width:80px}
/* Werkzeugleiste gruppiert + fester Preisbereich */
.kf-tb-gruppe{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.kf-tb-gruppe .btn{border:0;box-shadow:none}
.kf-tb-menue{font:inherit;font-size:.78rem;border:1px solid var(--border);border-radius:8px;padding:4px 6px;background:var(--surface);color:var(--text);cursor:pointer}
.kf-tb-trenn{width:1px;align-self:stretch;background:var(--border);margin:0 4px}
.kf-ap-props{position:relative}
.kf-preisleiste{position:sticky;bottom:-12px;margin:auto -12px -12px;padding:10px 12px;background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -6px 14px rgba(0,0,0,.05);display:flex;flex-direction:column;gap:4px;z-index:2}
.kf-pl-z{display:flex;justify-content:space-between;gap:8px;font-size:.84rem;align-items:baseline}
.kf-pl-z span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf-pl-total{font-size:.95rem}
.kf-pl-knopf{margin-top:4px;width:100%}
/* 🎨 KI-Bild-Studio */
.kis-ov{position:fixed;inset:0;z-index:2600;background:var(--bg);display:flex;flex-direction:column}
.kis-kopf{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--surface)}
.kis-inhalt{flex:1;display:grid;grid-template-columns:minmax(380px,520px) 1fr;min-height:0}
.kis-links{overflow:auto;padding:12px 16px;border-right:1px solid var(--border)}
.kis-rechts{overflow:auto;padding:12px 16px}
.kis-abschnitt{margin-bottom:18px}
.kis-abschnitt h3,.kis-galerie h3{font-size:.86rem;margin:0 0 8px}
.kis-kameras{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.kis-kam{border:2px solid var(--border);border-radius:10px;overflow:hidden;cursor:pointer;background:var(--surface);font-size:.76rem}
.kis-kam.an{border-color:var(--primary)}
.kis-kam img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;background:#ddd}
.kis-kam-z{display:flex;align-items:center;gap:4px;padding:4px 6px}
.kis-kam-z span:nth-child(2){flex:1}
.kis-haken{width:14px;color:var(--primary);font-weight:700}
.kis-x{border:0;background:none;cursor:pointer;color:var(--muted)}
.kis-kam-neu{display:flex;flex-direction:column;gap:6px;padding:8px;cursor:default;justify-content:center}
.kis-kamleiste{position:fixed;z-index:2700;top:12px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:8px 12px;font-size:.8rem;max-width:calc(100vw - 32px);flex-wrap:wrap}
.kis-kamleiste .input{width:190px}
.kis-material{display:flex;flex-direction:column;gap:6px}
.kis-mat{display:flex;gap:8px;align-items:flex-start;padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.kis-mat.aus{opacity:.45}
.kis-mat>img,.kis-farbe,.kis-leer{width:54px;height:54px;border-radius:6px;object-fit:cover;flex:none;background:#e9e7e2}
.kis-mat-t{flex:1;display:flex;flex-direction:column;gap:2px;font-size:.78rem;min-width:0}
.kis-notiz{font-size:.75rem;padding:3px 6px}
.kis-an{display:flex;align-items:center;gap:4px;font-size:.75rem;white-space:nowrap}
.kis-zeile{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px;font-size:.8rem}
.kis-zeile>label{width:100px;flex:none;padding-top:4px;color:var(--muted)}
.kis-zeile textarea,.kis-zeile select{flex:1}
.kis-chips{display:flex;flex-wrap:wrap;gap:4px;flex:1}
.kis-trenn{width:1px;background:var(--border);margin:0 4px}
.kis-mood{width:90px;height:60px;object-fit:cover;border-radius:6px}
.kis-auftrag{width:100%;font-size:.76rem;font-family:inherit}
.kis-lbl{display:block;font-size:.75rem;color:var(--muted);margin:8px 0 3px}
.kis-hinweise{font-size:.76rem;color:#9a6a00;margin-top:6px}
.kis-knoepfe{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.kis-schritt{display:flex;align-items:center;gap:8px;font-size:.8rem;padding:4px 0}
.kis-schritt.fehlt span{color:#b0483a}
.kis-klein{font-size:.74rem}
.kis-ergebnis{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:10px;margin-bottom:14px}
.kis-erg-kopf{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap;font-size:.82rem}
.kis-erg-bild{width:100%;border-radius:8px;display:block}
.kis-fehler{color:#b0483a;font-size:.8rem;margin-top:6px}
.kis-vgl{position:relative;border-radius:8px;overflow:hidden;line-height:0}
.kis-vgl img{width:100%;display:block}
.kis-vgl-oben{position:absolute;inset:0}
.kis-vgl-r{position:absolute;left:0;right:0;bottom:8px;width:100%;margin:0}
.kis-vgl-l,.kis-vgl-rr{position:absolute;top:8px;background:rgba(0,0,0,.55);color:#fff;font-size:.7rem;line-height:1;padding:4px 7px;border-radius:6px}
.kis-vgl-l{left:8px}.kis-vgl-rr{right:8px}
.kis-vorschau{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.kis-vorschau figure{margin:0;font-size:.72rem}
.kis-vorschau img{width:100%;border-radius:6px;display:block;background:#ddd}
.kis-vorschau .kis-ref img{aspect-ratio:1;object-fit:cover}
.kis-vorschau .kis-txt{grid-column:1/-1}
.kis-vorschau pre{white-space:pre-wrap;font-size:.72rem;background:var(--bg);padding:8px;border-radius:6px;max-height:260px;overflow:auto}
.kis-gespeichert{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.kis-gb{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface);display:flex;flex-direction:column;gap:4px;padding-bottom:6px;font-size:.76rem}
.kis-gb img{width:100%;aspect-ratio:3/2;object-fit:cover}
.kis-gb>*:not(img){margin:0 8px}
.kis-gb-t{display:flex;flex-direction:column}
.kf-off-visu{margin:14px 0}
.kf-off-visu-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-top:6px}
.kf-off-visu-g figure{margin:0;font-size:.75rem;color:var(--muted)}
.kf-off-visu-g img{width:100%;border-radius:8px;display:block}
@media (max-width:900px){.kis-inhalt{grid-template-columns:1fr}.kis-links{border-right:0}}
/* 🔧 Fachprüfung */
.gr-inst{fill:none;stroke:#2f6f9a;stroke-width:18;vector-effect:non-scaling-stroke;stroke-width:1.6px}
.gr-inst.kalt{stroke:#2f6f9a}.gr-inst.warm{stroke:#b0483a}
.gr-fach{list-style:none;padding:0;margin:4px 0;display:flex;flex-direction:column;gap:6px;font-size:.76rem}
.gr-fach li{padding:5px 7px;border-radius:6px;background:var(--bg);border-left:3px solid #2f6f9a;display:flex;flex-direction:column;gap:2px}
.gr-fach li.warn{border-left-color:#c27a1a;background:#fbf4e8}
.gr-fach small{color:var(--muted);font-size:.68rem}
.kf-off-abkl{margin:12px 0;padding:8px 10px;border:1px solid var(--border);border-radius:8px}
.kf-off-abkl .warn{color:#8a5a12}
.kf-off-abkl small{color:var(--muted)}
.gr-leitung{fill:none;stroke:#2f6f9a;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;stroke-width:1.6px;pointer-events:none}
.gr-leitung.warn{stroke:#c27a1a}
.gr-leitung-t{fill:#2f6f9a;font-weight:600;pointer-events:none}
.gr-leitung-t.warn{fill:#c27a1a}
/* Runde 1: Palette, Gruppen, Auswahlrahmen */
.gr-palette{position:fixed;z-index:3000;width:560px;max-width:calc(100vw - 16px);max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:10px 12px}
.gr-pal-kopf{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:.82rem}
.gr-palette h4{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:10px 0 6px}
.gr-kacheln{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px}
.gr-kachel{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 6px;border:1px solid var(--border);border-radius:10px;background:var(--bg);cursor:pointer;font-size:.74rem;text-align:center;line-height:1.2}
.gr-kachel:hover{border-color:var(--accent);background:var(--surface);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.gr-kachel[draggable=true]{cursor:grab}
.gr-kachel .muted{font-size:.68rem}
.gr-kachel-pim{width:100%;flex-direction:row;justify-content:flex-start;gap:10px;padding:9px 12px;text-align:left}
.gr-sym{display:block}
.gr-sym .gr-obj-umriss{fill:#fff}
.gr-gruppe-rahmen{fill:none;stroke:var(--accent);stroke-dasharray:8 5;vector-effect:non-scaling-stroke;stroke-width:1.4px;pointer-events:none}
.gr-auswahl-rahmen{fill:rgba(99,102,241,.08);stroke:var(--accent);vector-effect:non-scaling-stroke;stroke-width:1px;pointer-events:none}
.gr-gruppe-liste{margin:6px 0;padding-left:16px;font-size:.78rem}
.linkbtn{border:0;background:none;padding:0;color:var(--accent);cursor:pointer;font:inherit;text-align:left}
/* Runde 2: Offerte */
.kf-off-haupt{flex:1;display:flex;min-height:0}
.kf-off-haupt .kf-off-flaeche{flex:1}
.kf-oe{width:300px;flex:none;overflow:auto;background:var(--surface);border-left:1px solid var(--border);padding:12px 14px;display:flex;flex-direction:column;gap:9px;font-size:.8rem}
.kf-oe.zu{display:none}
.kf-oe-feld{display:flex;flex-direction:column;gap:3px}
.kf-oe-feld>span{font-weight:600;font-size:.74rem;color:var(--muted)}
.kf-oe-feld textarea{font:inherit;font-size:.8rem;resize:vertical}
.kf-oe-schalter{display:flex;align-items:center;gap:6px}
.kf-oe-zz{display:grid;grid-template-columns:1fr 90px auto;gap:4px;margin-bottom:4px}
.kf-oe-tipp{font-size:.72rem}
.kf-off-kopf{align-items:flex-start}
.kf-off-firma{display:flex;flex-direction:column;gap:6px;font-size:9pt;line-height:1.35}
.kf-off-logo{max-height:52px;max-width:200px;object-fit:contain;align-self:flex-start}
.kf-off-titel{text-align:right}
.kf-off-titel .kf-off-meta{margin-top:4px;font-size:9.5pt}
.kf-off-text{white-space:pre-wrap;margin:10px 0 12px}
.kf-off-abschnitt{font-size:12pt;margin:16px 0 4px;padding-bottom:3px;border-bottom:1px solid #bbb}
.kf-off-sz{display:flex;justify-content:flex-end;gap:24px;padding:2px 0}
.kf-off-sz b{min-width:110px;text-align:right}
.kf-off-sz.zwischen{border-top:1px solid #ccc;margin-top:2px;padding-top:4px}
.kf-off-sz.klein{font-size:9pt;color:#666}
.kf-off-sz.klein span:last-child{min-width:110px;text-align:right}
.kf-off-sz.total{font-size:12.5pt;border-top:2px solid #222;margin-top:4px;padding-top:6px}
.kf-off-summen{margin-top:14px;page-break-inside:avoid}
.kf-off-option td{color:#777}
.kf-off-opttag{display:inline-block;font-size:8pt;border:1px solid #999;border-radius:4px;padding:0 4px;margin-right:6px;vertical-align:1px}
.kf-off-optwahl{display:flex;align-items:center;gap:3px;font-size:7.5pt;color:#888;margin-top:4px;cursor:pointer}
@media print{ .kf-oe,.kf-off-optwahl{display:none !important} .kf-off-haupt{display:block} }
/* Runde 3: Kameras im Plan */
.gr-kam-kegel{fill:rgba(99,102,241,.08);stroke:rgba(99,102,241,.45);stroke-dasharray:6 4;vector-effect:non-scaling-stroke;stroke-width:1px}
.gr-kam-body{fill:#3f3a35;stroke:#fff;vector-effect:non-scaling-stroke;stroke-width:1px}
.gr-kam.an .gr-kam-body{fill:var(--accent)}
.gr-kam.an .gr-kam-kegel{fill:rgba(99,102,241,.16)}
.gr-kam-linie{stroke:var(--accent);stroke-dasharray:4 4;vector-effect:non-scaling-stroke;stroke-width:1.2px}
.gr-kam-ziel{fill:#fff;stroke:var(--accent);vector-effect:non-scaling-stroke;stroke-width:2px;cursor:move}
.gr-kam-text{fill:#3f3a35;font-weight:600;pointer-events:none}
.gr-k-text{width:auto;padding:0 7px;font-size:.72rem;font-weight:600}
/* Planmappe */
.pm-ov{position:fixed;inset:0;z-index:100000;background:rgba(40,38,34,.55);display:flex;flex-direction:column}
.pm-leiste{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border)}
.pm-flaeche{flex:1;overflow:auto;padding:20px;display:flex;flex-direction:column;align-items:center;gap:20px}
.pm-blatt{width:297mm;max-width:100%;aspect-ratio:297/210;background:#fff;box-shadow:0 6px 30px rgba(0,0,0,.25);display:flex;flex-direction:column;padding:10mm;box-sizing:border-box;color:#222}
.pm-inhalt{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.pm-inhalt>svg,.pm-inhalt>img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}
.pm-kopf{display:grid;grid-template-columns:2fr 2fr 1.4fr 1fr .6fr;border:1.5px solid #222;margin-top:6mm;font-size:8.5pt}
.pm-kopf>div{padding:3px 6px;border-left:1px solid #222;display:flex;flex-direction:column}
.pm-kopf>div:first-child{border-left:0}
.pm-kopf span{font-size:7pt;color:#666}
@media print{
  @page{size:A4 landscape;margin:8mm}
  body.pm-druck > *:not(.pm-ov){display:none !important}
  body.pm-druck .pm-ov{position:static;background:none;display:block}
  body.pm-druck .pm-leiste{display:none}
  body.pm-druck .pm-flaeche{padding:0;display:block;overflow:visible}
  body.pm-druck .pm-blatt{box-shadow:none;width:100%;height:190mm;aspect-ratio:auto;padding:0;page-break-after:always}
}
.pm-kopf.mit-firma{grid-template-columns:1.6fr 2fr 2fr 1.4fr 1fr .6fr}
.gr-sani-filter{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0}
.gr-sani-filter .input{width:auto;padding:4px 8px;font-size:.8rem}
.gr-sani-cb{display:flex;align-items:center;gap:4px;font-size:.8rem}
.gr-sani-anz{margin-left:auto;font-size:.76rem}
/* Runde 4: Schritt-Führung */
.kf-schritte{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:6px 10px;border-bottom:1px solid var(--border);background:var(--surface);font-size:.76rem}
.kf-schritt{display:flex;align-items:center;gap:5px;border:1px solid var(--border);background:var(--bg);border-radius:20px;padding:3px 10px 3px 4px;cursor:pointer;font:inherit;color:inherit}
.kf-schritt:hover{border-color:var(--accent)}
.kf-schritt .kf-sn{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--border);font-size:.68rem;font-weight:700}
.kf-schritt.ok .kf-sn{background:#2d6a3e;color:#fff}
.kf-schritt.jetzt{border-color:var(--accent);box-shadow:0 0 0 2px rgba(99,102,241,.15)}
.kf-schritt.jetzt .kf-sn{background:var(--accent);color:#fff}
.kf-schritt.warn .kf-sn{background:#c27a1a;color:#fff}
.kf-sw{background:#c27a1a;color:#fff;border-radius:9px;padding:0 6px;font-size:.66rem;font-weight:700}
.kf-schritt-tipp{margin-left:6px;color:var(--muted)}
.gr-kam-linie.leise{stroke:rgba(99,102,241,.35)}
.gr-kam-ziel.leise{stroke:rgba(99,102,241,.6)}
/* Form-Generator */
.fg-ov{position:fixed;inset:0;z-index:3500;background:rgba(40,38,34,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.fg-box{background:var(--surface);border-radius:14px;box-shadow:var(--shadow-lg);width:min(980px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.fg-kopf,.fg-fuss{display:flex;align-items:center;gap:10px;font-size:.84rem}
.fg-inhalt{display:grid;grid-template-columns:auto 1fr;gap:16px}
.fg-cv{width:560px;max-width:100%;height:auto;border:1px solid var(--border);border-radius:10px;cursor:crosshair;touch-action:none;display:block}
.fg-3d canvas{border:1px solid var(--border);border-radius:10px;cursor:grab;display:block}
.fg-bildknoepfe{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.fg-felder{display:flex;flex-direction:column;gap:6px;margin-top:8px;font-size:.8rem}
.fg-arten{display:flex;gap:4px}
.fg-feld{display:grid;grid-template-columns:100px 1fr 30px;align-items:center;gap:6px}
.fg-tipp{font-size:.74rem;max-width:560px}
@media (max-width:900px){.fg-inhalt{grid-template-columns:1fr}}

/* 🧺 Alles ernten */
.ern-kopf { gap: 8px; align-items: center; }
.ern-filter { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 6px 10px; border-bottom: 1px solid var(--border); }
.ern-nur { margin-left: auto; font-size: .76rem; display: inline-flex; align-items: center; gap: 4px; }
.ern-liste { padding: 4px 10px 16px; }
.ern-h { display: flex; align-items: center; gap: 8px; justify-content: space-between; }
.ern-bilder { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px; }
.ern-bild { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; background: #fff; cursor: pointer; }
.ern-bild img { width: 100%; height: 96px; object-fit: contain; background: #f6f7f9; }
.ern-bild-fuss { display: flex; align-items: center; gap: 4px; padding: 3px 5px; font-size: .7rem; }
.ern-bild.fremd { opacity: .55; border-style: dashed; }
.ern-bild.da, .ern-zeile.da { opacity: .5; }
.ern-zeile { display: flex; align-items: flex-start; gap: 8px; padding: 6px 4px; border-bottom: 1px solid var(--border); }
.ern-zeile.fehler .muted { color: var(--danger, #c0392b); }
.ern-txt { flex: 1; min-width: 0; font-size: .8rem; }
.ern-txt b { word-break: break-word; }
.ern-chip { display: inline-block; font-size: .68rem; padding: 1px 6px; border-radius: 9px; background: var(--accent-soft, #eef0ff); color: var(--accent); margin: 2px 4px 0 0; }
.ern-chip.passt { background: var(--accent); color: #fff; }
.ern-var { margin-top: 2px; }

/* 🖥 Live-Browser im Auslese-Panel */
.live-leiste { gap: 6px; align-items: center; }
.live-adr { flex: 1; min-width: 120px; font-size: .78rem; padding: 4px 8px; border: 1px solid var(--border); border-radius: 6px; background: var(--bg); color: var(--text); }
.live-info { padding: 2px 10px 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.live-flaeche { position: relative; margin: 0 10px 10px; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; background: #fff; outline: none; }
.live-flaeche:focus { border-color: var(--accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent); }
.live-bild { display: block; width: 100%; height: auto; cursor: default; user-select: none; min-height: 120px; }
.live-neu { position: absolute; left: 50%; top: 40%; transform: translateX(-50%); }

/* ↪ zurück zum Katalog/zur Preisliste, nachdem ein Artikel im PIM geöffnet wurde */
.pa-pim-zurueck { position: fixed; left: 50%; bottom: 84px; transform: translateX(-50%); z-index: 9000; display: flex; gap: 6px; padding: 6px; border-radius: 10px; background: var(--card, #fff); border: 1px solid var(--border); box-shadow: 0 6px 24px rgba(0,0,0,.18); }

/* 🗑 Merkmal-Papierkorb */
.apk-liste { max-height: 60vh; overflow: auto; border: 1px solid var(--border); border-radius: 8px; }
.apk-zeile { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-bottom: 1px solid var(--border); }
.apk-zeile:last-child { border-bottom: 0; }
.apk-txt { flex: 1; min-width: 0; font-size: .85rem; }
