/* Gemeinsame Gestaltung: Grundlayout, Bedienelemente und die Darstellungsvarianten (Skins) */
:root{
  --brand:#470099; --brand2:#6cc24a; --brand-ink:#470099;
  --bg:#d9dcdf; --surface:#ffffff; --surface2:#f1f3f5; --border:#b9bec4; --text:#1b1e21; --muted:#5d646c;
  --accent:#1d5f7a; --ok:#2e9e3f; --warn:#c77700; --crit:#d01f1f;
  --f-ui:"Segoe UI",system-ui,Tahoma,Arial,sans-serif; --f-mono:Consolas,"Cascadia Mono","Courier New",monospace;
  /* Anlagenbild: GLT klassisch (Standard) */
  --canvas:#e4e6e9; --sym-fill:#ffffff; --sym-stroke:#4a4f55; --run-fill:#dff3e2; --run-stroke:#2e9e3f; --run-imp:#4a4f55;
  --tile-top:#d5d8dc; --tile-border:#a7adb4; --tile-band:#4d6789; --tile-val:#ffffff; --tile-lbl:#5d646c; --tile-stale:#9aa0a6; --tile-missing:#c4c8cc;
  --p-vl:#ee7f6a; --p-rl:#9aa5ee; --p-fvl:#d2493a; --p-frl:#6474d4; --p-ww:#e39a2f; --p-zirk:#efc27a; --pipe-w:3.5;
  --g1:#8f969d; --g2:#eceef0; --g3:#7d848b; --bar1:#ecd3b4; --bar2:#c79c74; --bar-stroke:#9b7a5a; --bar-text:#3b2a1a;
  --frame1:#5b6168; --frame2:#9aa1a8; --station-fill:#eef0f2; --station-stroke:#8a9097; --plate-a:#ee7f6a; --plate-b:#9aa5ee; --lcd:#1b2a21;
}
@media (prefers-color-scheme: dark){:root{
  --bg:#15181b; --surface:#1f2327; --surface2:#272c31; --border:#3a4148; --text:#e7eaee; --muted:#9aa3ad;
  --accent:#4fa3c4; --ok:#46c25a; --warn:#f0a020; --crit:#ff5a52; color-scheme:dark; --brand-ink:#c3a6ff;
  --canvas:#262a2f; --sym-fill:#353b41; --sym-stroke:#c3c9cf; --run-fill:#24452b; --run-imp:#c3c9cf;
  --tile-top:#3a4047; --tile-border:#4f575f; --tile-band:#3f6290; --tile-lbl:#9aa3ad; --tile-stale:#5f666d; --tile-missing:#4a5057;
  --g1:#3c4248; --g2:#79818a; --g3:#353b41; --station-fill:#2c3136; --station-stroke:#59616a; --bar-text:#2a1d10}}

/* Modern: hell, klare Farben, runde Rohre */
body[data-skin="modern"]{
  --canvas:#f6f7f9; --sym-fill:#ffffff; --sym-stroke:#2a2f37; --run-fill:#e3f6e8; --run-stroke:#1f9d55; --run-imp:#2a2f37;
  --tile-top:#ffffff; --tile-border:#dde1e6; --tile-band:#eef2f6; --tile-val:#15191f; --tile-lbl:#667080; --tile-stale:#e4e6ea; --tile-missing:#f0f1f3;
  --p-vl:#e0443e; --p-rl:#2c6be0; --p-fvl:#b4231d; --p-frl:#1d4fb0; --p-ww:#e08a1e; --p-zirk:#f0b45a; --pipe-w:5;
  --g1:#dfe3e8; --g2:#ffffff; --g3:#d3d8de; --bar1:#f1f3f6; --bar2:#dfe3e8; --bar-stroke:#b9c0c8; --bar-text:#2a2f37;
  --frame1:#8a929b; --frame2:#c6ccd2; --station-fill:#ffffff; --station-stroke:#c6ccd2; --plate-a:#e0443e; --plate-b:#2c6be0; --lcd:#26323c;
}
/* Industrie dunkel: dunkles Panel, LED-Werte */
body[data-skin="indd"]{
  --bg:#1b1e21; --surface:#262a2e; --surface2:#2f3438; --border:#454c53; --text:#e9edf0; --muted:#a1a9b1; --accent:#6cae2d; color-scheme:dark;
  --canvas:#23272b; --sym-fill:#3a4046; --sym-stroke:#cfd5db; --run-fill:#2f5a1c; --run-stroke:#6fd035; --run-imp:#e9edf0;
  --tile-top:#2e3338; --tile-border:#566069; --tile-band:#0c0f11; --tile-val:#93e24f; --tile-lbl:#a1a9b1; --tile-stale:#3a3f44; --tile-missing:#2a2e32;
  --p-vl:#ff4a3d; --p-rl:#3f8cff; --p-fvl:#ff2a1a; --p-frl:#2a6bff; --p-ww:#f2a51f; --p-zirk:#f7cf7a; --pipe-w:4;
  --g1:#2a2f34; --g2:#6a727a; --g3:#24292d; --bar1:#5a5f64; --bar2:#3b4045; --bar-stroke:#7a8189; --bar-text:#e9edf0;
  --frame1:#1f2327; --frame2:#5d646b; --station-fill:#2b3034; --station-stroke:#5d646b; --plate-a:#ff4a3d; --plate-b:#3f8cff; --lcd:#0c0f11;
}
/* Leitstand nach ISA-101: Grautöne, Farbe nur für Zustände */
body[data-skin="isa"]{
  --bg:#c9cacb; --surface:#e3e4e5; --surface2:#dadbdc; --border:#a9abad; --text:#1a1a1a; --muted:#555a5f; --accent:#3d5a7d;
  --canvas:#d4d5d6; --sym-fill:#d4d5d6; --sym-stroke:#2e3134; --run-fill:#4a4d50; --run-stroke:#2e3134; --run-imp:#ffffff;
  --tile-top:#e3e4e5; --tile-border:#999c9f; --tile-band:#ececec; --tile-val:#111111; --tile-lbl:#555a5f; --tile-stale:#c4c6c8; --tile-missing:#d4d5d6;
  --p-vl:#45484b; --p-rl:#8d9195; --p-fvl:#2e3134; --p-frl:#6a6e72; --p-ww:#5a5e62; --p-zirk:#a4a8ac; --pipe-w:3.5;
  --g1:#d4d5d6; --g2:#d4d5d6; --g3:#d4d5d6; --bar1:#c4c6c8; --bar2:#c4c6c8; --bar-stroke:#2e3134; --bar-text:#1a1a1a;
  --frame1:#8d9195; --frame2:#8d9195; --station-fill:#d4d5d6; --station-stroke:#2e3134; --plate-a:#45484b; --plate-b:#8d9195; --lcd:#5a5e62;
}
/* DIN-Schema: schwarz-weiße Strichzeichnung */
body[data-skin="din"]{
  --bg:#e8e8e8; --surface:#ffffff; --surface2:#f3f3f3; --border:#c9c9c9; --text:#000000; --muted:#444444; --accent:#222222;
  --canvas:#ffffff; --sym-fill:#ffffff; --sym-stroke:#000000; --run-fill:#ffffff; --run-stroke:#000000; --run-imp:#000000;
  --tile-top:#ffffff; --tile-border:#000000; --tile-band:#ffffff; --tile-val:#000000; --tile-lbl:#444444; --tile-stale:#e6e6e6; --tile-missing:#ffffff;
  --p-vl:#000000; --p-rl:#000000; --p-fvl:#000000; --p-frl:#000000; --p-ww:#000000; --p-zirk:#000000; --pipe-w:2.2;
  --g1:#ffffff; --g2:#ffffff; --g3:#ffffff; --bar1:#ffffff; --bar2:#ffffff; --bar-stroke:#000000; --bar-text:#000000;
  --frame1:#ffffff; --frame2:#ffffff; --station-fill:#ffffff; --station-stroke:#000000; --plate-a:#000000; --plate-b:#000000; --lcd:#ffffff;
}
@media (prefers-color-scheme: dark){body:is([data-skin="modern"],[data-skin="isa"],[data-skin="din"]){color-scheme:light}}
/* Rohrarten Kühlen, Heizen/Kühlen, Glykol je Darstellung */
:root{--p-idle:#b3b9c0; --p-kvl:#4cc3e6; --p-krl:#2f80c9; --p-hkvl:#9a6ad8; --p-hkrl:#c2adf0; --p-gvl:#3fa35a; --p-grl:#93d2a0}
body[data-skin="modern"]{--p-kvl:#0aa5c2; --p-krl:#1d6fb8; --p-hkvl:#7c4fd6; --p-hkrl:#a98be8; --p-gvl:#1f9d55; --p-grl:#7cc995}
body[data-skin="indd"]{--p-idle:#5b636b; --p-kvl:#35d0ee; --p-krl:#4a9bff; --p-hkvl:#b78cff; --p-hkrl:#d6c2ff; --p-gvl:#5fd27f; --p-grl:#a6e8b6}
body[data-skin="isa"]{--p-idle:#a9acaf; --p-kvl:#45484b; --p-krl:#8d9195; --p-hkvl:#45484b; --p-hkrl:#8d9195; --p-gvl:#5a5e62; --p-grl:#a4a8ac}
body[data-skin="din"]{--p-kvl:#000; --p-krl:#000; --p-hkvl:#000; --p-hkrl:#000; --p-gvl:#000; --p-grl:#000}

*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--text);font:14px/1.45 var(--f-ui)}
body.app{display:grid;grid-template-rows:auto 1fr;grid-template-columns:212px 1fr}
/* Kopfzeile: ruhig und weiß, die Marke nur im Logo und als dünne Linie; Farbe bleibt den Anlagenzuständen vorbehalten */
header.top{--h-line:#e4e1ea; --h-text:#1d1a26; --h-muted:#6b6878; --h-soft:#f5f3f8; --h-accent:var(--brand);
  grid-column:1/-1;display:flex;align-items:center;gap:10px;background:#fff;color:var(--h-text);
  border-bottom:2px solid var(--brand);padding:0 14px;min-height:52px;color-scheme:light;position:relative;z-index:20}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;margin-right:6px}
.brand .wordmark{height:18px;width:auto;display:block}
.brand .prod{border-left:1px solid var(--h-line);padding-left:10px}
.brand b{display:block;font:600 14px var(--f-ui);color:var(--h-muted);letter-spacing:.01em}
.brand small{display:none}
header.top .vline{width:1px;align-self:stretch;margin:10px 2px;background:var(--h-line)}
header.top .fld{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--h-muted)}
header.top select{height:32px;background:#fff;color:var(--h-text);border:1px solid var(--h-line);border-radius:8px;padding:0 10px;font-size:13px}
header.top select:hover{border-color:#c9c3d6}
header.top select option{background:#fff;color:#111}
header.top #proj{font-weight:600;min-width:180px}
header.top .hseg{height:32px;border:1px solid var(--h-line);border-radius:8px;padding:2px;gap:2px;background:var(--h-soft)}
header.top .hseg button{border:0;border-radius:6px;background:transparent;color:var(--h-muted);padding:0 12px;display:inline-flex;align-items:center;gap:6px;font-weight:500}
header.top .hseg button:hover{color:var(--h-text)}
header.top .hseg button.on{background:#fff;color:var(--brand);box-shadow:0 1px 2px rgba(0,0,0,.12);font-weight:600}
header.top .seg svg,.ibtn svg{width:15px;height:15px}
header.top .spacer{flex:1}
.hstat{display:flex;align-items:center;height:32px;border:1px solid var(--h-line);border-radius:8px;overflow:hidden;font:500 12px var(--f-ui);color:var(--h-muted);white-space:nowrap}
.hstat .clock{padding:0 10px;font-variant-numeric:tabular-nums;border-right:1px solid var(--h-line);line-height:30px}
header.top .hstat .pill{border:0;border-radius:0;background:transparent;font:500 12px var(--f-ui);color:var(--h-text);padding:0 11px;height:30px}
.umenu{position:relative}
.ubtn{display:flex;align-items:center;gap:8px;height:38px;padding:0 8px 0 3px;border:1px solid transparent;border-radius:999px;background:transparent;cursor:pointer;color:var(--h-text);font:inherit}
.ubtn:hover,.ubtn[aria-expanded="true"]{background:var(--h-soft);border-color:var(--h-line)}
.ubtn:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.ubtn .av,.user .av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:#fff;font:600 12px var(--f-ui);flex:none}
.ubtn b{display:block;font-size:13px;line-height:1.15;text-align:left}
.ubtn small{display:block;font-size:11px;color:var(--h-muted);line-height:1.15;text-align:left}
.ubtn > svg{width:14px;height:14px;color:var(--h-muted)}
.udrop{position:absolute;right:0;top:calc(100% + 6px);width:270px;background:#fff;border:1px solid var(--h-line);border-radius:10px;box-shadow:0 14px 34px rgba(20,10,40,.18);padding:12px;display:flex;flex-direction:column;gap:12px;z-index:30;color:var(--h-text)}
.udrop[hidden]{display:none}
.udrop .f{display:flex;flex-direction:column;gap:5px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--h-muted)}
.udrop select{width:100%;height:32px;border:1px solid var(--h-line);border-radius:8px;background:#fff;color:var(--h-text);text-transform:none;letter-spacing:0}
.udrop .chk{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.35;cursor:pointer}
.udrop .chk input{margin-top:3px;accent-color:var(--brand);width:auto}
.udrop .chk small{display:block;font-size:11.5px;color:var(--h-muted)}
.udrop .dlink{display:flex;align-items:center;gap:8px;border:0;border-top:1px solid var(--h-line);background:none;padding:11px 2px 1px;cursor:pointer;color:var(--h-text);font:500 13px var(--f-ui)}
.udrop .dlink:hover{color:var(--crit)}
.udrop .dlink svg{width:16px;height:16px}
.user{display:flex;align-items:center;gap:9px}
.user b{display:block;font-size:13px;line-height:1.15}
.user small{display:block;font-size:11px;color:var(--h-muted);line-height:1.15}
.ibtn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;border:1px solid var(--h-line);background:transparent;color:var(--h-text);cursor:pointer}
.ibtn:hover{background:var(--h-soft);border-color:var(--h-accent)}
.pill{display:inline-flex;align-items:center;gap:7px;font:500 12px var(--f-mono);border:1px solid var(--border);border-radius:999px;padding:4px 10px;background:var(--surface2)}
.pill i{width:8px;height:8px;border-radius:50%;background:var(--crit);box-shadow:0 0 0 3px color-mix(in srgb,var(--crit) 25%,transparent)}
.pill.on i{background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 25%,transparent)}
.seg{display:inline-flex;border:1px solid var(--border);border-radius:3px;overflow:hidden}
.seg button{border:0;background:var(--surface);padding:5px 12px;cursor:pointer;font:500 13px var(--f-ui);color:var(--text);border-right:1px solid var(--border)}
.seg button:last-child{border-right:0}
.seg button.on{background:#5b6168;color:#fff}
select,input{font:13px var(--f-ui);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:5px 7px}
.btn{border:1px solid var(--border);background:linear-gradient(var(--surface),var(--surface2));border-radius:4px;padding:5px 11px;cursor:pointer;font:500 13px var(--f-ui);color:var(--text);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.btn svg{width:15px;height:15px}
.btn:hover{border-color:var(--accent)}
.btn.on{background:#5b6168;color:#fff;border-color:#4a4f55}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn:focus-visible,.seg button:focus-visible,select:focus-visible,input:focus-visible,.nav:focus-visible,.ibtn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
/* Seitenmenü */
nav.side{background:var(--surface);border-right:1px solid var(--border);padding:14px 10px 12px;display:flex;flex-direction:column;gap:2px;overflow:auto;min-height:0}
.navsec{font:600 10.5px var(--f-ui);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:14px 10px 6px}
.navsec:first-child{margin-top:0}
.nav{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:7px 10px;border:0;border-radius:6px;background:transparent;color:var(--text);text-decoration:none;font:500 13.5px var(--f-ui);text-align:left;cursor:pointer;position:relative}
.nav svg{width:17px;height:17px;flex:none;color:var(--muted)}
.nav:hover{background:var(--surface2)}
.nav.on{background:color-mix(in srgb,var(--brand) 11%,transparent);color:var(--brand-ink);font-weight:600}
.nav.on svg{color:var(--brand-ink)}
.nav.on::before{content:"";position:absolute;left:-10px;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:var(--brand2)}
.nav.off{opacity:.55;cursor:not-allowed}
.nav.off:hover{background:transparent}
.nav .tag{margin-left:auto;font:600 10px var(--f-ui);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:0 6px}
.pages{display:flex;flex-direction:column;gap:2px}
.navfoot{margin-top:auto;padding:10px;border-top:1px solid var(--border);font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}
.navfoot i{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}
.navfoot.ok i{background:var(--ok)}
.hint{font-size:12px;color:var(--muted)}
/* Seitenkopf mit Überschrift */
.pagehead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface);border-bottom:1px solid var(--border);padding:6px 16px;min-height:46px;flex:none}
.pagehead .phl{display:flex;align-items:baseline;gap:10px;min-width:0}
.pagehead h1{margin:0;font:600 17px/1.2 var(--f-ui);letter-spacing:.005em}
.pagehead .sub{font-size:12.5px;color:var(--muted)}
.pagehead .tools{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
@media (max-width:1400px){header.top .clock{display:none}.ubtn .un{display:none}}
@media (max-width:900px){header.top .fld span,header.top .clock,.brand small{display:none}}
@media (max-width:800px){body.app{grid-template-columns:1fr;grid-template-rows:auto auto 1fr}nav.side{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--border)}.navsec,.navfoot{display:none}.pages{flex-direction:row;flex-wrap:wrap}.nav{width:auto}.nav.on::before{display:none}}
header.top .hlink{display:inline-flex;align-items:center;gap:6px;color:var(--h-text);text-decoration:none;font-size:13px;border:1px solid var(--h-line);border-radius:6px;padding:6px 11px}
header.top .hlink:hover{background:var(--h-soft);border-color:var(--h-accent)}
header.top .hlink svg{width:15px;height:15px}
/* Trend-Ansicht (Seite „Trends“ und Verlaufsfenster) */
.trend{display:flex;min-height:0;min-width:0;background:var(--surface);color:var(--text)}
.trend button{font:inherit;color:inherit}
.trend .tlist{width:290px;flex:none;border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;background:var(--surface)}
.trend .tsearch{margin:12px;width:calc(100% - 24px);padding:8px 10px;border-radius:8px}
.trend .tgroups{overflow:auto;padding:0 8px 12px;font-size:13px}
.trend details{margin-top:4px}
.trend summary{font:600 10.5px var(--f-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);cursor:pointer;padding:8px 6px 4px}
.trend .tgroups label{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;cursor:pointer;line-height:1.3;position:relative}
.trend .tgroups label:hover{background:var(--surface2)}
.trend .tgroups label.on{background:color-mix(in srgb,var(--brand) 8%,transparent)}
.trend .tgroups input{position:absolute;opacity:0;pointer-events:none}
.trend .tgroups i{width:14px;height:14px;border-radius:4px;border:1.5px solid var(--border);flex:none;position:relative}
.trend .tgroups label.on i::after{content:"";position:absolute;left:3.5px;top:.5px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.trend .tgroups label:has(input:focus-visible){outline:2px solid var(--accent)}
.trend .tgroups small{margin-left:auto;color:var(--muted);padding-left:6px;font-size:11px}
.trend .tmain{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;padding:14px 18px 10px}
.trend .thead{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.trend .ttl{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
.trend .ttitle{font-size:17px;font-weight:600}
.trend .tinfo{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
.trend .tinfo svg{width:14px;height:14px}
.trend .tlive{display:inline-flex;align-items:center;gap:6px;font:600 11px var(--f-ui);text-transform:uppercase;letter-spacing:.06em;color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent);padding:3px 9px;border-radius:999px}
.trend .tlive[hidden]{display:none}
.trend .tlive i{width:7px;height:7px;border-radius:50%;background:var(--ok);animation:tpulse 2s steps(10) infinite}
@keyframes tpulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ok) 60%,transparent)}70%{box-shadow:0 0 0 6px transparent}100%{box-shadow:0 0 0 0 transparent}}
@media (prefers-reduced-motion: reduce){.trend .tlive i{animation:none}}
.trend .tacts{margin-left:auto;display:flex;gap:6px}
.trend .ticon{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;font-size:13px;font-weight:500}
.trend .ticon svg{width:16px;height:16px}
.trend .ticon.only{width:34px;padding:0;justify-content:center}
.trend .ticon:hover,.trend .ticon.on{border-color:var(--brand);color:var(--brand-ink);background:color-mix(in srgb,var(--brand) 6%,var(--surface))}
.trend .tctl{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.trend .tpills{display:inline-flex;padding:3px;gap:2px;background:var(--surface2);border:1px solid var(--border);border-radius:10px}
.trend .tpills button{border:0;background:transparent;padding:6px 14px;border-radius:7px;cursor:pointer;font-size:13px;font-weight:500;color:var(--muted)}
.trend .tpills button:hover{color:var(--text)}
.trend .tpills button.on{background:var(--surface);color:var(--brand-ink);box-shadow:0 1px 3px rgba(0,0,0,.14);font-weight:600}
.trend .tpills.small button{padding:4px 11px;font-size:12px}
.trend .tnav{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}
.trend .tnav button{border:0;background:transparent;height:34px;min-width:36px;padding:0 10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.trend .tnav button+button{border-left:1px solid var(--border)}
.trend .tnav button:hover:not(:disabled){background:var(--surface2)}
.trend .tnav button:disabled{opacity:.35;cursor:default}
.trend .tnav svg{width:16px;height:16px}
.trend .tnav .tnow{font-size:13px;font-weight:600;padding:0 14px}
.trend .tnav .tnow.on{color:var(--ok)}
.trend .tzoomout{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1px dashed var(--brand);border-radius:10px;background:color-mix(in srgb,var(--brand) 6%,transparent);color:var(--brand-ink);cursor:pointer;font-size:13px;font-weight:500}
.trend .tzoomout svg{width:16px;height:16px}
.trend .tzoomout[hidden]{display:none}
.trend .tsp{flex:1}
.trend .tadd{max-width:280px;height:34px;border-radius:8px;padding:0 10px}
.trend .tscale{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);font-size:13px}
.trend .tscale[hidden]{display:none}
.trend .tscale > b{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.trend .trow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.trend .trow .tu{min-width:70px;font-weight:600}
.trend .trow label{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
.trend .trow input{width:76px;border-radius:6px}
.trend .trow input:disabled{opacity:.5}
.trend .tchips{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 6px;min-height:4px}
.trend .tchip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:8px;padding:4px 4px 4px 10px;font-size:12.5px;background:var(--surface)}
.trend .tchip i{width:12px;height:4px;border-radius:2px}
.trend .tchip .tl{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trend .tchip b{font:600 12.5px var(--f-mono);padding-left:8px;border-left:1px solid var(--border)}
.trend .tchip button{border:0;background:none;cursor:pointer;color:var(--muted);width:22px;height:22px;border-radius:5px;display:grid;place-items:center;padding:0}
.trend .tchip button:hover{background:var(--surface2);color:var(--crit)}
.trend .tchip button svg{width:13px;height:13px}
.trend .tchart{position:relative;flex:1;min-height:240px}
.trend .tsvg{position:absolute;inset:0;display:block}
.trend .tplot{fill:var(--surface);stroke:var(--border)}
.trend .tgrid{stroke:var(--border);stroke-width:1;opacity:.55}
.trend .tgrid.day{opacity:1;stroke-dasharray:4 3}
.trend .tax{font:11px var(--f-ui);fill:var(--muted)}
.trend .tax.day{font-weight:600;fill:var(--text)}
.trend .tunit{font:600 11px var(--f-ui);fill:var(--muted)}
.trend .tline{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.trend .tgap{fill:var(--muted);opacity:.1}
.trend .tgapl{font:11px var(--f-ui);fill:var(--muted)}
.trend .tlane{fill:var(--surface2);stroke:var(--border)}
.trend .tlanel{font:600 11px var(--f-ui);fill:var(--text);paint-order:stroke;stroke:var(--surface);stroke-width:3px;pointer-events:none}
.trend .tcursor{stroke:var(--text);stroke-width:1;stroke-dasharray:3 3;opacity:.6}
.trend .tsel{fill:var(--brand);opacity:.12}
.trend .thit{fill:transparent;cursor:crosshair}
.trend .ttip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 10px 28px rgba(0,0,0,.18);padding:8px 10px;font-size:12px;min-width:220px;max-width:380px;z-index:2}
.trend .ttip p{margin:0 0 6px;color:var(--muted);font-size:11.5px}
.trend .ttip div{display:flex;align-items:center;gap:7px;padding:2px 0}
.trend .ttip div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trend .ttip i{width:10px;height:4px;border-radius:2px;flex:none}
.trend .ttip b{margin-left:auto;padding-left:14px;font:600 12px var(--f-mono);white-space:nowrap}
.trend .ttip small{color:var(--muted);font-weight:400}
.trend .tempty{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:var(--muted);pointer-events:none;font-size:14px;text-align:center;padding:20px}
.trend .tempty:empty{display:none}
.trend .thint{margin:6px 0 0;font-size:11.5px;color:var(--muted)}
@media (max-width:800px){.trend{flex-direction:column}.trend .tlist{width:auto;max-height:40vh;border-right:0;border-bottom:1px solid var(--border)}.trend .ticon span{display:none}}


/* Seitenmenü: nummerierte Anlagenbilder, Statuskarte, einklappbar */
.nav .pnum{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font:600 11.5px var(--f-ui);background:var(--surface2);border:1px solid var(--border);color:var(--muted);flex:none}
.nav.on .pnum{background:var(--brand);border-color:var(--brand);color:#fff}
.nav .pl{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3;min-width:0}
.navgrow{flex:1;min-height:12px}
.navcard{margin:4px 2px 2px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);display:flex;flex-direction:column;gap:7px;font-size:12px}
.nc-row{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted)}
.nc-row[hidden]{display:none}
.nc-row b{font-weight:600;color:var(--text);display:inline-flex;align-items:center;gap:6px;text-align:right}
.nc-row b::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--muted);flex:none}
.nc-row.ok b::before{background:var(--ok)}
.nc-row.warn b::before{background:var(--warn)}
.nc-row.warn b{color:var(--warn)}
.nc-row.heat b::before{background:#c8402f}
.nc-row.cool b::before{background:#2a74c0}
.navmin{margin-top:4px;display:flex;align-items:center;gap:10px;border:0;background:none;color:var(--muted);font:500 12px var(--f-ui);padding:8px 10px;border-radius:6px;cursor:pointer;width:100%}
.navmin:hover{background:var(--surface2);color:var(--text)}
.navmin svg{width:16px;height:16px;flex:none}
.navmin:focus-visible{outline:2px solid var(--accent)}
body.navmini.app{grid-template-columns:60px 1fr}
body.navmini nav.side{padding:12px 8px 10px}
body.navmini :is(.navsec,.navcard,.nav .pl,.nav .nl,.navmin .nl){display:none}
body.navmini :is(.nav,.navmin){justify-content:center;padding:8px 0}
body.navmini .nav.on::before{left:-8px}
body.navmini .navmin svg{transform:rotate(180deg)}
@media (max-width:800px){.navcard,.navmin,.navgrow{display:none}}

/* Variante A: Status in der Kopfzeile */
.hstat .hs{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border-right:1px solid var(--h-line);color:var(--h-text);font:500 12px var(--f-ui)}
.hstat .hs:last-child{border-right:0}
.hstat .hs[hidden]{display:none}
.hstat .hs > i{width:7px;height:7px;border-radius:50%;background:var(--h-muted);flex:none}
.hstat .hs svg{width:13px;height:13px;color:var(--h-muted)}
.hstat .hs.ok > i{background:var(--ok)} .hstat .hs.warn > i{background:var(--warn)} .hstat .hs.warn{color:var(--warn)}
.hstat .hs.heat > i{background:#c8402f} .hstat .hs.cool > i{background:#2a74c0}
.hstat .hs.free svg{color:var(--ok)}
.hstat .clock{color:var(--h-muted);font-variant-numeric:tabular-nums}
header.top .hstat .pill{border:0;border-radius:0;background:transparent;height:30px;padding:0 11px;font:500 12px var(--f-ui);color:var(--h-text)}
@media (max-width:1400px){.hstat #hcData span,.hstat #writeState span{display:none}}
/* Seitenmenü mit Griff */
nav.side{position:relative;overflow:visible;padding:0;z-index:15}
nav.side .navin{height:100%;overflow:auto;padding:14px 10px 12px;display:flex;flex-direction:column;gap:2px}
.navhandle{position:absolute;right:-14px;top:50%;transform:translateY(-50%);width:14px;height:56px;padding:0;border:1px solid var(--border);border-left:0;border-radius:0 10px 10px 0;background:var(--surface);color:var(--muted);cursor:pointer;display:grid;place-items:center;box-shadow:2px 0 6px rgba(0,0,0,.06);transition:width .12s,right .12s,color .12s}
.navhandle svg{width:14px;height:14px;transition:transform .15s}
.navhandle:hover,.navhandle:focus-visible{width:20px;right:-20px;color:var(--brand-ink);border-color:var(--brand)}
.navhandle:focus-visible{outline:none}
body.navmini .navhandle svg{transform:rotate(180deg)}
body.navmini nav.side .navin{padding:12px 8px 10px}
@media (max-width:800px){.navhandle{display:none}}
/* schwebende Werkzeuge im Schema */
.cvtools{position:absolute;right:14px;bottom:var(--cvb);z-index:6;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 14px rgba(0,0,0,.12);overflow:hidden}
.cvtools button{width:36px;height:34px;border:0;background:transparent;color:var(--text);cursor:pointer;display:grid;place-items:center}
.cvtools button+button{border-top:1px solid var(--border)}
.cvtools button:hover{background:var(--surface2);color:var(--brand-ink)}
.cvtools svg{width:17px;height:17px}
.edbar{position:absolute;left:50%;top:12px;transform:translateX(-50%);z-index:6;align-items:center;gap:6px;padding:6px 8px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,.14);white-space:nowrap;max-width:calc(100% - 24px);flex-wrap:wrap}
.edbar .sep{width:1px;align-self:stretch;background:var(--border)}
.edbar .btn{height:30px}
.edbar select{height:30px}
/* Einstellungen */
dialog.settings{width:min(460px,calc(100vw - 32px));padding:0;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:0 24px 60px rgba(0,0,0,.3)}
dialog.settings::backdrop{background:rgba(20,16,30,.35)}
dialog.settings form{display:flex;flex-direction:column}
.settings .sh{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 6px}
.settings h2{margin:0;font:600 17px var(--f-ui)}
.settings .x{width:32px;height:32px;border:0;border-radius:8px;background:none;color:var(--muted);cursor:pointer;display:grid;place-items:center}
.settings .x:hover{background:var(--surface2);color:var(--text)}
.settings .x svg{width:18px;height:18px}
.settings section{padding:12px 18px;border-top:1px solid var(--border)}
.settings section:first-of-type{border-top:0}
.settings h3{margin:0 0 2px;font:600 13px var(--f-ui)}
.settings section > p{margin:0 0 8px;font-size:12px;color:var(--muted)}
.settings select{width:100%;height:34px;border-radius:8px}
.settings .opt{display:flex;gap:10px;align-items:flex-start;padding:7px 4px;cursor:pointer;border-radius:8px}
.settings .opt:hover{background:var(--surface2)}
.settings .opt input{margin-top:3px;width:auto;accent-color:var(--brand)}
.settings .opt b{display:block;font-weight:500;font-size:13px}
.settings .opt small{display:block;font-size:12px;color:var(--muted)}
.settings .note{margin:0;padding:10px 18px 16px;font-size:11.5px;color:var(--muted);border-top:1px solid var(--border)}
body.noflow .flow.on{animation:none;opacity:0}

/* Schaltprotokoll */
.logv{flex:1;flex-direction:column}
.logv .tmain{padding:16px 20px 12px}
.logv .ldate{height:34px;border-radius:8px;padding:0 8px}
.logv .lcount{font-size:12.5px;color:var(--muted)}
.logv .lsearch{height:34px;border-radius:8px;width:240px}
.logv .lall{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);cursor:pointer}
.logv .lall input{width:auto;accent-color:var(--brand)}
.logv .lwrap{flex:1;min-height:0;overflow:auto;margin-top:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.ltab{width:100%;border-collapse:collapse;font-size:13px}
.ltab th{position:sticky;top:0;background:var(--surface2);text-align:left;font:600 11px var(--f-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:9px 14px;border-bottom:1px solid var(--border)}
.ltab td{padding:7px 14px;border-bottom:1px solid var(--border);vertical-align:middle}
.ltab tr:hover td{background:var(--surface2)}
.ltab .lt{font:500 12.5px var(--f-mono);color:var(--muted);white-space:nowrap;width:1%}
.ltab .lv{display:inline-block;min-width:44px;text-align:center;padding:1px 8px;border-radius:6px;border:1px solid var(--border);font:600 12px var(--f-ui)}
.ltab .lv.on{background:color-mix(in srgb,var(--ok) 14%,transparent);border-color:color-mix(in srgb,var(--ok) 40%,transparent);color:var(--ok)}
.ltab .lv.off{color:var(--muted)}
.ltab .la{margin:0 8px;color:var(--muted)}
.logv .lempty{margin:0;padding:30px;text-align:center;color:var(--muted)}
.logv .lempty:empty{display:none}
/* Überschriften im Schema anklickbar (Verlauf der Gruppe) */
body:not(.editing) .title[data-group]{cursor:pointer}
body:not(.editing) .title[data-group]:hover rect{stroke:var(--brand);stroke-width:1.6}

/* Neue Anlage */
.settings input:not([type]),.settings input[type=text]{width:100%;height:34px;border-radius:8px}
.settings .np-act{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 16px;border-top:1px solid var(--border)}
.settings .np-err{color:var(--crit);border-top:0;padding-top:0}
.settings .np-err:empty{display:none}

/* Tagesbericht */
.repv .rstrip{display:flex;gap:3px;flex-wrap:wrap}
.repv .rs{width:26px;height:30px;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;font:600 11px var(--f-ui);color:var(--muted);display:flex;align-items:flex-end;justify-content:center;padding-bottom:3px;position:relative}
.repv .rs::before{content:"";position:absolute;top:4px;left:50%;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--border)}
.repv .rs.gruen::before{background:var(--ok)} .repv .rs.gelb::before{background:var(--warn,#d99a00)} .repv .rs.rot::before{background:var(--crit)}
.repv .rs.on{border-color:var(--brand);color:var(--brand-ink);box-shadow:0 0 0 1px var(--brand)}
.repv .rbody{flex:1;min-height:0;overflow:auto;margin-top:12px}
.rsum{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 16px}
.rsum > div > b{display:block;font-size:16px}
.rsum > div > small{color:var(--muted);font-size:12px}
.rlight{width:18px;height:18px;border-radius:50%;background:var(--border);flex:none}
.rsum.gruen .rlight{background:var(--ok)} .rsum.gelb .rlight{background:var(--warn,#d99a00)} .rsum.rot .rlight{background:var(--crit)}
.rkpi{display:flex;gap:18px;flex-wrap:wrap;margin-left:auto}
.rk{display:flex;flex-direction:column;font-size:12px;color:var(--muted)}
.rk b{font:600 14px var(--f-ui);color:var(--text)}
.rlist{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.rf{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:8px;padding:10px 12px}
.rf.crit{border-left-color:var(--crit)} .rf.warn{border-left-color:#e07a00} .rf.hint{border-left-color:var(--warn,#d99a00)} .rf.info{border-left-color:var(--muted)}
.ri{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:700 12px var(--f-ui);color:#fff;background:var(--muted)}
.rf.crit .ri{background:var(--crit)} .rf.warn .ri{background:#e07a00} .rf.hint .ri{background:var(--warn,#d99a00)}
.rt p{margin:3px 0 0;font-size:13px;line-height:1.45}
.rh{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.rh b{font-size:13.5px}
.rl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.ra{display:flex;gap:4px;align-items:center}
.rfb{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:3px 6px;cursor:pointer;opacity:.55;font-size:13px}
.rfb.on,.rfb:hover{opacity:1;border-color:var(--brand)}
.rfoot{font-size:12px;color:var(--muted);margin:12px 2px 0}
