:root{
  --bg:#eef1f5; --panel:#fff; --ink:#1f2933; --muted:#6b7280; --line:#e3e7ec;
  --brand-lr:#ea6a1e; --brand-mdl:#1f6feb;   /* LagerRent=Orange, MieteDeinLager=Blau */
  --ok:#16a34a; --ok-bg:#e7f6ec; --warn:#d97706; --warn-bg:#fcf2e0;
  --danger:#dc2626; --danger-bg:#fdecec; --info:#2563eb; --info-bg:#e8f0fe;
  --reserved:#7c3aed; --reserved-bg:#f1ebfd;
  --radius:12px; --shadow:0 1px 3px rgba(16,24,40,.08),0 1px 2px rgba(16,24,40,.04);
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45}
h1,h2,h3{margin:0}
.appbar{display:flex;align-items:center;gap:14px;background:var(--panel);border-bottom:1px solid var(--line);padding:11px 20px;position:sticky;top:0;z-index:20;flex-wrap:wrap}
.logo{font-weight:800;font-size:17px;letter-spacing:-.2px}
.logo b{color:var(--brand-lr)}
.spacer{flex:1}
.updated{color:var(--muted);font-size:12.5px}
.who{font-size:12.5px;color:var(--muted)}
.btn{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;padding:8px 13px;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.btn.primary{background:#334155;border-color:#334155;color:#fff}
.btn:disabled{opacity:.5;cursor:default}
.btn:hover:not(:disabled){filter:brightness(.97)}
.wrap{max-width:1180px;margin:0 auto;padding:18px 20px 70px}

.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:16px}
@media(max-width:900px){.kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.kpis{grid-template-columns:repeat(2,1fr)}}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:13px 14px;position:relative;overflow:hidden}
.kpi .v{font-size:25px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.kpi .l{font-size:11.5px;color:var(--muted);margin-top:6px;font-weight:600;line-height:1.25}
.kpi .strip{position:absolute;left:0;top:0;bottom:0;width:4px}
.kpi.ok .strip{background:var(--ok)} .kpi.danger .strip{background:var(--danger)}
.kpi.warn .strip{background:var(--warn)} .kpi.info .strip{background:var(--info)}
.kpi.reserved .strip{background:var(--reserved)} .kpi.muted .strip{background:var(--muted)}
.kpi{cursor:pointer;transition:box-shadow .1s}
.kpi:hover{box-shadow:0 2px 10px rgba(16,24,40,.14)}
.kpi.active{outline:2px solid #334155;outline-offset:-1px}

/* Eintrag = Datenzeile + Namenszeile darunter (Name de-emphasized, ganz unten) */
tr.e-main td{border-bottom:none;padding-bottom:3px}
tr.e-name td{padding-top:0;padding-bottom:11px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}
tbody tr.e-main:hover, tbody tr.e-main:hover + tr.e-name{background:#f8fafc}
#clear{white-space:nowrap}
tr.e-name .note{margin-top:3px;color:#475569;font-size:12px;font-style:italic}

.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;margin-bottom:6px;box-shadow:var(--shadow)}
.filters select{font:inherit;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}
.filters label{font-size:12px;color:var(--muted);font-weight:600;display:flex;gap:6px;align-items:center}

.alertband{background:#fffaf2;border:1px solid #f3dcae;border-left:4px solid var(--warn);border-radius:var(--radius);padding:12px 16px;margin:16px 0 4px}
.alertband b{color:#92400e}
.alertband .row{display:flex;gap:9px;align-items:center;padding:5px 0;flex-wrap:wrap;border-top:1px dashed #f0ddb8}
.alertband .row:first-of-type{border-top:none}

.section-title{display:flex;align-items:center;gap:10px;margin:24px 0 11px;font-size:15px;font-weight:700;flex-wrap:wrap}
.section-title .count{color:var(--muted);font-weight:600;font-size:13px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.panel.scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:none}
tbody tr:hover{background:#f8fafc}
.muted{color:var(--muted)} .num{font-variant-numeric:tabular-nums}
.no{color:var(--danger);font-weight:600}

.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap}
.b-ok{background:var(--ok-bg);color:var(--ok)} .b-warn{background:var(--warn-bg);color:var(--warn)}
.b-danger{background:var(--danger-bg);color:var(--danger)} .b-info{background:var(--info-bg);color:var(--info)}
.b-reserved{background:var(--reserved-bg);color:var(--reserved)}
.b-brand-LR{background:#fdeee2;color:var(--brand-lr)} .b-brand-MDL{background:#e8f0fe;color:var(--brand-mdl)}
.lc{display:inline-block;font-weight:800;font-size:11px;background:#eef2f7;color:#475569;border:1px solid #dde3ea;border-radius:6px;padding:1px 6px;margin-right:6px;font-variant-numeric:tabular-nums}
.opt{padding:2px 0}
.contact{font-size:11.5px;color:var(--muted)}

.intro{background:var(--info-bg);border:1px solid #cfe0fd;color:#1e40af;border-radius:var(--radius);padding:11px 15px;margin-bottom:16px;font-size:13px}
#err{display:none;background:var(--danger-bg);border:1px solid #f3c0c0;color:#991b1b;border-radius:var(--radius);padding:11px 15px;margin-bottom:14px}

/* ---- Marken-Auswahl (Mehrfach-Marken-Nutzer) ---- */
.brandpick-wrap{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}
.brandpick-wrap h2{font-size:20px;margin-bottom:6px}
.brandpick-wrap .sub{color:var(--muted);margin-bottom:26px;font-size:14px}
.brandpick{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}
.brandcard{background:var(--panel);border:2px solid var(--line);border-radius:16px;box-shadow:var(--shadow);
           padding:26px 30px;width:230px;cursor:pointer;transition:transform .08s,border-color .1s,box-shadow .1s}
.brandcard:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(16,24,40,.16)}
.brandcard .bdot{width:46px;height:46px;border-radius:12px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:18px}
.brandcard.lr{border-color:#f3d4be} .brandcard.lr:hover{border-color:var(--brand-lr)} .brandcard.lr .bdot{background:var(--brand-lr)}
.brandcard.mdl{border-color:#cfe0fd} .brandcard.mdl:hover{border-color:var(--brand-mdl)} .brandcard.mdl .bdot{background:var(--brand-mdl)}
.brandcard .bname{font-size:17px;font-weight:800}
.brandcard .bmeta{color:var(--muted);font-size:12.5px;margin-top:5px}

/* aktive Marke im Appbar (mit 'wechseln') */
.brandchip{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13px;border-radius:999px;padding:5px 12px}
.brandchip.lr{background:#fdeee2;color:var(--brand-lr)} .brandchip.mdl{background:#e8f0fe;color:var(--brand-mdl)}
.brandchip .switch{font-size:11.5px;font-weight:600;text-decoration:underline;cursor:pointer;color:inherit;opacity:.85}

/* ---- gruppierte Match-Ansicht: Standort-Karte (farbig) → Größe ---- */
.grp{margin:0}
.loccard{background:var(--panel);border:1px solid var(--line);border-left:6px solid var(--lc-strong);
         border-radius:12px;box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}
.loccard .loc{display:flex;align-items:center;gap:9px;padding:12px 16px;
              background:var(--lc-soft);color:var(--lc-strong);font-weight:800;font-size:15px}
.loccard .loc .lc{background:var(--lc-strong);color:#fff;border:none}
.loccard .loc .cnt{color:var(--lc-strong);opacity:.75;font-weight:600;font-size:12.5px}
.sizehdr{display:flex;align-items:center;gap:8px;padding:7px 16px 7px 20px;
         background:var(--sz-soft);border-top:1px solid var(--line);
         font-weight:700;font-size:12.5px;color:var(--sz-strong)}
.sizehdr .pill{background:var(--sz-strong);color:#fff;border-radius:7px;padding:2px 10px;
               font-variant-numeric:tabular-nums;font-weight:800}
.sizehdr .cnt{color:var(--sz-strong);opacity:.7;font-weight:600}
.wrow{display:flex;gap:12px;padding:10px 16px 11px 20px;border-top:1px solid #f1f4f7;
      border-left:3px solid var(--sz-strong);align-items:flex-start}
.wrow:hover{background:#f8fafc}
.wrow .when{min-width:150px;flex-shrink:0}
.wrow .when .person{font-weight:700}
.wrow .when .dates{color:var(--muted);font-size:12px;margin-top:2px}
.wrow .when .extra{color:#475569;font-size:11.5px;margin-top:2px}
.wrow .opts{flex:1}
.wrow .opt{padding:2px 0}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:28px;width:340px;max-width:100%}
.login-card h1{font-size:20px;margin-bottom:4px}
.login-card .sub{color:var(--muted);font-size:13px;margin-bottom:18px}
.login-card label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:12px 0 5px}
.login-card input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:9px;font:inherit}
.login-card button{width:100%;margin-top:18px;padding:11px;border:none;border-radius:9px;background:#334155;color:#fff;font-weight:700;font-size:14px;cursor:pointer}
.login-card .msg{color:var(--danger);font-size:12.5px;margin-top:12px;min-height:16px}

/* ============================ Mobil ============================ */
@media(max-width:680px){
  body{font-size:13.5px}

  /* Appbar gestapelt: Logo, Status, dann Buttons */
  .appbar{padding:10px 13px;gap:7px}
  .appbar .spacer{display:none}
  .logo{order:0;width:100%;font-size:16px}
  .updated{order:1;width:100%;font-size:11.5px}
  .who{order:2;width:100%;font-size:11.5px}
  .appbar .btn{order:3;flex:1;justify-content:center;min-height:42px;font-size:14px}

  .wrap{padding:14px 12px 60px}

  /* KPIs: 2 Spalten, gut tippbar */
  .kpis{grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:14px}
  .kpi{padding:11px 12px}
  .kpi .v{font-size:22px}
  .kpi .l{font-size:11px}

  /* Filter: volle Breite, größere Touch-Ziele */
  .filters{gap:8px;padding:10px 12px}
  .filters label{font-size:11.5px;flex:1 1 46%}
  .filters select{flex:1;min-height:40px}
  #clear{flex:1 1 100%;justify-content:center;min-height:42px}
  #finfo{width:100%}

  .section-title{font-size:14px;margin:18px 0 9px}

  /* Dichte Tabellen: horizontal wischbar, Spalten bleiben lesbar */
  .panel.scroll{-webkit-overflow-scrolling:touch}
  .panel.scroll table{min-width:600px}
  th{font-size:10.5px;padding:8px 10px}
  td{padding:9px 10px}

  /* Marken-Auswahl: Karten volle Breite, gut tippbar */
  .brandpick{flex-direction:column;width:100%}
  .brandcard{width:100%;padding:22px}
  .brandchip{order:2;width:auto}

  /* Standort-Karten: Wartenden-Zeile gestapelt (Name oben, Räume darunter) */
  .wrow{flex-direction:column;gap:6px;padding:10px 12px 12px 14px}
  .wrow .when{min-width:0;width:100%}
  .sizehdr{padding-left:14px}
  .loccard .loc{font-size:14px;padding:11px 13px}

  /* Login */
  .login-card{padding:22px 20px}
}

/* ============================================================
   Kompakte Tabelle (Warteliste ↔ Lager) — übernommen aus dem
   Claude-Design "Kompakte-Tabelle.html", an das bestehende
   Warteliste-Lagerlink-Aussehen angepasst.
   ============================================================ */
:root{
  --ink-2:#42505f; --ink-3:#6a7686; --ink-4:#97a2b0;
  --panel-2:#f7f9fb; --panel-3:#eef2f6; --line-2:#d3dae2;
  --radius-sm:8px;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --brand:var(--brand-lr); --brand-soft:#fbe9dc; --brand-ink:#9a4516;  /* je Marke per JS überschrieben */
}

/* ---- Stichtag-Regler (Appbar) ---- */
.stichtag{display:inline-flex;align-items:center;gap:8px;padding:4px 8px 4px 11px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--panel)}
.stichtag .st-lab{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);font-weight:600}
.st-input{font-family:var(--mono);font-size:13px;border:none;background:transparent;color:var(--ink);padding:3px 2px}
.st-input:focus{outline:none}
.st-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}
.st-today{font-size:11px;font-weight:600;color:var(--brand-ink);background:var(--brand-soft);border:none;border-radius:5px;padding:3px 7px;cursor:pointer}
.st-today:hover{filter:brightness(.97)}

/* Kompakte, einklappbare Topbar — Werkzeuge (Stichtag · Aktualisieren · Abmelden) hinter ⚙ */
.appbar{padding:7px 16px;gap:10px}
.appbar .logo{font-size:15px}
.appbar-spacer{flex:1}
.bar-toggle{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line-2);background:var(--panel);color:var(--ink-3);border-radius:8px;padding:4px 10px;font-size:13px;line-height:1;cursor:pointer}
.bar-toggle:hover{border-color:var(--ink-4);color:var(--ink)}
.bar-toggle .bt-cv{font-size:9px;transition:transform .18s}
.appbar.tools-open .bar-toggle{background:var(--panel-3);color:var(--ink);border-color:var(--ink-4)}
.appbar.tools-open .bar-toggle .bt-cv{transform:rotate(180deg)}
.appbar-tools{display:none;flex-basis:100%;align-items:center;gap:10px;flex-wrap:wrap;margin-top:1px;padding-top:8px;border-top:1px solid var(--line)}
.appbar.tools-open .appbar-tools{display:flex}
.appbar-tools .updated{font-size:11px}
.appbar-tools .who{font-size:11px;margin-left:auto}
.btn-sm{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:var(--panel);color:var(--ink-2);border-radius:7px;padding:5px 11px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.btn-sm:hover:not(:disabled){background:var(--panel-2);color:var(--ink)}
.btn-sm:disabled{opacity:.5;cursor:default}
.btn-sm.primary{background:#334155;border-color:#334155;color:#fff}
@media(max-width:680px){
  .appbar{padding:6px 12px;gap:8px}
  .appbar .logo{width:auto;font-size:15px}
  .appbar-tools{gap:8px}
  .appbar-tools .updated{width:auto}
  .appbar-tools .who{width:auto;margin-left:0}
  .appbar-tools .btn-sm{flex:1 1 auto;justify-content:center;min-height:36px}
}

/* ---- Legende: kompakte Pillen-Zeile ---- */
.lv-pill-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 7px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:7px 14px;box-shadow:var(--shadow);margin:14px 0 10px}
.lv-pill-row .grp-lab{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-4);font-weight:600;margin-right:2px}
.lv-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);cursor:default}
.lv-chip .d{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.lv-chip .b{width:9px;height:9px;border-radius:2.5px;flex:0 0 auto}
.lv-chip b{font-weight:600}
.lv-div{width:1px;align-self:stretch;background:var(--line);margin:0 3px}

/* ---- Standort-Filter: Checkbox-Liste (alle ein/aus/einzeln) ---- */
.ct-filter{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;margin-bottom:6px}
.ct-filter-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.ct-filter-cap{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);font-weight:600}
.ct-filter-count{font-size:12px;color:var(--ink-3);font-family:var(--mono)}
.ct-filter-spacer{flex:1}
.ct-bulk{border:1px solid var(--line-2);background:var(--panel);color:var(--ink-2);font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px;cursor:pointer}
.ct-bulk:hover:not(:disabled){background:var(--panel-3);color:var(--ink)}
.ct-bulk:disabled{opacity:.4;cursor:default}
.ct-checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1px 22px;margin-top:2px}
.kv-row{display:flex;align-items:center;gap:8px;padding:4px;border-radius:5px;cursor:pointer;user-select:none}
.kv-row:hover{background:var(--panel-2)}
.kv-row .dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.kv-row .code{font-family:var(--mono);font-weight:700;font-size:12px;min-width:32px}
.kv-row .name{font-size:12.5px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kv-row .cnt{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--ink-4);background:var(--panel-3);border-radius:999px;padding:0 7px}
.kv-row.off .name,.kv-row.off .code{color:var(--ink-4)}
.kv-cb{appearance:none;-webkit-appearance:none;width:15px;height:15px;flex:0 0 auto;border:1.5px solid var(--line-2);border-radius:4px;background:#fff;cursor:pointer;position:relative;transition:background .12s,border-color .12s}
.kv-cb:hover{border-color:var(--lc,var(--ink-3))}
.kv-cb:checked{background:var(--lc,var(--brand));border-color:var(--lc,var(--brand))}
.kv-cb:checked::after{content:'';position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(40deg)}
/* Standort-Filter als Akkordeon (auf-/zuklappbar) + Kürzel-only Raster (L1–L14 / M1–M6) */
.ct-filter.acc .ct-filter-head{cursor:pointer;user-select:none;margin-bottom:0}
.ct-filter.acc.open .ct-filter-head{margin-bottom:12px}
.ct-filter.acc.open .ct-loc-chev{transform:rotate(90deg)}
.ct-filter.acc .ct-filter-body{display:none}
.ct-filter.acc.open .ct-filter-body{display:block}
.ct-codes{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:2px 14px}
.ct-codes .code{min-width:34px}

/* KPIs — kleine, kompakte Variante (Pillen mit Farbpunkt statt großer Kacheln) */
.kpis.compact{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.kpis.compact .kpi{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;box-shadow:none;overflow:visible}
.kpis.compact .kpi .strip{position:static;width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.kpis.compact .kpi .v{font-size:16px;font-weight:800;line-height:1}
.kpis.compact .kpi .l{font-size:11.5px;margin:0;color:var(--muted);font-weight:600}
.kpis.compact .kpi.active{outline:2px solid #334155;outline-offset:1px}

/* Datenbereiche-Toggles (Lagerräume / Ein-/Auszüge / Warteliste) */
.src-toggles{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}
.src-cap{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);font-weight:600;margin-right:2px}
.src-tog{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;border:1.5px solid var(--line-2);background:var(--panel);color:var(--ink-3);font-size:12.5px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s,color .12s}
.src-tog::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--ink-4);flex:0 0 auto}
.src-tog:hover{border-color:var(--brand);color:var(--ink)}
.src-tog.on{border-color:color-mix(in oklab,var(--brand) 45%,var(--line-2));background:var(--brand-soft);color:var(--brand-ink)}
.src-tog.on::before{background:var(--brand)}

/* Größenfilter — einzelne Größen als anklickbare Pillen (eigener Bereich) */
.size-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}
.size-cap{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);font-weight:600;margin-right:2px}
.size-pills{display:flex;flex-wrap:wrap;gap:7px}
.size-pill{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--line-2);background:var(--panel);color:var(--ink-2);font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:999px;cursor:pointer;font-variant-numeric:tabular-nums;transition:background .12s,border-color .12s,color .12s}
.size-pill .sp-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.size-pill:hover{border-color:var(--brand);color:var(--ink)}
.size-pill.on{border-color:color-mix(in oklab,var(--brand) 45%,var(--line-2));background:var(--brand-soft);color:var(--brand-ink)}
.size-info{margin-left:auto;font-size:11px}
@media(max-width:680px){ .size-info{width:100%;margin-left:0;order:9} }

/* Filterzeile (Größe + Filter löschen) klein halten, v.a. mobil */
.filters{padding:7px 12px;gap:8px;margin-bottom:8px}
.filters label{font-size:11.5px}
.filters select{padding:5px 8px}
#clear{padding:6px 11px;font-size:12.5px}
@media(max-width:680px){
  .filters{padding:7px 10px;gap:7px}
  .filters label{flex:0 1 auto;font-size:11px}
  .filters select{flex:0 1 auto;min-height:32px}
  #clear{flex:0 1 auto;min-height:32px;width:auto}
  #finfo{width:auto}
  .src-toggles{gap:6px}
  .src-tog{padding:5px 10px;font-size:12px}
}

.ct-result-line{font-size:12px;color:var(--ink-4);font-family:var(--mono);margin:14px 2px 12px}

/* ---- getrennte Standort-Tabellen ---- */
.ct-tables{display:flex;flex-direction:column;gap:18px}
.ct-loc-section{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.ct-loc-header{display:flex;align-items:center;gap:9px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.ct-loc-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.ct-loc-code{font-family:var(--mono);font-weight:700;font-size:14px}
.ct-loc-name{font-weight:700;color:var(--ink)}
.ct-loc-brand{font-size:10.5px;letter-spacing:.04em;color:var(--ink-4);border:1px solid var(--line-2);border-radius:5px;padding:1px 6px;font-family:var(--mono)}
.ct-loc-spacer{flex:1}
.ct-loc-count{font-size:12px;color:var(--ink-3);font-family:var(--mono)}
/* Standort-Tabelle als Akkordeon: Kopf klickbar, Inhalt eingeklappt bis zum Aufklappen */
.ct-loc-header{cursor:pointer;user-select:none}
.ct-loc-section .ct-loc-header{border-bottom:none}
.ct-loc-section.open .ct-loc-header{border-bottom:1px solid var(--line)}
.ct-loc-chev{color:var(--ink-4);font-size:10px;margin-left:10px;transition:transform .18s;flex:0 0 auto}
.ct-loc-section.open .ct-loc-chev{transform:rotate(90deg)}
.ct-loc-body{display:none}
.ct-loc-section.open .ct-loc-body{display:block}
.ct-tbl{width:100%;border-collapse:collapse;font-size:13px}
.ct-tbl th{text-align:left;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-4);font-weight:600;padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.ct-tbl th.num,.ct-tbl td.num{text-align:right}
.ct-tbl td{padding:10px 12px;border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:top}
.ct-tbl tr:last-child td{border-bottom:none}
.ct-tbl tbody tr:hover td{background:var(--panel-2)}
.ct-td-size{vertical-align:middle}
.ct-size-chip{display:inline-block;min-width:30px;text-align:center;font-family:var(--mono);font-weight:700;font-size:12px;color:#fff;border-radius:6px;padding:2px 7px}
.ct-status{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:12px;font-weight:600;border-radius:999px;padding:2px 9px 2px 7px}
.ct-status-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}
.ct-td-name{font-weight:600;color:var(--ink);white-space:nowrap}
.ct-td-dates{white-space:nowrap;color:var(--ink-3);font-family:var(--mono);font-size:12px}
.ct-td-note{color:var(--ink-2);min-width:170px;max-width:300px;line-height:1.4}
.ct-td-note.empty{color:var(--ink-4)}
.ct-td-room{color:var(--ink-3);min-width:160px;line-height:1.4}
.ct-td-room b{color:var(--ink-2);font-weight:600}
.ct-td-room.ready{color:#15803d}.ct-td-room.ready b{color:#15803d}
.ct-td-room.backlog{color:#b45309}.ct-td-room.backlog b{color:#b45309}
.ct-td-room.late{color:#b91c1c}.ct-td-room.late b{color:#b91c1c}
.ct-empty{background:var(--panel);border:1px dashed var(--line-2);border-radius:var(--radius);padding:40px;text-align:center;color:var(--ink-3);font-size:14px}

/* ---- Mobile-Akkordeon ---- */
.ct-desktop-only{display:block}
.ct-mobile-acc{display:none;flex-direction:column;gap:8px}
.mv-acc-item{background:var(--panel);border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);overflow:hidden}
.mv-acc-h{display:flex;align-items:center;gap:8px;padding:11px 12px;cursor:pointer;user-select:none}
.mv-acc-h .d{width:10px;height:10px;border-radius:50%}
.mv-acc-h .code{font-family:var(--mono);font-weight:700;font-size:13px}
.mv-acc-h .name{font-size:12.5px;font-weight:600;color:var(--ink)}
.mv-acc-h .cnt{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--ink-3);background:var(--panel-3);border-radius:999px;padding:1px 8px}
.mv-acc-h .chev{color:var(--ink-4);font-size:10px;transition:transform .18s;margin-left:8px}
.mv-acc-item.open .mv-acc-h .chev{transform:rotate(90deg)}
.mv-acc-body{border-top:1px solid var(--line);display:none}
.mv-acc-item.open .mv-acc-body{display:block}
.mv-arow{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line)}
.mv-arow:last-child{border-bottom:none}
.mv-arow .sd{width:7px;height:7px;border-radius:50%;flex:0 0 auto;margin-top:4px}
.mv-arow .nm{font-size:12.5px;font-weight:600;color:var(--ink);flex:1 1 auto;min-width:0}
.mv-arow .meta{margin-left:auto;text-align:right;flex:0 0 auto}
.mv-arow .meta .dt{font-family:var(--mono);font-size:10.5px;color:var(--ink-4);display:block;white-space:nowrap}
.mv-arow .meta .rm{font-size:10.5px;font-weight:600;display:block;margin-top:2px}
.mv-arow .meta .rm.ready{color:#15803d}.mv-arow .meta .rm.backlog{color:#b45309}.mv-arow .meta .rm.late{color:#b91c1c}.mv-arow .meta .rm.none{color:var(--ink-4)}
.mv-sizechip{font-family:var(--mono);font-weight:700;font-size:11px;color:#fff;border-radius:5px;padding:1px 6px;min-width:26px;text-align:center;flex:0 0 auto;margin-top:1px}

@media(max-width:760px){
  .ct-desktop-only{display:none}
  .ct-mobile-acc{display:flex}
  .ct-checklist{grid-template-columns:1fr 1fr}
  .lv-pill-row{border-radius:var(--radius-sm)}
  .stichtag{order:1;width:auto}
}
@media(max-width:440px){
  .ct-checklist{grid-template-columns:1fr}
}

/* ============================================================
   Beziehungs-Akkordeons (Variante B) — acc-* / au-*
   Aus dem Design-Handoff (referenz/accordions.css), an das
   bestehende Warteliste-Lagerlink-Aussehen angepasst (Tokens + var(--mono)).
   ============================================================ */
.acc-head{margin:2px 2px 16px}
.acc-head .acc-sub{color:var(--ink-3);font-size:13px;line-height:1.6;max-width:880px}
.acc-head .acc-sub b{color:var(--ink-2)}

/* ---- Lagerraum-Filter (gilt für beide Beziehungen) ---- */
.acc-searchwrap{margin:0 2px 16px}
.acc-search{display:inline-flex;align-items:center;gap:8px;width:320px;max-width:100%;background:var(--panel);border:1px solid var(--line-2);border-radius:9px;padding:7px 8px 7px 11px;box-shadow:0 1px 2px rgba(20,32,46,.04)}
.acc-search:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in oklab, var(--brand) 16%, transparent)}
.acc-search-ico{color:var(--ink-4);display:grid;place-items:center;flex:0 0 auto}
.acc-search-input{flex:1 1 auto;min-width:0;border:none;background:transparent;font-family:var(--mono);font-size:13.5px;color:var(--ink);padding:2px}
.acc-search-input:focus{outline:none}
.acc-search-input::placeholder{color:var(--ink-4);font-family:inherit}
.acc-search-clear{border:none;background:var(--panel-3);color:var(--ink-3);width:21px;height:21px;border-radius:50%;font-size:15px;line-height:1;flex:0 0 auto;display:grid;place-items:center;cursor:pointer}
.acc-search-clear:hover{background:var(--line-2);color:var(--ink)}
.acc-search-res{font-size:12px;color:var(--ink-3);margin:8px 2px 0}
.acc-search-res b{font-family:var(--mono);color:var(--ink)}

/* ---- Master-Reiter ---- */
.acc-tabs{display:inline-flex;gap:4px;padding:4px;background:var(--panel-3);border:1px solid var(--line);border-radius:12px;margin-bottom:18px;flex-wrap:wrap}
.acc-tab{display:inline-flex;align-items:center;gap:10px;padding:11px 18px;border:none;background:transparent;border-radius:9px;color:var(--ink-3);font:inherit;font-size:14px;font-weight:500;cursor:pointer}
.acc-tab:hover{color:var(--ink)}
.acc-tab.on{background:var(--panel);color:var(--ink);font-weight:600;box-shadow:0 1px 3px rgba(20,32,46,.12)}
.acc-tab .ic{display:grid;place-items:center;color:var(--ink-4)}
.acc-tab.on .ic{color:var(--brand)}
.acc-tab .ar{color:var(--ink-4);font-weight:400}
.acc-tab .n{font-family:var(--mono);font-size:12px;background:var(--panel-2);border:1px solid var(--line-2);border-radius:999px;padding:0 8px;color:var(--ink-3)}
.acc-tab.on .n{background:color-mix(in oklab, var(--brand) 12%, #fff);border-color:color-mix(in oklab, var(--brand) 30%, var(--line));color:var(--brand-ink)}

/* ---- Legende innerhalb eines Reiters ---- */
.acc-legwrap{padding:2px 2px 8px}
.acc-legtoggle{display:inline-flex;align-items:center;gap:8px;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 11px;font:inherit;font-size:12px;color:var(--ink-3);font-weight:500;cursor:pointer}
.acc-legtoggle:hover{color:var(--ink);border-color:var(--line-2)}
.acc-legtoggle .caret{color:var(--ink-4);transition:transform .2s ease}
.acc-legtoggle.open .caret{transform:rotate(180deg)}
.acc-legwrap .acc-legend{padding-top:12px}
.acc-legend{display:flex;flex-wrap:wrap;gap:9px 22px;padding:10px 2px 14px}
.acc-legend.compact{padding:8px 2px 14px;gap:8px 18px}
.acc-leg{display:inline-flex;align-items:flex-start;gap:8px;font-size:12px}
.acc-leg .d{width:10px;height:10px;border-radius:50%;margin-top:3px;flex:0 0 auto}
.acc-leg .b{width:11px;height:11px;border-radius:3px;margin-top:2px;flex:0 0 auto}
.acc-leg .tx{line-height:1.35}
.acc-leg b{color:var(--ink);font-weight:600}
.acc-leg span{color:var(--ink-3)}
.acc-legcap{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);font-weight:600;align-self:center;margin-right:2px}

/* ---- Standort-Unterakkordeon ---- */
.acc-sub{border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:9px;overflow:hidden;background:var(--panel)}
.acc-sub.open{box-shadow:0 4px 14px -10px rgba(20,32,46,.2)}
.acc-sub-hd{width:100%;display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--panel-2);border:none;border-left:4px solid var(--lc,var(--ink-4));text-align:left;cursor:pointer;font:inherit}
.acc-sub-hd:hover{background:var(--panel-3)}
.acc-sub-hd .dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;background:var(--lc)}
.acc-sub-hd .c{font-family:var(--mono);font-weight:700;color:var(--lc)}
.acc-sub-hd .nm{font-weight:600;color:var(--ink)}
.acc-sub-hd .brand{font-size:10.5px;letter-spacing:.04em;color:var(--ink-4);border:1px solid var(--line-2);border-radius:5px;padding:1px 6px;font-family:var(--mono)}
.acc-sub-hd .sp{flex:1;min-width:6px}
.acc-sub-hd .mini{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11.5px;color:var(--ink-3)}
.acc-sub-hd .mini .pt{width:7px;height:7px;border-radius:50%}
.acc-sub-hd .caret{color:var(--ink-4);transition:transform .2s ease;margin-left:6px;flex:0 0 auto}
.acc-sub.open .acc-sub-hd .caret{transform:rotate(180deg)}
.acc-sub-bd{display:none;padding:6px 14px 12px;border-top:1px solid var(--line)}
.acc-sub.open .acc-sub-bd{display:block}
.acc-sub-bd .ct-tbl-scroll{overflow-x:auto}

/* ---- Auszug-Räume (Beziehung 2) ---- */
.au-room{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--panel);margin-bottom:9px}
.au-room:last-child{margin-bottom:0}
.au-room-hd{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--panel-2);border-bottom:1px solid var(--line);border-left:3px solid var(--au-c,var(--ink-4));flex-wrap:wrap}
.au-room-nr{font-family:var(--mono);font-weight:600;font-size:15px;color:var(--ink)}
.au-room-date{font-family:var(--mono);font-size:12.5px;color:var(--ink-2)}
.au-room-date .l{color:var(--ink-4)}
.au-room-hd .sp{flex:1;min-width:6px}
/* Reiter 2: aufklappbarer Raum + Deep-Link + manuelle Markierung */
.au-room-hd{cursor:pointer}
.au-room-hd .caret{color:var(--ink-4);transition:transform .2s ease;flex:0 0 auto}
.au-room.open .au-room-hd .caret{transform:rotate(180deg)}
a.au-room-nr{text-decoration:none;border-bottom:1px dashed transparent}
a.au-room-nr:hover{color:var(--brand-ink);border-bottom-color:currentColor}
.au-room-cnt{font-size:11.5px;font-weight:600;color:var(--ink-3);background:var(--panel);border:1px solid var(--line-2);border-radius:999px;padding:2px 9px;white-space:nowrap}
.au-room-cnt.match{color:#15803d;background:#e7f6ec;border-color:#bfe6cc}
.au-room-cnt.none{color:var(--ink-4);font-style:italic}
.au-mark-edit{border:none;background:transparent;color:var(--ink-4);cursor:pointer;font-size:12px;line-height:1;padding:0 2px;opacity:.75;flex:0 0 auto}
.au-mark-edit:hover{opacity:1;color:#15803d}
.au-mark-btns{display:inline-flex;gap:5px;flex:0 0 auto}
/* API-Hinweis aus dem Verwaltungssystem („Hinweis zum Lagerraum") — read-only, im Kopf */
.au-apinote{display:inline-flex;align-items:center;gap:5px;min-width:0;max-width:340px;font-size:12px;color:var(--ink-3)}
.au-apinote svg{flex:0 0 auto;color:var(--ink-4)}
.au-apinote .tx{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
/* Eigene Tool-Notiz: Zeile unter dem Kopf — Farbe nach Markierung (✕ rot, ✓ grün, ? gelb) */
.au-room-note{display:flex;align-items:flex-start;gap:8px;padding:8px 14px 8px 17px;border-bottom:1px solid var(--line);background:var(--panel-2);font-size:12.5px;font-weight:600;line-height:1.4}
.au-room-note .tx{flex:1;white-space:pre-wrap;word-break:break-word;min-width:0}
.au-room-note.mark-issue .tx{color:#dc2626}
.au-room-note.mark-free .tx{color:#15803d}
.au-room-note.mark-unclear .tx{color:#ca8a04}
.au-room-note.mark-none .tx{color:var(--ink-2)}
.au-room-note.edit{display:block;font-weight:400}
.au-room-note.empty{background:transparent;font-weight:400}
.au-room-note .au-mark-edit{color:inherit}
.au-room-note .au-mark-edit:hover{color:inherit;opacity:1}
.au-room.mark-issue{opacity:.74}
.au-room.mark-issue>.au-room-hd{border-left-color:#dc2626}
.au-room.mark-unclear>.au-room-hd{border-left-color:#ca8a04}
.au-room.mark-free>.au-room-hd{border-left-color:#15803d}
.au-cands{display:flex;flex-direction:column}
.au-cand{display:flex;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.au-cand:last-child{border-bottom:none}
.au-cand-fit{flex:0 0 86px;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600}
.au-cand-fit .d{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.au-cand-name{font-weight:600;color:var(--ink)}
.au-cand-win{font-family:var(--mono);font-size:12px;color:var(--ink-3);white-space:nowrap}
.au-cand-win .l{color:var(--ink-4)}
.au-cand .sp{flex:1;min-width:6px}
.au-cand-meta{font-size:11.5px;color:var(--ink-4);max-width:300px;text-align:right}
.au-none{padding:11px 14px;font-size:12.5px;color:var(--ink-4);font-style:italic}

@media(max-width:720px){
  .au-cand-meta{display:none}
  .acc-tab{padding:10px 13px;font-size:13px}
}

/* ---- Such-Treffer-Markierung (Omni-Suche: Raum · Standort · Kunde) ---- */
mark.hl{background:color-mix(in oklab, var(--brand) 26%, #fff);color:inherit;border-radius:3px;padding:0 1px}
.au-cand.match{background:color-mix(in oklab, var(--brand) 7%, #fff)}

/* ---- Status-Filter Akut/Zeitnah als anklickbare Legende (Reiter 1) ---- */
.acc-leg-btn{border:1.5px solid var(--line-2);background:var(--panel);border-radius:999px;padding:4px 12px;cursor:pointer;font:inherit;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;transition:background .12s,border-color .12s,opacity .12s}
.acc-leg-btn:hover{border-color:var(--ink-4)}
.acc-leg-btn .dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.acc-leg-btn .n{font-family:var(--mono);color:var(--ink-3);font-weight:700}
.acc-leg-btn.off{opacity:.45}
.acc-leg-btn.on.akut{border-color:#dc2626;background:color-mix(in oklab,#dc2626 9%,#fff)}
.acc-leg-btn.on.zeitnah{border-color:#d97706;background:color-mix(in oklab,#d97706 9%,#fff)}

/* ============================================================
   Vermerke — Kontakt-Zeile, Aktions-Buttons, Inline-Editoren,
   Reiter 3 (nicht vorbereitet) und Lösch-Liste
   ============================================================ */
/* Zeile unter dem Kundennamen: Telefon · E-Mail · wartet seit · kontaktiert */
.wsub{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:3px;font-weight:400;white-space:normal}
.wsub .cl{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink-3);text-decoration:none;font-family:var(--mono)}
.wsub .cl:hover{color:var(--brand);text-decoration:underline}
.wsub .ws{font-size:11px;color:var(--ink-4);font-family:var(--mono)}
.cn-chip{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;color:#15803d;background:#e7f6ec;border-radius:999px;padding:1px 8px;white-space:nowrap}
/* Aktueller Mieter im Raum-Kopf (nur Reiter 2 / frei werdend) */
.au-room-tenant{display:inline-flex;align-items:center;gap:5px;min-width:0;max-width:260px;font-size:12.5px;font-weight:600;color:var(--ink-3);font-family:var(--mono)}
.au-room-tenant svg{color:var(--ink-4);flex:0 0 auto}
.au-room-tenant .tx{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
/* Kontakt-Notiz im Volltext (grün, wie die Raum-Notiz-Zeile) */
.wnote{font-size:12px;font-weight:600;color:#15803d;line-height:1.4}
.wnote .tx{white-space:pre-wrap;overflow-wrap:anywhere}
.au-cand .wnote{flex:1 1 100%;margin-top:1px}

/* Aktions-Buttons je Wartendem (✓ Kontakt-Vermerk, ✕ Lösch-Liste) */
.wact{display:inline-flex;gap:5px}
.wbtn{width:24px;height:24px;border:1px solid var(--line-2);background:var(--panel);color:var(--ink-3);border-radius:6px;font-size:12px;line-height:1;cursor:pointer;display:inline-grid;place-items:center;flex:0 0 auto}
.wbtn:hover{border-color:var(--ink-4);color:var(--ink)}
.wbtn.on{background:#e7f6ec;border-color:#15803d;color:#15803d}
.wbtn.del:hover{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}
.wbtn.del.on{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}
.wbtn.warn{font-weight:700}
.wbtn.warn:hover{background:#fef9c3;border-color:#ca8a04;color:#ca8a04}
.wbtn.warn.on{background:#fef9c3;border-color:#ca8a04;color:#ca8a04}
.ct-td-act{white-space:nowrap;text-align:right}

/* Inline-Editor (Kontakt-Notiz + Raum-Notiz) */
tr.ct-editrow td{background:var(--panel-2)}
.cn-edit{display:flex;flex-direction:column;gap:8px;padding:4px 0}
.cn-check{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.cn-text{width:100%;max-width:520px;font:inherit;font-size:13px;padding:8px 10px;border:1px solid var(--line-2);border-radius:8px;resize:vertical;background:#fff}
.cn-text:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in oklab, var(--brand) 14%, transparent)}
.cn-btns{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cn-meta{font-size:11px;color:var(--ink-4);font-family:var(--mono)}
.au-cand .wsub{flex:1 1 100%;margin-top:0}
.au-cand .wact{margin-left:6px}
.au-cand-edit{padding:6px 14px 12px;border-bottom:1px solid var(--line);background:var(--panel-2)}

/* Reiter 3 — freie, nicht vorbereitete Räume */
.bl-hint{font-size:12.5px;color:var(--ink-3);margin:2px 2px 12px}
.bl-days{color:var(--ink-4);font-size:11px}
.bl-notecell{min-width:240px}
.bl-notemeta{display:inline-block;margin-left:8px;font-size:10.5px;color:var(--ink-4);font-family:var(--mono)}
.bl-addnote{border:1px dashed var(--line-2);background:transparent;color:var(--ink-3);border-radius:999px;padding:3px 11px;font-size:12px;font-weight:600;cursor:pointer}
.bl-addnote:hover{border-color:var(--brand);color:var(--brand-ink);background:var(--brand-soft)}

/* Lösch-Liste (versteckter Bereich ganz unten) */
.del-acc{margin-top:28px}
.del-ico{font-size:13px}
.del-hint{font-size:12px;color:var(--ink-3);margin-bottom:10px}
.del-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 4px;border-bottom:1px solid var(--line)}
.del-row:last-child{border-bottom:none}
.del-row .sp{flex:1;min-width:6px}
.del-name{font-weight:600;color:var(--ink)}
.del-meta{font-size:11.5px;color:var(--ink-3);font-family:var(--mono)}

/* Hinweis „alter Stand" (Quelle nicht erreichbar) statt rotem Fehler */
#err.stale{background:#fffaf2;border-color:#f3dcae;color:#92400e}
