:root { --ink:#1F2433; --muted:#5A6278; --line:#DDE2EE; --bg:#F3F5FA; --accent:#2B45A0; --accent2:#22398A; --dark:#2B45A0; --good:#1e7a3c; --bad:#c62828; --strip:#F2A900; --side:#ECEFF6; }
* { box-sizing: border-box; }
body { margin:0; font:14px/1.45 Inter, system-ui, "Segoe UI", Roboto, sans-serif; color:var(--ink); background:var(--bg); }
a { color:#2B45A0; text-decoration:none; } a:hover { text-decoration:underline; }
h1 { font-size:22px; margin:4px 0 16px; } h1 small { font-size:13px; font-weight:400; }
h2 { font-size:16px; margin:0 0 10px; } h3 { font-size:14px; margin:14px 0 6px; }
.card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:16px 18px; margin:0 0 16px; }
.card.narrow { max-width:480px; margin:40px auto; }
.card.danger { border-color:#f2c4c4; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; } @media (max-width:900px){ .grid2 { grid-template-columns:1fr; } }
table { width:100%; border-collapse:collapse; background:#fff; } table.small { font-size:12px; }
th, td { text-align:left; padding:7px 8px; border-bottom:1px solid var(--line); vertical-align:top; }
th { font-weight:600; color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.03em; }
dl { display:grid; grid-template-columns:200px 1fr; gap:6px 12px; margin:0; } dt { color:var(--muted); } dd { margin:0; }
.btn { display:inline-block; background:var(--accent); color:#fff; border:0; border-radius:6px; padding:8px 14px; font:inherit; cursor:pointer; }
.btn:hover { filter:brightness(.95); text-decoration:none; } .btn.big { display:block; text-align:center; padding:12px; margin:10px 0; font-size:15px; }
.btn.red { background:var(--bad); }
.link { background:none; border:0; color:#2B45A0; cursor:pointer; padding:0; font:inherit; }
input, select { font:inherit; padding:7px 9px; border:1px solid #c8cfd6; border-radius:6px; }
.bar { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:0 0 14px; }
form.inline { display:inline; margin-right:8px; }
.flash { padding:10px 14px; border-radius:6px; margin:0 0 14px; } .flash.ok { background:#e6f4ea; color:#14532d; } .flash.err { background:#fdecea; color:#7f1d1d; }
.hidden { display:none; } .muted { color:var(--muted); } .good { color:var(--good); font-weight:600; } .bad { color:var(--bad); font-weight:600; }
.mono, pre { font-family:ui-monospace, Consolas, monospace; font-size:12px; word-break:break-all; }
pre.copy { background:#1f2933; color:#e6edf3; padding:12px; border-radius:6px; white-space:pre-wrap; }
pre.code-big { font-size:28px; text-align:center; letter-spacing:.1em; background:#f0f3f6; padding:16px; border-radius:6px; }
.tiles { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; margin-bottom:16px; }
.tile { background:#fff; border:1px solid var(--line); border-radius:8px; padding:14px; color:var(--ink); }
.tile b { display:block; font-size:28px; } .tile span { color:var(--muted); } .tile:hover { text-decoration:none; border-color:var(--accent); }
.tile.good b { color:var(--good); } .tile.bad b { color:var(--bad); }
label { color:var(--ink); }
.chart { width:100%; height:auto; display:block; }
.chart .grid { stroke:#e6e9ed; stroke-width:1; }
.chart .axis { fill:#6b7785; font-size:11px; }
.chart .line { fill:none; stroke-width:2.5; stroke-linejoin:round; stroke-linecap:round; }
.chart .line.cpu { stroke:#f28c00; } .chart .line.ram { stroke:#2b6cb0; }
.chart .dot.cpu { fill:#f28c00; } .chart .dot.ram { fill:#2b6cb0; }
.legend { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:0 0 8px; }
.legend .lgd { display:inline-block; width:14px; height:4px; border-radius:2px; margin-left:8px; }
.legend .lgd.cpu { background:#f28c00; } .legend .lgd.ram { background:#2b6cb0; }
.tag { display:inline-block; background:#eef2f6; color:#33404d; border-radius:4px; padding:1px 6px; font-size:12px; }
.warnc { color:#b7791f; font-weight:600; }
svg.sw { vertical-align:middle; margin-left:8px; }
.st { display:inline-block; border-radius:4px; padding:1px 7px; font-size:12px; font-weight:600; white-space:nowrap; }
.st.ok { background:#e6f4ea; color:#1e7a3c; } .st.warn { background:#fff4dc; color:#8a5a00; } .st.bad { background:#fde8e8; color:#a61b1b; }
.st.upd { background:#e8f0fd; color:#1c4fa0; }
.note { display:block; font-size:12px; color:var(--muted); }
.bigkey { font-size:1.4em; letter-spacing:1px; user-select:all; }

/* ---- Rahmen: Kopfleiste, Seitenleiste ---- */
.sr { position:absolute; left:-9999px; }
.ic { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.ic.sm { width:16px; height:16px; }
.top { display:flex; flex-wrap:wrap; align-items:center; gap:16px; background:var(--accent); color:#fff; padding:10px 20px; border-bottom:4px solid var(--accent); position:relative; }
.top.scoped { border-bottom-color:var(--strip); }
.top a, .top summary { color:#fff; }
.brand { display:flex; align-items:center; gap:8px; padding-right:8px; } .brand:hover { text-decoration:none; }
.logo { width:34px; height:34px; border-radius:8px; background:#fff; color:var(--accent) !important; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:15px; }
.brandtxt { display:flex; flex-direction:column; line-height:1.1; } .brandtxt b { font-size:16px; } .brandtxt small { font-size:11px; color:#D5DCF3; }
.grow { flex:1 1 40px; }
.top summary { list-style:none; cursor:pointer; } .top summary::-webkit-details-marker { display:none; }
details.cust, details.usr { position:relative; }
details.cust > summary { display:flex; align-items:center; gap:10px; min-height:44px; padding:6px 14px; border-radius:10px; border:1px solid #fff; }
details.cust.on > summary { background:#fff; color:var(--accent2); }
details.cust.on > summary .two { color:var(--accent2); }
.two { display:flex; flex-direction:column; line-height:1.15; text-align:left; } .two small { font-size:11px; font-weight:500; opacity:.85; } .two b { font-size:15px; }
.menu { position:absolute; top:54px; left:0; z-index:30; width:340px; background:#fff; color:var(--ink); border-radius:12px; box-shadow:0 12px 32px rgba(20,30,70,.25); padding:8px; display:flex; flex-direction:column; gap:2px; }
.menu.small { width:180px; left:auto; right:0; top:48px; }
.menu.small a, .menu.small button { display:block; width:100%; text-align:left; padding:10px 12px; color:var(--ink); background:none; border:0; border-radius:8px; font:inherit; cursor:pointer; } .menu.small a:hover, .menu.small button:hover { background:#E8ECF8; text-decoration:none; }
.menu form { margin:0; }
.find { display:flex; border:1px solid #C9D0E3; border-radius:8px; padding:8px 10px; margin-bottom:6px; } .find input { border:0; outline:0; width:100%; padding:0; }
.list { max-height:380px; overflow:auto; display:flex; flex-direction:column; gap:2px; }
.item { display:flex; justify-content:space-between; align-items:center; gap:8px; min-height:44px; padding:6px 10px; border:0; border-radius:8px; background:transparent; color:var(--ink); text-align:left; cursor:pointer; font:inherit; font-size:14px; }
.item:hover, .item.sel { background:#E8ECF8; }
.item span { display:flex; flex-direction:column; } .item small, .item em { font-size:12px; color:var(--muted); font-style:normal; }
.blockedc { display:none; } .showblocked .blockedc { display:flex; }
.blk { display:flex; gap:8px; align-items:center; padding:10px 10px 4px; font-size:13px; color:var(--muted); border-top:1px solid #E4E8F2; margin-top:4px; }
.ptitle { display:flex; flex-direction:column; line-height:1.2; padding-left:8px; } .ptitle b { font-size:20px; } .ptitle small { font-size:13px; color:#D5DCF3; }
.qs { display:flex; align-items:center; gap:8px; background:var(--accent2); border-radius:10px; padding:0 14px; min-height:44px; flex:0 1 360px; margin:0; }
.qs input { background:transparent; border:0; outline:0; color:#fff; width:100%; padding:0; } .qs input::placeholder { color:#D5DCF3; }
.hbtn { position:relative; width:44px; height:44px; border-radius:10px; display:flex; align-items:center; justify-content:center; } .hbtn:hover { background:var(--accent2); text-decoration:none; }
.badge { position:absolute; top:4px; right:2px; background:#C62828; color:#fff; font-size:11px; font-weight:700; border-radius:9px; padding:1px 5px; }
details.usr > summary { display:flex; align-items:center; gap:8px; min-height:44px; padding:0 8px; font-weight:600; }
.av { width:32px; height:32px; border-radius:16px; background:#fff; color:var(--accent); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; }
.strip { background:#FFF4DE; color:#6B4500; font-size:13px; padding:6px 20px; display:flex; gap:8px; align-items:center; border-bottom:1px solid #F2D9A6; }
.top.plain { border-bottom-color:var(--accent); }
.shell { display:flex; align-items:stretch; min-height:calc(100vh - 66px); }
.side { flex:0 0 260px; background:var(--side); border-right:1px solid var(--line); display:flex; flex-direction:column; }
.sidemain { flex:1; padding-top:16px; }
.cap { padding:0 20px 8px; font-size:12px; font-weight:600; letter-spacing:.06em; color:var(--muted); }
.nl { display:flex; align-items:center; gap:12px; min-height:44px; padding:0 20px; color:var(--ink); font-size:15px; }
.nl:hover { background:#E3E8F4; text-decoration:none; } .nl.on { background:#D9E1F7; font-weight:600; border-left:4px solid var(--accent); padding-left:16px; }
.nl span { flex:1; }
details.grp > summary { list-style:none; cursor:pointer; } details.grp > summary::-webkit-details-marker { display:none; }
details.grp[open] > summary { background:#DFE4F1; font-weight:600; }
.chev { transition:transform .15s; } details[open] > summary .chev { transform:rotate(180deg); } details[open] > summary .chev.up { transform:none; }
.sub { display:flex; align-items:center; min-height:40px; padding:0 20px 0 52px; color:var(--ink); font-size:14px; } .sub:hover { background:#E3E8F4; text-decoration:none; }
.sub.on { color:#1D3280; font-weight:600; background:#D9E1F7; border-left:4px solid var(--accent); padding-left:48px; }
.sideadmin { position:sticky; bottom:0; border-top:1px solid #CDD3E2; background:#E4E8F2; }
details.adm { position:relative; }
details.adm > summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:12px; min-height:52px; padding:0 20px; } details.adm > summary::-webkit-details-marker { display:none; }
details.adm > summary span { flex:1; font-size:12px; font-weight:600; letter-spacing:.06em; color:#3D4459; }
.admitems { position:absolute; left:0; right:0; bottom:52px; background:#E4E8F2; border-top:1px solid #CDD3E2; padding:6px 0; display:none; flex-direction:column; }
details.adm[open] .admitems { display:flex; }
main { flex:1 1 auto; min-width:0; padding:20px 24px; }
main.solo { max-width:1400px; margin:0 auto; }
@media (max-width:900px) { .shell { flex-direction:column; } .side { flex-basis:auto; } .admitems { position:static; } .sideadmin { position:static; } }

/* ---- Geräteverwaltung mit Gerätekarte ---- */
.split { display:flex; flex-wrap:wrap; gap:0; margin:-20px -24px; align-items:stretch; }
.split .left { flex:999 1 480px; min-width:0; padding:20px 24px; }
.panel { flex:1 1 360px; max-width:440px; background:#fff; border-left:1px solid var(--line); padding:20px; display:flex; flex-direction:column; gap:14px; }
.tabs { display:flex; gap:28px; border-bottom:1px solid var(--line); margin-bottom:12px; } .tabs a { padding:10px 2px; font-size:15px; color:var(--accent); } .tabs a.on { color:var(--ink); font-weight:700; border-bottom:3px solid var(--accent); }
.drow { display:grid; grid-template-columns:2.4fr 1.4fr 1fr .7fr; gap:12px; align-items:center; padding:10px 16px; border-bottom:1px solid #EEF1F7; color:var(--ink); }
.drow:hover { background:#F3F6FD; text-decoration:none; } .drow.sel { background:#EEF2FC; } .drow.head { font-size:13px; font-weight:600; color:var(--muted); background:#fff; }
.drow .nm { display:flex; flex-direction:column; min-width:0; } .drow .nm b { color:var(--accent); } .drow small { font-size:12px; color:var(--muted); }
.dot { display:inline-block; width:10px; height:10px; border-radius:5px; margin-right:6px; }
.dot.on { background:#2E7D32; } .dot.off { background:#6B7280; } .dot.bad { background:#C62828; }
.dlist { background:#fff; border:1px solid var(--line); border-radius:10px; overflow-x:auto; } .dlist .in { min-width:560px; }
.pdev { display:flex; gap:12px; align-items:flex-start; } .pico { width:44px; height:44px; border-radius:10px; background:#E8ECF8; color:var(--accent); display:flex; align-items:center; justify-content:center; }
.kv { display:flex; flex-direction:column; border:1px solid #E4E8F2; border-radius:10px; } .kv div { display:flex; justify-content:space-between; padding:12px 14px; border-bottom:1px solid #EEF1F7; } .kv div:last-child { border-bottom:0; } .kv span { color:var(--muted); font-size:13px; }
.plinks { display:flex; flex-direction:column; } .plinks a { display:flex; justify-content:space-between; align-items:center; min-height:44px; border-bottom:1px solid #EEF1F7; color:var(--ink); } .plinks a:hover { text-decoration:none; background:#F3F6FD; }
.btn { background:var(--accent); } .btn.big { background:var(--accent); }
.filterbar { display:flex; flex-wrap:wrap; gap:8px; background:#fff; border:1px solid var(--line); border-radius:10px; padding:6px 8px; margin-bottom:12px; align-items:center; } .filterbar input[type=search], .filterbar input[name=q] { flex:1 1 200px; border:0; }

/* Alarme (0.8.0) */
.pd { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:6px; vertical-align:middle; }
.pd.critical { background:#C62828; } .pd.warning { background:#F2A900; } .pd.info { background:#2B45A0; }
.st.open { background:#fde8e8; color:#a61b1b; } .st.ack { background:#fff4dc; color:#8a5a00; } .st.done { background:#e6f4ea; color:#1e7a3c; }
.tabs.alarmtabs a .n { color:var(--muted); font-weight:400; }
td.num input, .rules input[type=number] { width:70px; }
.rules td, .rules th { vertical-align:top; }
.rules tr.dev td { background:#FFF9E8; }
.hint { color:var(--muted); font-size:12px; display:block; }
.mark { color:#8a5a00; font-weight:700; font-size:12px; }
.days label { margin-right:10px; white-space:nowrap; }
.inline { display:inline; }

/* Software-Seite */
.swhead { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; }
.swhead h1 { margin-bottom:2px; }
.swtiles { margin-bottom:14px; }
.tile.warn b { color:#8a5a00; }
.cardhead { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.warnrow td { background:#fff8e6; }

.mapwrap { overflow: auto; background: #fff; border: 1px solid var(--border, #d0d7de); border-radius: 6px; padding: 8px; max-height: 80vh; }
.seg { display:inline-flex; border:1px solid var(--line); border-radius:8px; background:#fff; overflow:hidden; margin:0 0 12px; }
.seg a, .seg span { padding:6px 16px; font-size:13px; color:var(--accent); border-right:1px solid var(--line); }
.seg a:last-child, .seg span:last-child { border-right:0; }
.seg a:hover { background:var(--bg); text-decoration:none; }
.seg span.on { background:var(--accent); color:#fff; font-weight:600; }

.repdev { break-inside:avoid; }
@media print { nav.side, header.top, .noprint, .flash { display:none !important; } main { margin:0 !important; padding:0 !important; } .card { border:1px solid #bbb; } }
pre.evmsg { white-space:pre-wrap; margin:6px 0 0; max-height:320px; overflow:auto; }

/* ---- Anmeldeseite ---- */
body.loginpage { background:#F7F8FC; }
.lg { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); min-height:100vh; }
.lg-brand { gap:28px; position:relative; overflow:hidden; color:#fff; padding:40px 56px; display:flex; flex-direction:column; justify-content:space-between;
  background:linear-gradient(155deg,#2B45A0 0%,#22398A 45%,#16265F 100%); }
.lg-brand::after { content:""; position:absolute; left:0; right:0; bottom:0; height:6px; background:var(--strip); }
.lg-net { position:absolute; inset:0; width:100%; height:100%; color:rgba(255,255,255,.13); pointer-events:none; }
.lg-top, .lg-mid, .lg-foot { position:relative; }
.lg-top { display:flex; align-items:center; gap:12px; }
.lg-top .logo { display:inline-grid; place-items:center; width:42px; height:42px; border-radius:10px; background:#fff; color:#2B45A0; font-weight:800; letter-spacing:-.5px; }
.lg-top .brandtxt { display:flex; flex-direction:column; line-height:1.1; } .lg-top .brandtxt b { font-size:18px; } .lg-top .brandtxt small { opacity:.75; font-size:12px; }
.lg-mid h1 { font-size:44px; line-height:1.12; letter-spacing:-.02em; margin:0 0 34px; font-weight:750; }
.lg-feat { list-style:none; margin:0; padding:0; display:grid; gap:18px; max-width:460px; }
.lg-feat li { display:flex; gap:14px; align-items:flex-start; }
.lg-feat svg { flex:0 0 40px; width:40px; height:40px; padding:9px; border-radius:10px; background:rgba(255,255,255,.14); fill:none; stroke:#fff; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.lg-feat b { display:block; font-size:15px; } .lg-feat small { display:block; opacity:.78; font-size:13px; margin-top:1px; }
.lg-foot { margin:0; opacity:.65; font-size:12px; }
.lg-form { display:flex; align-items:center; justify-content:center; padding:40px 24px; background:#F7F8FC; }
.lg-card { width:100%; max-width:430px; background:#fff; border:1px solid var(--line); border-radius:16px; padding:36px 34px; box-shadow:0 10px 40px rgba(34,57,138,.10); }
.lg-card h2 { font-size:26px; margin:0 0 6px; letter-spacing:-.01em; }
.lg-sub { color:var(--muted); margin:0 0 24px; font-size:14px; }
.lg-btn { display:flex; align-items:center; gap:12px; width:100%; padding:13px 16px; margin:0 0 12px; border-radius:10px; background:var(--accent); color:#fff; font-weight:600; font-size:15px;
  box-shadow:0 2px 8px rgba(43,69,160,.28); transition:background .15s, transform .15s, box-shadow .15s; }
.lg-btn:hover { background:var(--accent2); text-decoration:none; transform:translateY(-1px); box-shadow:0 6px 16px rgba(43,69,160,.32); }
.lg-btn:focus-visible { outline:3px solid #9DB0F0; outline-offset:2px; }
.lg-btn svg { width:22px; height:22px; flex:0 0 22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.lg-btn span { flex:1; } .lg-btn .arr { width:18px; height:18px; flex-basis:18px; opacity:.8; transition:transform .15s; } .lg-btn:hover .arr { transform:translateX(3px); }
.lg-btn.alt { background:#fff; color:var(--accent); border:1.5px solid #C5CDEB; box-shadow:none; }
.lg-btn.alt:hover { background:#F1F4FC; box-shadow:none; }
.lg-notice { display:flex; gap:12px; margin:26px 0 14px; padding:14px 16px; border-radius:10px; background:#FFF8E6; border:1px solid #F3DDA0; color:#5C4300; }
.lg-notice svg { flex:0 0 22px; width:22px; height:22px; margin-top:1px; fill:none; stroke:#B7791F; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.lg-notice b { display:block; font-size:14px; margin-bottom:2px; } .lg-notice p { margin:0; font-size:12.5px; line-height:1.5; }
.lg-help { margin:0; text-align:center; color:var(--muted); font-size:12.5px; }
@media (max-width:900px) {
  .lg { grid-template-columns:1fr; min-height:0; }
  .lg-brand { padding:26px 24px 30px; gap:22px; } .lg-mid h1 { font-size:28px; margin:0; } .lg-feat, .lg-foot { display:none; }
  .lg-form { padding:24px 16px 40px; } .lg-card { padding:28px 22px; }
}
@media (prefers-reduced-motion:reduce) { .lg-btn, .lg-btn .arr { transition:none; } }

/* ---- Gerät: gemeinsame Kopfzeile mit Reitern ---- */
.devhead { margin:0 0 18px; border-bottom:1px solid var(--line); }
.dh-title { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.dh-title h1 { margin:0; }
.dh-st { font-size:13px; font-weight:600; white-space:nowrap; }
.devtabs { display:flex; gap:2px; flex-wrap:wrap; margin-bottom:-1px; }
.devtabs a { padding:9px 14px; color:var(--muted); font-weight:600; border-bottom:3px solid transparent; white-space:nowrap; border-radius:6px 6px 0 0; }
.devtabs a:hover { color:var(--accent); background:#fff; text-decoration:none; }
.devtabs a.on { color:var(--accent); border-bottom-color:var(--accent); background:#fff; }
.crumbs { display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:13px; margin:0 0 8px; color:var(--muted); } .crumbs a { color:var(--accent); } .crumbs i { font-style:normal; color:var(--muted); } .crumbs span { color:var(--ink); font-weight:600; }
@media print { .crumbs { display:none; } }
.devtabs .dt-sep { display:inline-block; width:1px; height:18px; background:var(--line); margin:0 6px; align-self:center; }
.tl-reason label { font-weight:600; } .tl-reason input { min-width:min(420px,70vw); }
.tl-sort th[data-k] { cursor:pointer; user-select:none; } .tl-sort th[data-k]:hover { text-decoration:underline; }
td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; }
.tl-cmd { width:100%; font-family:ui-monospace,Consolas,monospace; font-size:13px; box-sizing:border-box; }
.tl-out { background:#0f172a; color:#e2e8f0; padding:12px; border-radius:8px; max-height:60vh; overflow:auto; white-space:pre-wrap; word-break:break-word; font-size:13px; min-height:90px; }
.tl-out .in { color:#7dd3fc; } .tl-out .er { color:#fca5a5; } .tl-out .meta { color:#94a3b8; }
.tl-path { min-width:min(520px,80vw); font-family:ui-monospace,Consolas,monospace; }
.tl-keys { list-style:none; margin:0 0 10px; padding:0; max-height:50vh; overflow:auto; } .tl-keys li { padding:3px 0; } .tl-keys button.link, #f-table button.link, #p-table button.link, #r-vals button.link { cursor:pointer; }
#p-table td.cmd, #r-vals td.data { max-width:420px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-family:ui-monospace,Consolas,monospace; font-size:12px; }
#f-drives button { margin-right:4px; }
.svc-top { align-items:center; gap:12px; } .svc-tiles .tile { padding:10px 14px; } .svc-tiles .tile b { font-size:24px; } .tile.sel { border-color:var(--accent); box-shadow:0 0 0 2px #dbe3fb; }
.svc-q { min-width:min(380px,70vw); }
table.svc td { vertical-align:top; padding:9px 10px; } table.svc th.act, table.svc td.act { text-align:right; white-space:nowrap; }
table.svc tr.prob { background:#fff8f8; }
.svc-name { font-weight:600; } .svc-sub { font-size:12px; color:var(--muted); margin-top:2px; }
.svc-path { font-size:11px; color:var(--muted); max-width:560px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; word-break:normal; margin-top:2px; }
.st.idle { background:#eef0f4; color:#4b5563; }
.svc-mode { margin-top:4px; } .svc-mode summary { cursor:pointer; color:var(--accent); font-size:12px; } .svc-mode form { margin-top:6px; display:flex; gap:6px; flex-wrap:wrap; }
.btn.ghost { background:#fff; color:var(--accent); border:1px solid var(--accent); }
details.svc-cmds summary { cursor:pointer; padding:2px 0; } details.svc-cmds[open] summary { margin-bottom:10px; }
table.du td { padding:5px 10px; vertical-align:middle; } table.du .name { display:inline-block; }
table.du button.tog { background:none; border:0; cursor:pointer; padding:0 6px 0 0; font:inherit; color:var(--accent); width:20px; text-align:left; }
.du-pct { width:240px; } .du-meter { background:#eef0f4; border-radius:4px; height:12px; width:200px; display:inline-block; vertical-align:middle; overflow:hidden; } .du-meter i { display:block; height:100%; background:var(--accent); }
.du-meter.l1 i { background:#c62828; } .du-meter.l2 i { background:#f28c00; }
.du-bar { background:#eef0f4; height:8px; border-radius:4px; margin:10px 0 6px; overflow:hidden; } .du-bar i { display:block; height:100%; width:30%; background:var(--accent); animation:duslide 1.4s ease-in-out infinite; } @keyframes duslide { 0% { margin-left:-30%; } 100% { margin-left:100%; } }
.du-bar.done i { animation:none; margin-left:0; width:100%; }
table.du tr.fileline td { color:var(--muted); font-size:12px; }
[hidden] { display:none !important; }
.du-pct { width:300px; white-space:nowrap; } table.du td { white-space:nowrap; } table.du td:first-child { white-space:normal; }
.drow.two { grid-template-columns:2.2fr 1.8fr 1.2fr 1.2fr; padding:12px 16px; } .drow.two .nm > span:first-child { color:var(--ink); } .drow.two .nm b { color:var(--accent); font-size:15px; }
.drow.two .nm small { margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dlist .in { min-width:700px; }
.term { background:#0f172a; color:#e2e8f0; border-radius:8px; padding:12px; height:62vh; min-height:320px; overflow:auto; font-family:ui-monospace,Consolas,monospace; font-size:13px; cursor:text; }
.term-out { margin:0; white-space:pre-wrap; word-break:break-word; color:#e2e8f0; background:none; padding:0; font-size:13px; } .term-out .in { color:#7dd3fc; } .term-out .er { color:#fca5a5; } .term-out .meta { color:#94a3b8; }
.term-line { display:flex; align-items:center; gap:8px; } .term-prompt { color:#86efac; white-space:nowrap; font-weight:600; }
.term-in { flex:1; background:transparent; border:0; outline:0; color:#fff; font:inherit; padding:2px 0; min-width:100px; box-shadow:none; } .term-in:disabled { opacity:.5; }
table.audit td { vertical-align:top; } table.audit td.mono { word-break:break-word; max-width:520px; }
table.fw { table-layout:fixed; width:100%; }
table.fw th:nth-child(1) { width:30%; } table.fw th:nth-child(2) { width:80px; } table.fw th:nth-child(3) { width:92px; } table.fw th:nth-child(4) { width:130px; }
table.fw th:nth-child(5) { width:20%; } table.fw th:nth-child(6) { width:80px; } table.fw th:nth-child(7) { width:80px; } table.fw th:nth-child(8) { width:130px; }
table.fw td { overflow-wrap:anywhere; font-size:13px; }
table.fw .fw-name { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
table.fw td.act { overflow-wrap:normal; }
table.fw td { vertical-align:top; padding:8px 10px; } table.fw td.act { white-space:nowrap; text-align:right; }
.w-form label { display:inline-block; margin-right:12px; } .w-form input:not([type=checkbox]), .w-form select { min-width:180px; }

.evd > summary { cursor:pointer; }
.evadv { margin:8px 0 4px; padding:10px 14px; background:#F7F8FC; border:1px solid var(--line); border-radius:8px; max-width:900px; }
.evadv dl { margin:0 0 8px; } .evadv dt { font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin-top:8px; } .evadv dt:first-child { margin-top:0; } .evadv dd { margin:2px 0 0; }
.evadv h4 { margin:10px 0 4px; font-size:13px; }

pre.auditcmd { margin:0 0 4px; padding:6px 8px; background:#0f172a; color:#e2e8f0; border-radius:6px; font-size:12px; white-space:pre-wrap; overflow-wrap:anywhere; max-height:160px; overflow:auto; }
.aibox { margin:10px 0 4px; }
.ai-out { margin-top:8px; padding:10px 14px; background:#fff; border:1px solid var(--line); border-left:4px solid #2B45A0; border-radius:8px; max-width:900px; }
.ai-text { white-space:pre-wrap; overflow-wrap:anywhere; }
.ai-out.bad { border-left-color:#c53030; }

/* Geräteliste: Fernwartungs-Symbol je Zeile */
.drow.two.rmt { grid-template-columns:2.2fr 1.8fr 1.2fr 1.2fr 96px; }
.drow.two.rmt .dlink { display:contents; color:inherit; text-decoration:none; }
.drow.rmt .rmh { text-align:center; } .drow.rmt .rmc { display:flex; justify-content:center; }
.rmb { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:8px; border:1px solid var(--line); background:#fff; color:var(--accent); cursor:pointer; padding:0; }
.rmb:hover { background:#EEF2FC; border-color:var(--accent); } .rmb.off { color:#B6BDCC; background:#F6F7FA; cursor:not-allowed; }
.rmc form { margin:0; }

/* Benutzer-Chat */
.chatlog { border:1px solid #d0d5dd; border-radius:8px; background:#fff; padding:10px; height:380px; overflow-y:auto; margin:10px 0; display:flex; flex-direction:column; gap:8px; }
.cm { max-width:75%; padding:7px 10px; border-radius:10px; background:#eef1f5; align-self:flex-start; }
.cm.tech { background:#dbeafe; align-self:flex-end; }
.cm.system { background:#f4f4f5; color:#555; align-self:center; font-size:90%; }
.cm.req { border:2px solid #b45309; }
.cmh small { color:#667085; } .cmb { white-space:pre-wrap; overflow-wrap:anywhere; }
.chatform { display:flex; gap:8px; align-items:flex-end; } .chatform textarea { flex:1; }
button.hbtn { background:none; border:0; cursor:pointer; color:inherit; } button.hbtn.off { opacity:.45; }

/* Reiter-Gruppen (Werkzeuge, Nachweise) */
.devtabs details.dd { position:relative; }
.devtabs details.dd > summary { list-style:none; cursor:pointer; padding:9px 14px; color:var(--muted); font-weight:600; border-bottom:3px solid transparent; white-space:nowrap; border-radius:6px 6px 0 0; }
.devtabs details.dd > summary::-webkit-details-marker { display:none; }
.devtabs details.dd > summary::after { content:" \25BE"; font-size:11px; }
.devtabs details.dd > summary:hover, .devtabs details.dd[open] > summary { color:var(--accent); background:#fff; }
.devtabs details.dd.on > summary { color:var(--accent); border-bottom-color:var(--accent); background:#fff; }
.devtabs .ddm { position:absolute; top:100%; left:0; z-index:30; min-width:160px; background:#fff; border:1px solid var(--line); border-radius:8px; box-shadow:0 6px 18px rgba(0,0,0,.12); padding:4px; display:flex; flex-direction:column; }
.devtabs .ddm a { border-radius:6px; border-bottom:0; padding:8px 12px; }
.devtabs .ddm a.on { background:#eef3fb; }
