/* QR-Service-Plattform: Bestellseite, Etikett-Tool, Einstellungen, Betreiber. Farben je Mandant kommen als :root-Variablen aus lib.php (farbe_style). */
:root{
  --blue:#005aaa; --blue-dark:#013e75; --blue-deep:#06243f; --blue-tint:#eef4fa;
  --ink:#17202a; --ink-soft:#536173; --ink-3:#7b8794; --line:#e3e8ee; --line-strong:#c9d2dc;
  --paper:#fff; --paper-2:#f6f8fb; --accent:#00a0e3; --radius:14px;
  --ok:#1e7d4f; --ok-soft:#e3f3e9; --warn:#9a5a0b; --warn-soft:#fbeedb; --bad:#a23b2a; --bad-soft:#f9e4e0;
  --reinigung:#1f5fa8; --reinigung-soft:#e4eef9; --pflege:#2e7d4f; --pflege-soft:#e3f3e9; --klar:#0e7c8c; --klar-soft:#def3f5;
  --entkalk:#a8620c; --entkalk-soft:#fbeedb; --milch:#8a5a2b; --milch-soft:#f5ebe0;
  --head:'Archivo','Arial Narrow',Arial,sans-serif; --body:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif; --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{color-scheme:light}
body{margin:0;background:var(--paper-2);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--blue)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
h1,h2,h3{margin:0;font-family:var(--head);line-height:1.15;text-wrap:balance}
p{margin:0}
.wrap{max-width:1100px;margin:0 auto;padding-inline:16px}
.mono{font-family:var(--mono)}
.num{font-variant-numeric:tabular-nums}

/* Kopf wie Webseite */
.ch-head{background:#fff;border-bottom:1px solid var(--line)}
.topbar{background:var(--blue-deep);color:#cfe0ef;font-size:12.5px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:38px;gap:12px}
.topbar a{color:#cfe0ef;text-decoration:none}
.topbar .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#2ecc71;margin-right:7px;vertical-align:middle}
.brandrow{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:64px;padding-block:8px}
.brandrow .logo img{height:36px;display:block}
.brandrow .tag{font-family:var(--head);font-weight:700;color:var(--blue);font-size:15px;letter-spacing:.01em;text-align:right}
.brandrow .user{color:var(--ink-soft);font-size:13.5px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.langs{display:inline-flex;border:1px solid rgba(255,255,255,.35);border-radius:7px;overflow:hidden;margin-left:6px}
.langs button{border:0;background:transparent;padding:3px 9px;font-size:12px;font-weight:700;color:#cfe0ef;letter-spacing:.04em}
.langs button[aria-pressed="true"]{background:#fff;color:var(--blue-deep)}
.langs a{display:inline-block;padding:3px 9px;font-size:12px;font-weight:700;color:#cfe0ef;letter-spacing:.04em;text-decoration:none}
.langs a[aria-current="true"]{background:#fff;color:var(--blue-deep)}
.topbar .tbright{display:inline-flex;align-items:center;gap:10px}
@media (max-width:560px){.topbar .tbuser{display:none}}
.ch-foot{background:var(--blue-deep);color:#cfe0ef;font-size:13px;margin-top:40px}
.ch-foot .wrap{display:flex;justify-content:space-between;gap:10px 24px;flex-wrap:wrap;padding-block:16px}
.ch-foot a{color:#fff;text-decoration:none}

/* Bausteine */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--head);font-weight:700;font-size:15px;padding:11px 18px;border-radius:12px;border:1.5px solid transparent;min-height:46px;white-space:nowrap;text-decoration:none;transition:.15s}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{background:var(--blue-dark)}
.btn-light{background:#fff;color:var(--blue);border-color:var(--line)}
.btn-light:hover{border-color:var(--blue)}
.btn-sm{min-height:36px;padding:6px 12px;font-size:14px;border-radius:10px}
.btn-block{width:100%}
.btn:disabled{opacity:.45;cursor:not-allowed}
.link{background:none;border:0;padding:0;color:var(--blue);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.field{display:grid;gap:5px}
.field label{font-size:13px;font-weight:600;color:var(--ink-soft)}
.field input,.field select,.field textarea{padding:10px 12px;border-radius:10px;border:1px solid var(--line-strong);background:#fff;width:100%;min-height:42px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px rgba(0,90,170,.12)}
.field textarea{resize:vertical;font:inherit;line-height:1.4}
.field input.mono{font-family:var(--mono);text-transform:uppercase}
.field input.mono::placeholder{text-transform:none;font-family:var(--body)}
.field small{color:var(--ink-3);font-size:12.5px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){.grid2{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:grid;gap:16px}
.card h2{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-family:var(--body)}
.card h2 small{font-weight:500;letter-spacing:0;text-transform:none;margin-left:6px}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.z{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:5px;margin-bottom:3px}
.z-reinigung{background:var(--reinigung-soft);color:var(--reinigung)}.z-pflege{background:var(--pflege-soft);color:var(--pflege)}.z-klar{background:var(--klar-soft);color:var(--klar)}.z-entkalk{background:var(--entkalk-soft);color:var(--entkalk)}.z-milch{background:var(--milch-soft);color:var(--milch)}.z-ind{background:#eef1f5;color:#3b4a5a}
.okbox{padding:10px 12px;border-radius:10px;background:var(--ok-soft);color:var(--ink-soft);font-size:13.5px;border-left:3px solid var(--ok)}
.hintbox{padding:10px 12px;border-radius:10px;background:var(--warn-soft);color:var(--ink-soft);font-size:13.5px;border-left:3px solid var(--warn)}
.badbox{padding:10px 12px;border-radius:10px;background:var(--bad-soft);color:var(--ink);font-size:13.5px;border-left:3px solid var(--bad)}
.fine{color:var(--ink-3);font-size:12.5px;line-height:1.4}

/* ---------- Bestellseite (Kunde) ---------- */
.kstage{max-width:520px;margin:0 auto;padding-block:20px 10px;padding-inline:16px}
.phone{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 18px 50px -30px rgba(6,36,63,.35)}
.kscreen{padding:20px 18px 22px;display:grid;gap:18px}
.plate .l{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.plate .sn{font-family:var(--mono);font-weight:700;font-size:26px;line-height:1.1;word-break:break-all;color:var(--blue-deep)}
.plate .typ{font-family:var(--head);font-weight:700;font-size:18px;margin-top:6px}
.plate .typ .mod{white-space:nowrap}
.plate .typ2{font-family:var(--head);font-weight:600;font-size:15px;color:var(--ink-soft)} /* deutscher Gerätename unter dem französischen */
.plate .where{color:var(--ink-soft);font-size:14px}
.check{display:grid;gap:3px;padding:12px 14px;border-radius:12px;background:var(--blue-tint);font-size:14px;color:var(--ink-soft)}
.check .l{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:2px}
.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.row .n{font-weight:600;font-size:16px;line-height:1.25}
.row .n2{color:var(--ink-soft);font-size:14px;line-height:1.25;margin-top:1px} /* deutscher Produktname unter dem französischen */
.row .g{color:var(--ink-3);font-size:13px;margin-top:3px;font-family:var(--mono)}
.row.off .n,.row.off .n2,.row.off .g{color:var(--ink-3)}
.step{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:12px;overflow:hidden;background:#fff}
.step button{width:46px;height:46px;border:0;background:var(--paper-2);font-size:24px;line-height:1;color:var(--ink-soft)}
.step output{min-width:44px;text-align:center;font-family:var(--head);font-weight:800;font-size:22px}
.row:not(.off) .step .plus{background:var(--blue-tint);color:var(--blue)}
.order{display:grid;gap:10px}
.order .btn{min-height:54px;font-size:17px;border-radius:14px}
.order .cnt{text-align:center;color:var(--ink-soft);font-size:14px}
.svc{margin-top:6px;padding:16px 16px 18px;border:1px dashed var(--line-strong);border-radius:14px;display:grid;gap:8px;background:var(--paper-2)}
.svc .l{font-weight:700;font-size:15px;color:var(--ink)}
.svc p{font-size:13.5px;color:var(--ink-soft);margin:0}
.svc .btn{min-height:48px;font-size:15.5px;margin-top:4px}
.svc-title{font-size:22px;color:var(--blue-deep);margin:4px 0 0}
.svc-check{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}
.svc-check input{width:20px;height:20px;accent-color:var(--blue);margin:0}
.done + .plate{margin-top:0}
.done{display:grid;gap:12px;text-align:center;padding-top:8px}
.done .okc{width:64px;height:64px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;margin:0 auto}
.done .okc svg{width:30px;height:30px}
.done h1{font-size:30px}
.done .no{font-family:var(--mono);font-size:18px;color:var(--blue)}
.done p{color:var(--ink-soft)}
.sum{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:6px;font-size:14px;text-align:left}
.sum div{display:flex;justify-content:space-between;gap:12px}
.sum div span:last-child{font-weight:600;white-space:nowrap}
.err{max-width:520px;margin:30px auto;padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff;display:grid;gap:10px}

/* ---------- Internes Tool ---------- */
.tool{padding-block:22px 40px}
.top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.top h1{font-size:clamp(26px,3.5vw,34px);font-weight:800;color:var(--blue-deep)}
.top p{color:var(--ink-soft);margin-top:6px;max-width:48em}
.cols{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}
@media (min-width:960px){.cols{grid-template-columns:minmax(0,480px) minmax(0,1fr);gap:32px}}
.sub{display:grid;gap:12px;padding-top:14px;border-top:1px solid var(--line)}
.sub:first-of-type{border-top:0;padding-top:0}
.chem{display:grid;gap:8px}
.chemrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2)}
.chemrow .onlabel{width:18px;height:18px;min-height:0;padding:0;margin:0 2px;accent-color:var(--blue);cursor:pointer}
.chemrow.off{opacity:.55;background:#fff;border-style:dashed}
.chemrow.off .n{text-decoration:line-through;text-decoration-color:var(--ink-3)}
.indrow{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) 64px auto;gap:8px;align-items:center}
.indrow input{padding:8px 10px;border-radius:8px;border:1px solid var(--line-strong);background:#fff;min-height:36px;width:100%}
.indrow input[type=number]{text-align:center}
.indrow .x{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink-3);cursor:pointer;font-size:16px;line-height:1}
.indrow .x:hover{border-color:var(--bad);color:var(--bad)}
.indrow .x[hidden]{visibility:hidden;display:block}
@media (max-width:520px){.indrow{grid-template-columns:minmax(0,1fr) 64px auto}.indrow input[data-ind=a]{grid-column:1/-1}}
.chemrow .n{font-weight:600;font-size:14px;line-height:1.25}
.chemrow .n span{display:block;color:var(--ink-3);font-weight:500;font-size:12px;font-family:var(--mono)}
.chemrow select,.chemrow input{padding:6px 8px;border-radius:8px;border:1px solid var(--line-strong);background:#fff;min-height:34px}
.chemrow input{width:64px;text-align:center}
.btnrow{display:flex;gap:10px;flex-wrap:wrap}
.right{display:grid;gap:20px}
.stage{background:var(--paper-2);border:1px dashed var(--line-strong);border-radius:14px;padding:18px;display:grid;justify-items:center;gap:10px;overflow-x:auto}
.meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;color:var(--ink-3);font-size:13px}
.qrlink{font-family:var(--mono);font-size:11.5px;color:var(--ink-3);word-break:break-all;line-height:1.4}
.queue{display:grid;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.qrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border-top:1px solid var(--line);background:#fff}
.qrow:first-child{border-top:0}
.qrow .t{font-weight:600;font-size:14px;line-height:1.3}
.qrow .t b{font-family:var(--mono);font-weight:700;color:var(--blue)}
.qrow .t span{display:block;color:var(--ink-3);font-weight:500;font-size:12.5px}
.qrow .x{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink-3);font-size:16px}
.empty{padding:14px;border:1px dashed var(--line-strong);border-radius:12px;color:var(--ink-3);font-size:14px;text-align:center}
.seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-strong);border-radius:10px;overflow:hidden}
.seg label{position:relative}
.seg input{position:absolute;opacity:0;inset:0;margin:0}
.seg span{display:block;text-align:center;padding:9px 6px;font-size:13.5px;font-weight:600;color:var(--ink-soft);background:#fff;border-left:1px solid var(--line-strong)}
.seg label:first-child span{border-left:0}
.seg input:checked+span{background:var(--blue-deep);color:#fff}
details.box{border:1px solid var(--line);border-radius:12px;background:#fff}
details.box summary{cursor:pointer;padding:12px 14px;font-weight:600;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px}
details.box summary::-webkit-details-marker{display:none}
details.box .body{padding:0 14px 14px;display:grid;gap:12px;border-top:1px solid var(--line);padding-top:14px}
.scanbox{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:12px 14px;border:1px dashed var(--line-strong);border-radius:14px;background:#fff}
.scanbox .bigqr{width:130px;height:130px;background:#fff;padding:6px;border-radius:8px;border:1px solid var(--line)}
.scanbox .bigqr svg{width:100%;height:100%;display:block}
.scanbox b{font-weight:600}
.scanbox p{color:var(--ink-3);font-size:13px;margin-top:2px}
table.users{width:100%;border-collapse:collapse;font-size:14px}
table.users th,table.users td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:middle}
table.users th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--paper-2);color:var(--ink-soft)}
.pill.on{background:var(--ok-soft);color:var(--ok)}
.pill.off{background:var(--bad-soft);color:var(--bad)}

/* Anmeldung */
.login{max-width:420px;margin:48px auto;padding-inline:16px}
.login .card{padding:24px}
.login h1{font-size:24px;color:var(--blue-deep)}
.login .logo img{height:40px;display:block;margin-bottom:8px}

/* ---------- Etikett (physisch: schwarz auf weiß) ---------- */
/* 90 × 36 mm. Brother P-touch bedruckt auf 36-mm-Band nur 32 mm Höhe → oben/unten je 2 mm frei lassen (Druckzone 32 mm). */
.lbl{width:90mm;height:36mm;padding:2mm 0;background:#fff;color:#000;display:grid;grid-template-rows:auto minmax(0,1fr) auto;font-family:var(--body);position:relative;box-sizing:border-box;flex:none;overflow:hidden}
.lbl .bar{background:#fff;color:#000;padding:.2mm 3mm .35mm;display:grid;gap:.1mm;text-align:center;border-bottom:.35mm solid #000}
.lbl .bar .h1{font-family:var(--head);font-weight:800;font-size:8.4pt;line-height:1.05;letter-spacing:.02em;white-space:nowrap}
.lbl .bar .h2{font-family:var(--head);font-weight:700;font-size:6.2pt;line-height:1.05;letter-spacing:.03em;white-space:nowrap;color:#222}
.lbl .body{display:grid;grid-template-columns:21.5mm minmax(0,1fr);gap:2.5mm;padding:.3mm 3mm .2mm;align-items:center;min-height:0}
.lbl .qr{width:21.5mm;height:21.5mm}
.lbl .qr svg{width:100%;height:100%;display:block}
.lbl .txt{display:grid;gap:0;min-width:0;align-content:center} /* ohne Scan-Anleitung (seit v39) – Platz für größere Gerätezeile und Seriennummer */
.lbl .brand{font-family:var(--head);font-weight:800;font-size:9.2pt;line-height:1;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lbl .dev{font-size:7.4pt;font-weight:600;line-height:1.2;margin-top:1.4mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lbl .dev span{font-weight:500;color:#333}
.lbl .dev.de{margin-top:0;font-weight:500;color:#333} /* deutscher Gerätename unter dem französischen (nur wenn verschieden) */
.lbl .dev.s1{font-size:6.5pt}.lbl .dev.s2{font-size:6pt}.lbl .dev.s3{font-size:5.5pt} /* lange Zeilen (> 46 / > 54 Zeichen) */
.lbl .sn{margin-top:1.3mm;line-height:1.1;white-space:nowrap;overflow:hidden} /* Beschriftung über der Nummer – volle Spaltenbreite für die Seriennummer */
.lbl .sn .l{display:block;font-size:5.4pt;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#333;margin-bottom:.4mm}
.lbl .sn .v{display:block;font-family:var(--mono);font-weight:700;font-size:11pt;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis}
.lbl .sn .v.long{font-size:9pt}.lbl .sn .v.xlong{font-size:6.8pt} /* > 25 / > 31 Zeichen */
.lbl .foot{border-top:.3mm solid #000;padding:.25mm 2mm 0;font-size:7.4pt;font-weight:700;line-height:1.1;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;display:flex;align-items:baseline;justify-content:center;gap:1mm}
.lbl .foot span{color:#000}
.screen-lbl{box-shadow:0 1px 2px rgba(0,0,0,.2),0 6px 18px rgba(0,0,0,.15);border-radius:1.5mm;outline:1px solid #b5bec6}

/* ---------- Druck ---------- */
#printArea{display:none}
@media print{
  body{background:#fff}
  .ch-head,.ch-foot,main{display:none !important}
  html,body{margin:0;padding:0}
  #printArea{display:block}
  #printArea.tape .lbl{break-after:page;page-break-after:always}
  #printArea.tape .lbl:last-child{break-after:auto;page-break-after:auto}
  #printArea.a4{display:flex;flex-wrap:wrap;gap:6mm;align-content:flex-start}
  #printArea.a4 .lbl{outline:.3mm dashed #999}
}

/* ---------- Plattform-Ergänzungen ---------- */
.brandrow .logo .brandtext{font-family:var(--head);font-weight:800;font-size:22px;color:var(--blue);letter-spacing:-.01em}
.lbl .bar .h1.one{font-size:9.6pt;padding:.6mm 0 .5mm}
.topbar .nav a{margin-left:14px;font-weight:600}
.topbar .nav a[aria-current]{text-decoration:underline;text-underline-offset:3px}
/* Anmeldung */
.login .card .or{display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:12.5px}
.login .card .or::before,.login .card .or::after{content:"";flex:1;height:1px;background:var(--line)}
.login .code{font-family:var(--mono);font-size:22px;letter-spacing:.2em;text-align:center}
.secretbox{font-family:var(--mono);font-size:14px;word-break:break-all;background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;text-align:center}
.totpqr{width:180px;height:180px;margin:0 auto;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}
.totpqr svg{width:100%;height:100%;display:block}
/* Einstellungen und Betreiber */
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:18px}
.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:10px 14px;font-weight:600;color:var(--ink-soft);margin-bottom:-1px}
.tabs button[aria-selected="true"]{color:var(--blue);border-bottom-color:var(--blue)}
.table{width:100%;border-collapse:collapse;font-size:13.5px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.table th,.table td{text-align:left;padding:8px 10px;border-top:1px solid var(--line);vertical-align:top}
.table th{background:var(--paper-2);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);border-top:0}
.table td.mono{font-family:var(--mono);font-size:12.5px}
.table .num{text-align:right}
.tablewrap{overflow:auto;border-radius:12px}
.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--paper-2);color:var(--ink-soft);border:1px solid var(--line)}
.pill.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.pill.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.pill.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}
.colorrow{display:flex;gap:10px;align-items:center}
.colorrow input[type=color]{width:52px;height:42px;padding:2px;border-radius:10px;border:1px solid var(--line-strong);background:#fff}
.logoprev{height:44px;max-width:220px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:8px;padding:4px}
.weichen{display:grid;gap:8px}
.weiche{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;gap:8px;align-items:center}
.weiche input,.weiche select{padding:8px 10px;border-radius:8px;border:1px solid var(--line-strong);background:#fff;min-height:38px;width:100%}
.langpick{display:flex;gap:8px;flex-wrap:wrap}
.langpick label{display:flex;gap:8px;align-items:center;padding:8px 12px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;cursor:pointer}
.langpick input{accent-color:var(--blue)}
.dz{border:2px dashed var(--line-strong);border-radius:12px;padding:18px;text-align:center;color:var(--ink-soft);background:#fff}
.dz input{display:block;margin:10px auto 0}
.report{display:grid;gap:6px;font-size:13.5px}
.report .bad{color:var(--bad);font-weight:600}
.report .warn{color:var(--warn)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}
.kpi b{display:block;font-family:var(--head);font-size:24px;color:var(--blue)}
.kpi span{font-size:12.5px;color:var(--ink-3)}
.mandant-list .qrow .t b{font-family:var(--body)}
code.inline{font-family:var(--mono);font-size:12.5px;background:var(--paper-2);padding:1px 6px;border-radius:6px;border:1px solid var(--line)}
.copybox{display:flex;gap:8px;align-items:center}
.copybox input{flex:1;font-family:var(--mono);font-size:12.5px}
@media print{.tabs,.topbar .nav{display:none}}

/* Online-Tabelle Geräte und Chemie */
.table.se td{padding:6px 6px;vertical-align:top}
.table.se input,.table.se select{padding:6px 8px;border-radius:8px;border:1px solid var(--line-strong);background:#fff;min-height:34px;font-size:13.5px;width:100%}
.table.se input.mono{font-family:var(--mono);font-size:12.5px}
.table.se input[type=checkbox]{width:18px;height:18px;min-height:0;accent-color:var(--blue);margin-top:8px}
.table.se{overflow:visible}
.table.se th{white-space:nowrap}
.table.se th.dev{white-space:normal;max-width:170px;min-width:140px;line-height:1.25;text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:600;color:var(--ink-soft)}
.table.se select[data-se="p.z"]{min-width:130px}
/* Hersteller und Bezeichnung bleiben beim seitlichen Scrollen sichtbar */
.table.se th:nth-child(1),.table.se td:nth-child(1){position:sticky;left:0;background:#fff;z-index:2}
.table.se th:nth-child(2),.table.se td:nth-child(2){position:sticky;left:136px;background:#fff;z-index:2;box-shadow:4px 0 6px -4px rgba(0,0,0,.15)}
.table.se th:nth-child(1),.table.se th:nth-child(2){background:var(--paper-2);z-index:3}
.table.se td:nth-child(1){min-width:136px}
