/* PULSiX: compact overview and diagnostics share the same card space. */
#grid-cockpit #pulsix-panel{min-width:0}
#grid-cockpit #pulsix-panel:not(.is-maximized){width:100%}
#grid-cockpit #pulsix-panel>.panel-header{height:25.2px;min-height:25.2px;padding:2px 7px;gap:6px;flex-wrap:nowrap}
#pulsix-panel>.panel-header h2{font-size:11px;letter-spacing:.04em}
#pulsix-panel .pulsix-header-info{display:flex;gap:6px;align-items:center;font-size:9px;color:var(--muted)}
#pulsix-panel .pulsix-header-info>b{font-size:9px;white-space:nowrap;color:var(--cyan)}
#pulsix-panel .pulsix-status-help-toggle{flex:none;min-width:58px;min-height:19px;padding:1px 5px;border:1px solid var(--ui-line);border-radius:4px;background:var(--panel-soft);color:var(--cyan);font:700 9px/1.2 system-ui,sans-serif;cursor:pointer}
#pulsix-panel .pulsix-status-help-toggle:hover,#pulsix-panel .pulsix-status-help-toggle:focus-visible{border-color:var(--cyan);background:color-mix(in srgb,var(--cyan) 12%,var(--panel))}
#pulsix-panel .pulsix-status-help{position:fixed;inset:auto 12px 12px auto;width:min(440px,calc(100vw - 24px));max-height:min(76vh,680px);margin:0;padding:0;border:1px solid var(--cyan);border-radius:8px;background:var(--panel);color:var(--text);box-shadow:0 18px 48px #000c,0 0 18px color-mix(in srgb,var(--cyan) 20%,transparent);overflow:auto}
#pulsix-panel .pulsix-status-help::backdrop{background:#0009}
#pulsix-panel .pulsix-status-help-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--ui-line);color:var(--cyan);font:700 11px/1.4 system-ui,sans-serif}
#pulsix-panel .pulsix-status-help-head button{width:22px;height:22px;padding:0;border:1px solid var(--ui-line);border-radius:4px;background:var(--panel-soft);color:var(--text);font:700 17px/1 system-ui,sans-serif;cursor:pointer}
#pulsix-panel .pulsix-status-help dl{display:grid;gap:0;margin:0;padding:5px 12px 10px;font:11px/1.4 system-ui,sans-serif}
#pulsix-panel .pulsix-status-help dl>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px;padding:6px 0;border-bottom:1px solid var(--ui-line)}
#pulsix-panel .pulsix-status-help dl>div:last-child{border-bottom:0}
#pulsix-panel .pulsix-status-help dt{font-weight:800}
#pulsix-panel .pulsix-status-help dd{margin:0;color:var(--muted)}
#pulsix-panel .pulsix-status-help [data-health=green]{color:#4bdf9a}
#pulsix-panel .pulsix-status-help [data-health=yellow]{color:#f2c65b}
#pulsix-panel .pulsix-status-help [data-health=red]{color:#ff4f68}
#pulsix-panel .pulsix-status-help [data-health=grey]{color:#99a1b3}
@media(max-width:480px){#pulsix-panel .pulsix-status-help dl>div{grid-template-columns:1fr;gap:2px}}
#pulsix-panel>.pulsix-body{padding:9px;container-type:inline-size}
#pulsix-panel .pulsix-hosts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;align-items:stretch;height:auto!important}
#pulsix-panel .pulse-host{min-width:0;padding:9px!important;display:flex;flex-direction:column;border:1px solid var(--ui-line);border-radius:8px}
#pulsix-panel .pulse-host header{display:grid;grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr);gap:5px;align-items:center;margin:0 0 9px;padding-bottom:8px;border-bottom:1px solid var(--ui-line);min-height:42px}
#pulsix-panel .pulse-title small{display:block;font:9px/1.3 system-ui,sans-serif;color:var(--muted)}
#pulsix-panel .pulse-title>div{display:flex;align-items:center;gap:5px;min-width:0}
#pulsix-panel .pulse-title i{color:var(--cyan);font-size:12px}
#pulsix-panel .pulse-title strong{font:700 12px/1.5 system-ui,sans-serif;color:var(--cyan);letter-spacing:.02em}
#pulsix-panel .pulse-critical{color:#ff4f68!important}
#pulsix-panel .pulse-critical[hidden]{display:none}
#pulsix-panel .pulse-diagnostic-toggle{display:grid;place-items:center;width:26px;height:26px;padding:0;border-radius:5px;font-size:13px;color:var(--cyan);background:var(--panel-soft);border:1px solid var(--ui-line)}
#pulsix-panel .pulse-diagnostic-toggle[aria-pressed=true]{border-color:var(--cyan);background:color-mix(in srgb,var(--cyan) 13%,var(--panel))}
#pulsix-panel .pulse-status{display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:0}
#pulsix-panel .pulse-health{margin:0;font:650 8px/1.4 system-ui,sans-serif;padding:3px 4px;border:1px solid currentColor;border-radius:4px;max-width:100%;white-space:normal;overflow-wrap:anywhere;color:#99a1b3;cursor:help}
#pulsix-panel [data-health=green]{color:#4bdf9a}
#pulsix-panel [data-health=yellow]{color:#f2c65b}
#pulsix-panel [data-health=red]{color:#ff4f68}
#pulsix-panel [data-health=grey]{color:#99a1b3}
#pulsix-panel .pulse-labels{display:flex;gap:3px;margin:0;font:600 6px/1.4 system-ui,sans-serif;color:var(--pink);flex-wrap:wrap;justify-content:flex-end}
#pulsix-panel .pulse-labels span{padding:1px 2px;border:1px solid var(--ui-line);border-radius:3px}
#pulsix-panel .pulse-faces{display:grid;min-width:0;flex:1}
#pulsix-panel .pulse-faces>div{grid-area:1/1;min-width:0;transition:opacity .18s ease,visibility .18s ease}
#pulsix-panel .pulse-overview{opacity:1;visibility:visible}
#pulsix-panel .pulse-diagnostics{opacity:0;visibility:hidden;pointer-events:none;margin:0;padding:0;border:0}
#pulsix-panel .is-diagnostic .pulse-overview{opacity:0;visibility:hidden;pointer-events:none}
#pulsix-panel .is-diagnostic .pulse-diagnostics{opacity:1;visibility:visible;pointer-events:auto}
#pulsix-panel .pulse-essentials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 8px}
#pulsix-panel .pulse-metric{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:3px;font:9px/1.4 system-ui,sans-serif;color:var(--muted);min-width:0}
#pulsix-panel .pulse-metric>b{margin:0;font:650 14px/1.4 system-ui,sans-serif;color:var(--text);font-variant-numeric:tabular-nums}
#pulsix-panel .pulse-meter{display:block;grid-column:1/-1;height:3px;width:100%;background:color-mix(in srgb,var(--text) 8%,transparent);border:0;border-radius:3px;overflow:hidden}
#pulsix-panel .pulse-meter>span{display:block;height:100%;width:0;background:var(--cyan);border-radius:3px;max-width:100%}
#pulsix-panel [data-pulse-metric=ram] .pulse-meter>span{background:var(--pink)}
#pulsix-panel .pulse-traffic{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:9px}
#pulsix-panel .pulse-traffic .pulse-metric{display:flex;flex-direction:row;gap:4px;white-space:nowrap;font-size:8px}
#pulsix-panel .pulse-traffic .pulse-metric>b{font:600 9px/1.4 system-ui,sans-serif;white-space:nowrap;letter-spacing:0}
#pulsix-panel .pulse-storage{display:grid;grid-template-columns:1fr;gap:8px;padding-top:8px;border-top:1px solid var(--ui-line)}
#pulsix-panel .pulse-storage-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 6px;font:600 9px/1.4 system-ui,sans-serif;color:var(--muted);min-width:0}
#pulsix-panel .pulse-storage-row>b{font:650 10px/1.4 system-ui,sans-serif;color:var(--text);text-align:right}
#pulsix-panel .pulse-storage-row>small{grid-column:1/-1;font:400 9px/1.4 system-ui,sans-serif;color:var(--muted);overflow-wrap:anywhere}
#pulsix-panel .pulse-storage-row>small:empty{display:none}
#pulsix-panel .pulse-diagnostics dl{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:6px 8px;margin:0;padding:0;font:9px/1.4 system-ui,sans-serif}
#pulsix-panel .pulse-diagnostics dt{color:var(--muted)}
#pulsix-panel .pulse-diagnostics dd{margin:0;overflow-wrap:anywhere;white-space:normal;color:var(--text)}
#pulsix-panel .pulse-diagnostics [data-pulse-detail=HEALTH]{line-height:1.4}
@container(max-width:740px){#pulsix-panel .pulsix-hosts{grid-template-columns:1fr}}
@media(max-width:700px){#grid-cockpit #pulsix-panel>.panel-header{height:27.3px;min-height:27.3px}}
@media(max-width:600px){#pulsix-panel>.panel-header h2>span,#pulsix-panel #pulsix-freshness{display:none}#pulsix-panel .pulsix-header-info>b{font-size:8px}#pulsix-panel .pulsix-header-info{flex:none;gap:0}}
@media(prefers-reduced-motion:reduce){#pulsix-panel .pulse-faces>div{transition:none}}

/* Every host uses the Quasar storage layout: name, free space, capacity, then usage. */
#pulsix-panel .pulse-storage-row{grid-template-columns:auto minmax(0,1fr) auto;gap:3px 6px;align-items:baseline}
#pulsix-panel .pulse-storage-row>span{grid-column:1;grid-row:1;white-space:nowrap}
#pulsix-panel .pulse-storage-row>b{grid-column:3;grid-row:1;white-space:nowrap}
#pulsix-panel .pulse-storage-row>small{grid-column:2;grid-row:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right;font-size:8px}
#pulsix-panel .pulse-storage-row>.pulse-meter{grid-column:1/-1;grid-row:2}

/* Three consistent storage slots on every host. */
#pulsix-panel .pulse-storage{gap:6px}
#pulsix-panel [data-pulse-host=core]{--host-accent:#FF4FA3}
#pulsix-panel [data-pulse-host=game]{--host-accent:#AD88FF}
#pulsix-panel [data-pulse-host=nova]{--host-accent:#35DFE6}
#grid-cockpit #pulsix-panel .pulse-title strong{color:var(--host-accent)}
#grid-cockpit #pulsix-panel .pulse-title>div>i:first-child{display:grid;place-items:center;flex:none;width:24px;height:24px;font-size:14px;border:1px solid color-mix(in srgb,var(--host-accent) 55%,transparent);border-radius:6px;color:var(--host-accent);background:linear-gradient(145deg,color-mix(in srgb,var(--host-accent) 22%,var(--panel)),var(--panel));box-shadow:inset 0 1px 0 #ffffff14,0 0 7px color-mix(in srgb,var(--host-accent) 14%,transparent)}

/* Role labels start above the server name; capacity sits above the RAM meter. */
#pulsix-panel .pulse-title>small{padding-left:29px}
#pulsix-panel .pulse-ram-label{display:flex;align-items:baseline;gap:4px;white-space:nowrap}
#pulsix-panel .pulse-ram-capacity{font:650 10px/1.4 system-ui,sans-serif;color:var(--host-accent);font-variant-numeric:tabular-nums}
#pulsix-panel .pulse-storage-row>span{font-size:8px}

/* Management controls share a compact footer on every host. */
#pulsix-panel .pulse-card-footer{margin-top:10px;padding-top:8px;border-top:1px solid var(--ui-line)}
#pulsix-panel .pulse-admin-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
#pulsix-panel .pulse-admin-links a{display:flex;align-items:center;justify-content:center;gap:5px;min-height:25px;padding:4px;border:1px solid color-mix(in srgb,var(--host-accent) 45%,var(--ui-line));border-radius:5px;background:var(--panel-soft);color:var(--host-accent);font:600 10px/1.3 system-ui,sans-serif;text-decoration:none;white-space:nowrap}
#pulsix-panel .pulse-admin-links a i{font-size:10px}
#pulsix-panel .pulse-admin-links a:hover,#pulsix-panel .pulse-admin-links a:focus-visible{border-color:var(--host-accent);background:color-mix(in srgb,var(--host-accent) 13%,var(--panel));box-shadow:0 0 5px color-mix(in srgb,var(--host-accent) 18%,transparent)}
/* Keep the existing alignment height as a minimum while accommodating the footers. */
#grid-cockpit .grid-body.pulsix-top-aligned #pulsix-panel:not(.is-minimized):not(.is-maximized){height:auto;min-height:var(--top-panel-height)}
#grid-cockpit .grid-body.pulsix-top-aligned #pulsix-panel:not(.is-minimized):not(.is-maximized) .pulsix-hosts{height:auto!important}

/* Six consistent management slots; all QUASAR TX links share the second row. */
#grid-cockpit #pulsix-panel .pulse-host{container-type:inline-size}
#grid-cockpit #pulsix-panel .pulse-admin-links{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,25px);gap:6px;width:100%;flex:none}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button){display:flex;align-items:center;justify-content:center;gap:3px;width:100%;height:25px;min-height:25px;min-width:0;padding:3px;box-sizing:border-box;border:1px solid color-mix(in srgb,var(--host-accent) 60%,var(--ui-line));border-radius:5px;background:color-mix(in srgb,var(--host-accent) 7%,var(--panel));color:var(--host-accent);font:600 9px/1.3 system-ui,sans-serif;text-decoration:none;white-space:nowrap}
#grid-cockpit #pulsix-panel .pulse-admin-links a i{font-size:9px;color:inherit}
#grid-cockpit #pulsix-panel .pulse-admin-links button:disabled{opacity:1;cursor:default;box-shadow:none}
#grid-cockpit #pulsix-panel .pulse-admin-links a:hover,#grid-cockpit #pulsix-panel .pulse-admin-links a:focus-visible{color:var(--host-accent);border-color:var(--host-accent);background:color-mix(in srgb,var(--host-accent) 15%,var(--panel));box-shadow:0 0 5px color-mix(in srgb,var(--host-accent) 18%,transparent)}
@container(max-width:200px){#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button){gap:2px;padding:2px;font-size:8px}#grid-cockpit #pulsix-panel .pulse-admin-links a i{font-size:8px}}

/* Keep PULSiX shortcut icons on the same line as their labels. */
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button){flex-direction:row;align-items:center;justify-content:center;gap:3px;padding:1px 3px;line-height:1}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button) i{display:inline-block;flex:none;font-size:10px;line-height:1}
#grid-cockpit #pulsix-panel .pulse-admin-links .quick-tile span{display:inline;white-space:nowrap}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button)[data-system-request="DOiT"] i{color:#42d6ff}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button)[data-drawer-trigger="fix"] i{color:#ff74d4}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button)[data-drawer-trigger="dir"] i{color:#ffd166}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button)[data-activity-system="DOCS"] i{color:#ffbd66}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button)[data-activity-system="MEDIA"] i{color:#f978cf}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button)[data-activity-system="Runtipi"] i{color:#69e0b4}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button)[title="Open AMP"] i{color:#c7a4ff}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button)[data-activity-system="MODiX"] i{color:#ff82e5}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button)[aria-label="Pelican"] i{color:#8be3ff}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button)[title="Open TxAMP1"] i{color:#90aaff}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button)[title="Open txAdmin 1"] i{color:#56dcff}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button)[title="Open txAdmin 2"] i{color:#c79cff}
#grid-cockpit #pulsix-panel .pulse-admin-links :is(a,button) span{color:#d8f4ff;font-size:10px;font-weight:650;line-height:14px}

/* txAdmin shortcuts: one terminal icon and one turquoise accent. */
#grid-cockpit #pulsix-panel .pulse-admin-links a.txadmin-link i{color:#37dfdf}

/* Runtipi replaces the CORE caption and remains a working link. */
#grid-cockpit #pulsix-panel [data-pulse-host="core"] .pulse-title>small{padding-left:0}
#grid-cockpit #pulsix-panel .pulse-runtipi-heading{display:inline-flex;align-items:center;gap:5px;color:#d8f4ff;text-decoration:none;font:650 10px/1.3 system-ui,sans-serif}
#grid-cockpit #pulsix-panel .pulse-runtipi-heading i{display:grid;place-items:center;flex:none;width:24px;height:13px;color:#69e0b4;font-size:12px}
#grid-cockpit #pulsix-panel .pulse-runtipi-heading:hover,#grid-cockpit #pulsix-panel .pulse-runtipi-heading:focus-visible{color:#69e0b4;text-decoration:underline}

/* Keep the three host cards on the same overview and diagnostics grid. */
#grid-cockpit #pulsix-panel .pulse-storage-row.is-disconnected>b{color:#ffad42}
#grid-cockpit #pulsix-panel .pulse-storage-row.is-disconnected>.pulse-meter{opacity:.45}

/* Fresh telemetry status sits directly above each host name. */
#pulsix-panel .pulse-online{display:block;padding-left:29px;margin-bottom:0;font:700 8px/1.2 system-ui,sans-serif;letter-spacing:.07em;color:#99a1b3}
#pulsix-panel .pulse-online[data-online=online]{color:#4bdf9a}
#pulsix-panel .pulse-online[data-online=stale]{color:#f2c65b}
