:root{--bg:#0f1513;--surface:#171f1c;--surface2:#202a25;--border:#344039;--text:#eef2ef;--muted:#96a39b;--green:#70c996;--blue:#9bd4b0;--panel-radius:10px}
.sidebar{width:auto;background:#151d1a}.brand{padding:22px 18px 18px}.brand strong{font-size:15px}.brand small{margin-top:5px}.sidebar nav{padding:5px 0 16px}.nav-group{padding:8px 0}.nav-group>span{padding:5px 18px;color:#78867e;font-size:9px}.sidebar button,.nav-external{min-height:34px;padding:7px 18px;border-left:2px solid transparent;font-size:12px}.nav-external{display:flex!important;align-items:center;justify-content:space-between;color:var(--muted);text-decoration:none}.nav-external:hover{color:var(--text);background:var(--surface2);text-decoration:none}.nav-external b{color:var(--green);font-weight:500}.logout-btn{min-height:44px;padding:11px 18px}.topbar{position:sticky;top:0;z-index:8;height:68px;padding:0 30px;border-radius:0;background:rgba(23,31,28,.94);backdrop-filter:blur(14px)}.topbar h1{font-size:22px}.topbar-title span{font-size:11px}.status-strip{padding:8px 30px;background:#111815}.content{max-width:1500px;padding:26px 30px 64px}.card{border-radius:10px}.dashboard-kpis{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:16px;border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}.dashboard-kpis>div{padding:17px 18px;border-right:1px solid var(--border)}.dashboard-kpis>div:last-child{border:0}.dashboard-kpis span{display:block;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.dashboard-kpis strong{display:block;margin-top:4px;font-size:23px;letter-spacing:-.04em}.dash-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:26px}.dash-actions a,.dash-actions button{display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:0 14px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font:600 11px var(--font);text-decoration:none;cursor:pointer}.dash-actions a:hover,.dash-actions button:hover{border-color:#53655b;background:var(--surface2);text-decoration:none}.dash-actions span{color:var(--green)}.dash-section{margin-bottom:18px;border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}.dash-section-head{display:flex;align-items:center;justify-content:space-between;padding:15px 17px;border-bottom:1px solid var(--border)}.dash-section-head span{display:block;margin-bottom:2px;color:var(--green);font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.dash-section-head h2{font-size:14px}.node-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border)}.node-mini{padding:16px;background:var(--surface)}.node-mini.offline{opacity:.68}.node-mini header{display:flex;align-items:start;justify-content:space-between;gap:10px}.node-mini header strong{display:block;font-size:13px;text-transform:uppercase}.node-mini header div span{display:block;margin-top:3px;color:var(--muted);font-size:9px}.node-metrics{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:15px 0;background:var(--border)}.node-metrics div{padding:9px 10px;background:var(--surface2)}.node-metrics span{display:block;color:var(--muted);font-size:8px;text-transform:uppercase}.node-metrics strong{font-size:12px}.node-mini footer{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:9px}.node-mini footer b{color:var(--red);font-weight:650}.dash-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dash-chart{display:flex;align-items:end;gap:5px;height:205px;padding:22px 17px 15px}.dash-chart>div{display:flex;flex:1;height:100%;min-width:0;flex-direction:column;justify-content:end;gap:6px;text-align:center}.dash-chart i{display:block;min-height:3px;border-radius:2px 2px 0 0;background:linear-gradient(180deg,var(--green),#315f45)}.dash-chart span{color:var(--muted);font:8px var(--mono);transform:rotate(-45deg);white-space:nowrap}.dash-events{padding:3px 16px}.dash-event{display:grid;grid-template-columns:7px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.dash-event:last-child{border:0}.event-dot{width:6px;height:6px;border-radius:50%;background:var(--green)}.dash-event strong{display:block;font-size:10px}.dash-event small{display:block;max-width:280px;overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.dash-event time{color:var(--muted);font:8px var(--mono)}.empty-state{padding:22px;color:var(--muted);font-size:11px}
.hl-node-wrap{margin-bottom:24px}.hl-hero-card{border-color:#435048}.hl-node-name{text-transform:uppercase}.hl-iface-head .badge.bad{box-shadow:0 0 0 1px rgba(255,152,144,.15)}.hl-iface-head .badge.ok{color:var(--green)}
.hl-summary-section{margin:20px 0 18px;border:1px solid var(--border);border-radius:var(--panel-radius);background:var(--surface);overflow:hidden}.hl-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid var(--border)}.hl-summary-head h2{margin:3px 0 5px;font-size:18px}.hl-summary-head p{margin:0;color:var(--muted);font-size:11px}.hl-summary-source{padding:6px 9px;border:1px solid var(--border);border-radius:5px;color:var(--muted);font:10px var(--mono);white-space:nowrap}.hl-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border)}.hl-summary-card{display:flex;min-width:0;min-height:224px;margin:0;border:0;border-radius:0;background:var(--surface);flex-direction:column;padding:17px}.hl-summary-card.is-offline{background:color-mix(in srgb,var(--surface) 86%,var(--surface2))}.hl-summary-total{background:var(--surface2)}.hl-summary-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.hl-summary-kicker{display:block;color:var(--green);font-size:9px;font-weight:800;letter-spacing:.12em}.hl-summary-card h3{margin:5px 0 4px;font-size:18px;letter-spacing:.01em}.hl-summary-card p{margin:0;color:var(--muted);font-size:10px;line-height:1.45}.hl-summary-mono{font-family:var(--mono);font-size:9px}.hl-summary-metrics{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:17px 0;background:var(--border)}.hl-summary-metrics div{min-width:0;padding:9px 10px;background:var(--surface2)}.hl-summary-card.is-offline .hl-summary-metrics div{background:var(--surface)}.hl-summary-metrics span{display:block;color:var(--muted);font-size:8px;letter-spacing:.04em;text-transform:uppercase}.hl-summary-metrics strong{display:block;margin-top:4px;color:var(--text);font:600 15px var(--mono);white-space:nowrap}.hl-summary-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;color:var(--muted);font-size:9px}.hl-summary-card footer span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hl-summary-age{font-family:var(--mono);white-space:nowrap}.hl-details-stack{display:grid;gap:18px;margin-top:18px}.hl-details-stack .hl-node-wrap,.hl-details-stack .hl-node-detail{margin:0}.hl-node-detail{padding:18px}.hl-node-offline{border-color:color-mix(in srgb,var(--red) 35%,var(--border));background:var(--surface)}.hl-node-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.hl-offline-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:18px 0;background:var(--border)}.hl-offline-grid div{padding:12px;background:var(--surface2)}.hl-offline-grid span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase}.hl-offline-grid strong{display:block;margin-top:6px;font:600 16px var(--mono)}.hl-offline-copy{max-width:760px;margin:0;font-size:12px;line-height:1.55}
@media(max-width:1100px){.node-overview{grid-template-columns:1fr}.dash-columns{grid-template-columns:1fr}}@media(max-width:900px){.sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px}.nav-group{min-width:0}.content{padding:20px 16px}.dashboard-kpis,.dash-actions{grid-template-columns:1fr 1fr}.topbar{position:relative;padding:16px}.node-overview{grid-template-columns:1fr}}@media(max-width:520px){.dashboard-kpis{grid-template-columns:1fr 1fr}.dashboard-kpis>div:nth-child(2){border-right:0}.dashboard-kpis>div:nth-child(-n+2){border-bottom:1px solid var(--border)}.dash-actions{grid-template-columns:1fr}.dash-event{grid-template-columns:7px minmax(0,1fr)}.dash-event time{grid-column:2}.sidebar nav{grid-template-columns:1fr 1fr}.hl-metrics-grid{grid-template-columns:1fr 1fr}}
@media(max-width:1180px){.hl-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.hl-summary-grid{grid-template-columns:1fr}.hl-summary-head{padding:15px;flex-direction:column;gap:10px}.hl-summary-card{min-height:0}.hl-offline-grid{grid-template-columns:1fr 1fr}.hl-details-stack{gap:14px}}

