/* Admin → Server (Tab im Admin-Hub). Nur Tokens, kein backdrop-filter, Touch-Ziele >= 44 px. */
.srv { --srv-ok: var(--ok, #3ccf8e); --srv-warn: var(--warn, #f5a524); --srv-bad: var(--danger); }
.srv-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 var(--adm-gap, 14px); flex-wrap: wrap; }
.srv-live { display: inline-flex; align-items: center; gap: 8px; flex: 1 1 200px; min-width: 0; font: 600 13px/1.3 var(--font); color: var(--text-2); }
.srv-pulse { width: 9px; height: 9px; border-radius: 50%; background: var(--text-3); flex: none; }
.srv-pulse.on { background: var(--srv-ok); animation: srv-pulse 2.4s ease-in-out infinite; }
@keyframes srv-pulse { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .srv-pulse.on { animation: none; } }
.srv-bar .btn { min-height: 44px; }
.srv-err { margin: 0 0 12px; padding: 10px 12px; border-radius: 12px; background: color-mix(in srgb, var(--danger) 10%, transparent); }
.srv-pad { margin: 12px 0; }

/* Kennzahlen */
.srv-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 4px 0 8px; }
@media (min-width: 700px) { .srv-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 980px) { .srv-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.srv-tile { display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 12px; border-radius: 16px; background: var(--bg-2); border: 1px solid var(--line); }
.srv-tile-h { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 6px; min-height: 24px; }
.srv-tile-h .adm-badge { padding: 2px 8px; font-size: 11.5px; }
.srv-k { font: 600 12.5px/1.2 var(--font); color: var(--text-3); }
.srv-v { font: 650 22px/1.15 var(--display, var(--font)); letter-spacing: -.01em; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.srv-s { font: 500 12px/1.35 var(--font); color: var(--text-3); overflow-wrap: anywhere; }
.srv-meter { height: 8px; border-radius: 999px; background: color-mix(in srgb, var(--text-3) 22%, transparent); overflow: hidden; margin: 2px 0; }
.srv-meter > i { display: block; height: 100%; border-radius: inherit; background: var(--srv-ok); transition: width .4s var(--ease, ease); }
.srv-meter.warn > i { background: var(--srv-warn); }
.srv-meter.bad > i { background: var(--srv-bad); }

/* Dienste */
.srv-sum { margin: 0 0 8px; }
.srv-ctl { display: grid; gap: 8px; margin: 4px 0 8px; }
@media (min-width: 700px) { .srv-ctl { grid-template-columns: auto 1fr; align-items: center; } }
.srv-ctl .segmented button { min-height: 44px; }
.srv-search { width: 100%; min-height: 44px; box-sizing: border-box; }
.srv-list { list-style: none; margin: 0; padding: 0; }
.srv-list li + li { border-top: 1px solid var(--line); }
.srv-row { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 56px; padding: 8px 2px; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; border-radius: 12px; flex-wrap: wrap; }
.srv-row:focus-visible, .srv-ctl :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.srv-row:active { background: color-mix(in srgb, var(--accent) 8%, transparent); }
.srv-dot { width: 10px; height: 10px; border-radius: 50%; flex: none; background: var(--text-3); }
.srv-dot.ok { background: var(--srv-ok); } .srv-dot.warn { background: var(--srv-warn); } .srv-dot.bad { background: var(--srv-bad); }
.srv-name { flex: 1 1 140px; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.srv-name b { font-weight: 650; font-size: 15px; overflow-wrap: anywhere; }
.srv-name small { font: 500 12px/1.3 var(--font); color: var(--text-3); overflow-wrap: anywhere; }
.srv-mem { font: 600 13px/1 var(--font); color: var(--text-2); font-variant-numeric: tabular-nums; min-width: 56px; text-align: right; }
.srv-row .adm-badge { flex: none; }
.srv-acts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.srv-acts .btn { min-height: 48px; justify-content: center; padding: 0 6px; }
.srv-lock { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 6px 0 10px; padding: 10px 12px; border-radius: 14px; background: color-mix(in srgb, var(--srv-warn) 10%, transparent); font-size: 13.5px; line-height: 1.4; }
.srv-lock > span:nth-child(2) { flex: 1 1 200px; min-width: 0; }
.srv-lock .btn { min-height: 44px; }
.is-locked, .is-off { opacity: .6; }
.is-off { pointer-events: none; display: inline-flex; align-items: center; justify-content: center; }

/* Git */
.srv-commit > span:last-child { max-width: 70%; }

/* Backups */
.srv-bak-list { list-style: none; margin: 0; padding: 0; }
.srv-bak { padding: 10px 0; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 8px; }
.srv-bak-t { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; }
.srv-bak-a { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.srv-bak-a .btn { min-height: 44px; justify-content: center; text-decoration: none; }
.srv-hint { margin: 10px 0 8px; font-size: 13px; }
.srv-sched { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; border-radius: 14px; background: var(--bg-2); font-size: 13.5px; line-height: 1.4; margin-bottom: 4px; }
.srv-note { margin: 8px 0 0; color: var(--text-2); }

/* Job-Log / Audit */
.srv-job-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.srv-job-m { margin: 2px 0 8px; }
.srv-log { margin: 0; padding: 10px 12px; max-height: 260px; overflow: auto; border-radius: 12px; background: var(--bg-2); border: 1px solid var(--line); font: 500 12px/1.5 var(--font-mono, ui-monospace, Menlo, monospace); white-space: pre-wrap; overflow-wrap: anywhere; }
.srv-log:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.srv-code { white-space: pre; overflow-x: auto; max-height: none; }
.srv-au { line-height: 1.55; overflow-wrap: anywhere; }
@media (max-width: 420px) { .srv-acts .btn { font-size: 14px; } .srv-v { font-size: 20px; } }
