*{box-sizing:border-box;margin:0;padding:0}
body{background:#07111f;color:#dce8f5;font-family:Arial,Helvetica,sans-serif;min-height:100vh}

/* Header */
.dash-header{display:flex;align-items:center;justify-content:space-between;padding:0 28px;height:58px;background:#0b1220;border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:0;z-index:10}
.logo{display:flex;align-items:baseline;gap:6px;text-decoration:none}
.logo-main{font-size:26px;font-weight:900;color:#fff;letter-spacing:-1px}
.logo-sub{font-size:12px;color:#5a8aaa;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.header-title{color:#7fa8c8;font-size:13px}
.manager-status{display:flex;align-items:center;gap:8px;font-size:12px;color:#5a8aaa}
.manager-led{width:9px;height:9px;border-radius:50%;background:#3a4a58}
.manager-led.ok{background:#00d084;box-shadow:0 0 8px rgba(0,208,132,.8)}
.manager-led.err{background:#ff5555;box-shadow:0 0 6px rgba(255,85,85,.6)}

/* Hauptbereich */
main{padding:80px 28px 32px;max-width:1400px;margin:0 auto}
.section-title{font-size:22px;font-weight:700;color:#fff;margin-bottom:6px}
.section-sub{font-size:13px;color:#5a8aaa;margin-bottom:28px}

/* Service Grid */
.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}

/* Service Card */
.service-card{background:linear-gradient(145deg,rgba(14,31,52,.96),rgba(8,18,33,.97));border:1px solid rgba(157,205,255,.12);border-radius:18px;overflow:hidden;transition:border-color .3s;display:flex;flex-direction:column}
.service-card.running{border-color:rgba(0,208,132,.35)}

.card-top{padding:14px 18px 12px;border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;gap:10px}
.card-leds{display:flex;flex-direction:column;gap:5px;flex-shrink:0}
.led-row{display:flex;align-items:center;gap:6px}
.led-label{font-size:9px;color:#4a7a9a;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.svc-led{width:11px;height:11px;border-radius:50%;background:#3a4a58;flex-shrink:0;transition:background .3s,box-shadow .3s}
.svc-led.on{background:#00d084;box-shadow:0 0 8px rgba(0,208,132,.9)}
.svc-led.off{background:#ff5555;box-shadow:0 0 6px rgba(255,85,85,.5)}
.svc-led.idle{background:#3a4a58}
.svc-led.rec{background:#00e676;box-shadow:0 0 8px rgba(0,230,118,.9);animation:rec-pulse 1.4s ease-in-out infinite}
@keyframes rec-pulse{0%,100%{box-shadow:0 0 5px rgba(0,230,118,.5)}50%{box-shadow:0 0 16px rgba(0,230,118,1),0 0 28px rgba(0,230,118,.35)}}
.svc-name{font-size:15px;font-weight:800;color:#7ab8d4;flex:1}
.svc-port{font-size:11px;font-family:'Courier New',monospace;color:#4a7a9a;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:3px 8px}

.card-body{padding:14px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.svc-desc{font-size:12px;color:#6a8fa8;line-height:1.4}

.svc-status-row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.svc-status{font-size:11px;font-family:'Courier New',monospace;color:#4a7a9a}
.svc-status.running{color:#00d084}
.svc-log{font-size:10px;font-family:'Courier New',monospace;color:rgba(255,255,255,.3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}

.card-actions{display:flex;gap:8px;margin-top:4px}
.btn-start{flex:1;padding:10px;border-radius:10px;background:linear-gradient(135deg,#00c97a,#00a85a);color:#fff;font-size:13px;font-weight:700;border:none;cursor:pointer;transition:opacity .2s,transform .1s}
.btn-start:hover:not(:disabled){transform:translateY(-1px)}
.btn-start:disabled{background:rgba(255,255,255,.07);color:rgba(255,255,255,.2);cursor:not-allowed}
.btn-stop{padding:10px 16px;border-radius:10px;background:rgba(255,70,70,.1);color:#ff7070;font-size:13px;font-weight:700;border:1px solid rgba(255,70,70,.2);cursor:pointer;transition:background .2s}
.btn-stop:hover:not(:disabled){background:rgba(255,70,70,.2)}
.btn-stop:disabled{opacity:.25;cursor:not-allowed}
.btn-open{padding:10px 14px;border-radius:10px;background:rgba(255,255,255,.06);color:#93c8f0;font-size:12px;font-weight:600;text-decoration:none;display:flex;align-items:center;transition:background .2s;white-space:nowrap}
.btn-open:hover{background:rgba(255,255,255,.12)}
.card-menu-links{display:flex;flex-wrap:wrap;gap:5px;padding:6px 14px 10px;border-top:1px solid rgba(255,255,255,.07)}
.btn-menu{padding:5px 10px;border-radius:7px;background:rgba(255,136,68,.1);border:1px solid rgba(255,136,68,.25);color:#ffaa66;font-size:11px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s;white-space:nowrap}
.btn-menu:hover{background:rgba(255,136,68,.22);border-color:rgba(255,136,68,.5);color:#ffcc99}

/* Config-Felder in Kachel (z.B. S7 IP-Adresse) */
.cfg-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 10px;padding:8px 10px;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.07);border-radius:9px}
.cfg-field{display:flex;flex-direction:column;gap:3px}
.cfg-label{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#4a7a9a}
.cfg-input{background:rgba(0,0,0,.35);border:1px solid rgba(100,160,220,.2);border-radius:6px;padding:5px 8px;font-size:11px;font-family:'Courier New',monospace;color:#a8d0f0;outline:none;width:100%;transition:border-color .2s}
.cfg-input:focus{border-color:rgba(100,180,255,.55);background:rgba(0,0,0,.45)}
.cfg-input[type=number]{-moz-appearance:textfield}
.cfg-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}

/* Hinweis neue Services */
.add-hint{margin-top:32px;padding:18px 22px;border-radius:14px;background:rgba(0,0,0,.25);border:1px dashed rgba(255,255,255,.12);color:#4a7a9a;font-size:13px;line-height:1.6}
.add-hint code{font-family:'Courier New',monospace;color:#7abcf5;background:rgba(0,0,0,.3);padding:2px 6px;border-radius:4px}

/* Keine Services */
.no-manager{padding:60px;text-align:center;color:#4a7a9a}
.no-manager h2{font-size:20px;margin-bottom:10px;color:#7a9ab8}

/* Watchdog */
.watchdog{display:flex;align-items:center;gap:7px;padding:7px 11px;border-radius:9px;font-size:11px;font-weight:700;font-family:'Courier New',monospace}
.watchdog.alive{background:rgba(0,208,132,.1);border:1px solid rgba(0,208,132,.25);color:#00d084}
.watchdog.alarm{background:rgba(255,60,60,.12);border:1px solid rgba(255,60,60,.35);color:#ff6060;animation:wd-pulse 1.2s ease-in-out infinite}
.watchdog.acked{background:rgba(255,180,0,.08);border:1px solid rgba(255,180,0,.2);color:#ffaa00;animation:none}
.watchdog-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.watchdog.alive .watchdog-dot{background:#00d084;box-shadow:0 0 6px rgba(0,208,132,.8)}
.watchdog.alarm .watchdog-dot{background:#ff5050;box-shadow:0 0 6px rgba(255,80,80,.8)}
.watchdog.acked .watchdog-dot{background:#ffaa00;box-shadow:0 0 5px rgba(255,170,0,.6)}
.watchdog-ack{margin-left:auto;padding:2px 8px;border-radius:6px;font-size:10px;font-weight:700;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#cce0f5;cursor:pointer;white-space:nowrap;flex-shrink:0}
.watchdog-ack:hover{background:rgba(255,255,255,.16)}
@keyframes wd-pulse{0%,100%{opacity:1}50%{opacity:.55}}

@media(max-width:700px){main{padding:20px 14px}.dash-header{padding:0 14px}}