.hl-details-stack{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:1px;background:transparent;border:0;overflow:visible}
.hl-details-stack>.hl-node-wrap,.hl-details-stack>.hl-node-detail{min-width:0;margin:0;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--panel-radius)}
.hl-details-stack .card{min-height:0}
.hl-details-stack>.hl-node-wrap>.card{border-radius:6px}
.hl-total-detail-wrap{display:flex;flex-direction:column;gap:12px}
.hl-total-detail-card{height:fit-content;background:var(--surface2)}
.hl-total-detail-note{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
@media(max-width:1180px){.hl-details-stack{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.hl-details-stack{grid-template-columns:1fr}.hl-details-stack>.hl-node-wrap,.hl-details-stack>.hl-node-detail{padding:10px}}

.hl-details-explorer{margin-top:18px;border:1px solid var(--border);border-radius:var(--panel-radius);background:var(--surface);overflow:hidden}
.hl-details-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid var(--border)}
.hl-details-toolbar h2{margin:3px 0 5px;font-size:18px}.hl-details-toolbar p{margin:0;color:var(--muted);font-size:11px}.hl-details-search{display:flex;flex-direction:column;gap:5px;min-width:260px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.hl-details-search .input{width:100%;margin:0}
.hl-details-tabs{display:flex;gap:6px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--surface2);overflow-x:auto}.hl-detail-tab{padding:8px 13px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font:600 11px var(--font);white-space:nowrap;cursor:pointer}.hl-detail-tab:hover,.hl-detail-tab.is-active{border-color:var(--green-line);background:var(--green-soft);color:var(--text)}
.hl-details-explorer .hl-details-stack{display:grid;grid-template-columns:1fr;gap:18px;margin:0;padding:18px;background:var(--bg);border:0;border-radius:0;overflow:visible}.hl-details-explorer .hl-details-stack>.hl-node-wrap,.hl-details-explorer .hl-details-stack>.hl-node-detail{padding:18px;border:1px solid var(--border);border-radius:var(--panel-radius);background:var(--surface)}.hl-details-explorer .hl-details-stack>.hl-node-wrap>.card{border-radius:var(--radius)}.hl-details-explorer .hl-details-stack>[hidden]{display:none!important}.hl-details-explorer>.empty-state{margin:18px}
@media(max-width:640px){.hl-details-toolbar{padding:15px;align-items:stretch;flex-direction:column;gap:12px}.hl-details-search{min-width:0}.hl-details-tabs{padding:10px 15px}.hl-details-explorer .hl-details-stack{padding:12px;gap:12px}.hl-details-explorer .hl-details-stack>.hl-node-wrap,.hl-details-explorer .hl-details-stack>.hl-node-detail{padding:12px}}
.hl-summary-card{--hl-accent:var(--green);--hl-accent-soft:var(--green-soft);border-top:3px solid var(--hl-accent);cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.hl-summary-card:hover{background:color-mix(in srgb,var(--surface) 92%,var(--hl-accent));transform:translateY(-1px)}.hl-summary-card:focus-visible{outline:2px solid var(--hl-accent);outline-offset:-3px}.hl-summary-card.hl-node-pve1{--hl-accent:#6ed7ff;--hl-accent-soft:rgba(110,215,255,.12)}.hl-summary-card.hl-node-pve2{--hl-accent:#e9bf69;--hl-accent-soft:rgba(233,191,105,.13)}.hl-summary-card.hl-node-pve3{--hl-accent:#c49bff;--hl-accent-soft:rgba(196,155,255,.13)}.hl-summary-card.hl-summary-total{--hl-accent:var(--green);cursor:default}.hl-summary-card.hl-summary-total:hover{transform:none}.hl-summary-card .hl-summary-kicker{color:var(--hl-accent)}.hl-summary-card .badge.ok{color:var(--hl-accent);border-color:color-mix(in srgb,var(--hl-accent) 38%,transparent);background:var(--hl-accent-soft)}
.hl-details-tabs .hl-detail-tab{border-color:color-mix(in srgb,var(--tab-accent,var(--border)) 38%,var(--border));color:var(--tab-accent,var(--muted))}.hl-details-tabs .hl-detail-tab[data-detail-tab=pve1]{--tab-accent:#6ed7ff}.hl-details-tabs .hl-detail-tab[data-detail-tab=pve2]{--tab-accent:#e9bf69}.hl-details-tabs .hl-detail-tab[data-detail-tab=pve3]{--tab-accent:#c49bff}.hl-details-tabs .hl-detail-tab[data-detail-tab=total]{--tab-accent:var(--green)}.hl-details-tabs .hl-detail-tab:hover,.hl-details-tabs .hl-detail-tab.is-active{background:color-mix(in srgb,var(--tab-accent) 14%,transparent);border-color:color-mix(in srgb,var(--tab-accent) 65%,var(--border));color:var(--tab-accent)}
.hl-details-explorer .hl-details-stack>[data-detail-node]{--hl-accent:var(--green);border-left:3px solid var(--hl-accent)}.hl-details-explorer .hl-details-stack>[data-detail-node=pve1]{--hl-accent:#6ed7ff}.hl-details-explorer .hl-details-stack>[data-detail-node=pve2]{--hl-accent:#e9bf69}.hl-details-explorer .hl-details-stack>[data-detail-node=pve3]{--hl-accent:#c49bff}.hl-details-explorer .hl-details-stack>[data-detail-node=total]{--hl-accent:var(--green)}.hl-details-explorer .hl-details-stack>[data-detail-node] .hl-section-label{color:var(--hl-accent)}
.hl-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.hl-section-head .hl-section-label{margin-bottom:0}.hl-section-source{padding:4px 8px;border:1px solid color-mix(in srgb,var(--green) 35%,var(--border));border-radius:999px;color:var(--green);font:10px var(--mono);white-space:nowrap}
.hl-hw-spec{display:grid;gap:10px}.hl-hw-sec{padding:12px;border:1px solid var(--border-soft);border-radius:8px;background:color-mix(in srgb,var(--surface2) 56%,transparent)}.hl-hw-stitle{margin-bottom:8px;color:var(--hl-accent,var(--green));font:700 10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.hl-hw-row{display:grid;grid-template-columns:minmax(112px,.34fr) minmax(0,1fr);gap:12px;padding:7px 0;border-top:1px solid var(--border-soft);font-size:11px;line-height:1.4}.hl-hw-row:first-of-type{border-top:0}.hl-hw-k{color:var(--muted);font-weight:600}.hl-hw-module{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;padding:7px 0;border-top:1px solid var(--border-soft);font-size:11px;line-height:1.4}.hl-hw-slot{color:var(--muted);font:10px var(--mono)}
@media(max-width:640px){.hl-hw-row{grid-template-columns:1fr;gap:3px}.hl-hw-module{grid-template-columns:1fr;gap:3px}}

/* Homelab device identity: every node keeps a distinct, restrained accent. */
.hl-summary-card{--hl-accent:var(--green);--hl-accent-soft:var(--green-soft);border-top:3px solid var(--hl-accent);cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.hl-summary-card:hover{background:color-mix(in srgb,var(--surface) 92%,var(--hl-accent));transform:translateY(-1px)}.hl-summary-card:focus-visible{outline:2px solid var(--hl-accent);outline-offset:-3px}.hl-summary-card.hl-node-pve1{--hl-accent:#6ed7ff;--hl-accent-soft:rgba(110,215,255,.12)}.hl-summary-card.hl-node-pve2{--hl-accent:#e9bf69;--hl-accent-soft:rgba(233,191,105,.13)}.hl-summary-card.hl-node-pve3{--hl-accent:#c49bff;--hl-accent-soft:rgba(196,155,255,.13)}.hl-summary-card.hl-summary-total{--hl-accent:var(--green);cursor:default}.hl-summary-card.hl-summary-total:hover{transform:none}.hl-summary-card .hl-summary-kicker{color:var(--hl-accent)}.hl-summary-card .badge.ok{color:var(--hl-accent);border-color:color-mix(in srgb,var(--hl-accent) 38%,transparent);background:var(--hl-accent-soft)}
.hl-details-tabs .hl-detail-tab{border-color:color-mix(in srgb,var(--tab-accent,var(--border)) 38%,var(--border));color:var(--tab-accent,var(--muted))}.hl-details-tabs .hl-detail-tab[data-detail-tab=pve1]{--tab-accent:#6ed7ff}.hl-details-tabs .hl-detail-tab[data-detail-tab=pve2]{--tab-accent:#e9bf69}.hl-details-tabs .hl-detail-tab[data-detail-tab=pve3]{--tab-accent:#c49bff}.hl-details-tabs .hl-detail-tab[data-detail-tab=total]{--tab-accent:var(--green)}.hl-details-tabs .hl-detail-tab:hover,.hl-details-tabs .hl-detail-tab.is-active{background:color-mix(in srgb,var(--tab-accent) 14%,transparent);border-color:color-mix(in srgb,var(--tab-accent) 65%,var(--border));color:var(--tab-accent)}
.hl-details-explorer .hl-details-stack>[data-detail-node]{--hl-accent:var(--green);border-left:3px solid var(--hl-accent)}.hl-details-explorer .hl-details-stack>[data-detail-node=pve1]{--hl-accent:#6ed7ff}.hl-details-explorer .hl-details-stack>[data-detail-node=pve2]{--hl-accent:#e9bf69}.hl-details-explorer .hl-details-stack>[data-detail-node=pve3]{--hl-accent:#c49bff}.hl-details-explorer .hl-details-stack>[data-detail-node=total]{--hl-accent:var(--green)}.hl-details-explorer .hl-details-stack>[data-detail-node] .hl-section-label{color:var(--hl-accent)}
.hl-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.hl-section-head .hl-section-label{margin-bottom:0}.hl-section-source{padding:4px 8px;border:1px solid color-mix(in srgb,var(--green) 35%,var(--border));border-radius:999px;color:var(--green);font:10px var(--mono);white-space:nowrap}
.hl-hw-spec{display:grid;gap:10px}.hl-hw-sec{padding:12px;border:1px solid var(--border-soft);border-radius:8px;background:color-mix(in srgb,var(--surface2) 56%,transparent)}.hl-hw-stitle{margin-bottom:8px;color:var(--hl-accent,var(--green));font:700 10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.hl-hw-row{display:grid;grid-template-columns:minmax(112px,.34fr) minmax(0,1fr);gap:12px;padding:7px 0;border-top:1px solid var(--border-soft);font-size:11px;line-height:1.4}.hl-hw-row:first-of-type{border-top:0}.hl-hw-k{color:var(--muted);font-weight:600}.hl-hw-module{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;padding:7px 0;border-top:1px solid var(--border-soft);font-size:11px;line-height:1.4}.hl-hw-slot{color:var(--muted);font:10px var(--mono)}
@media(max-width:640px){.hl-hw-row{grid-template-columns:1fr;gap:3px}.hl-hw-module{grid-template-columns:1fr;gap:3px}}
