
.vxCabinetStatusHost{position:relative;display:inline-flex;align-items:center;flex:0 0 auto}
.vxCabinetStatusTrigger{display:inline-flex;align-items:center;gap:6px;padding:6px 7px;border:0;border-radius:8px;background:transparent;color:#86efac;font:inherit;font-size:13px;white-space:nowrap;cursor:pointer}
.vxCabinetServerStatus .vxCabinetStatusTrigger{padding:10px 12px;border:1px solid #26364b;border-radius:11px;background:#111c2c;color:#d8e0eb;font-weight:600}
.vxCabinetStatusTrigger:hover,.vxCabinetStatusHost.is-open .vxCabinetStatusTrigger{background:rgba(255,255,255,.065)}
.vxCabinetStatusSummary,.vxCabinetServerCount{margin-left:3px;color:#94a3b8;font-size:11px;font-weight:700}
.vxCabinetStatusSummary.online{color:#86efac}.vxCabinetStatusSummary.warning{color:#fbbf24}.vxCabinetStatusSummary.offline{color:#fca5a5}
.vxCabinetStatusDot{width:7px;height:7px;display:inline-block;flex:0 0 auto;border-radius:50%;background:#64748b;box-shadow:0 0 0 3px rgba(100,116,139,.12)}
.vxCabinetStatusDot.online{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.12)}
.vxCabinetStatusDot.warning{background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.12)}
.vxCabinetStatusDot.offline{background:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.12)}
.vxCabinetStatusChevron{font-size:10px;opacity:.75}
.vxCabinetStatusPanel{position:absolute;top:calc(100% + 8px);left:0;z-index:10080;width:min(390px,calc(100vw - 24px));padding:12px;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:rgba(11,16,27,.99);box-shadow:0 20px 55px rgba(0,0,0,.5);opacity:0;visibility:hidden;transform:translateY(-5px);pointer-events:none;transition:opacity .14s ease,visibility .14s ease,transform .14s ease}
.vxCabinetServerStatus .vxCabinetStatusPanel{right:0;left:auto}
.vxCabinetStatusHost:hover .vxCabinetStatusPanel,.vxCabinetStatusHost.is-open .vxCabinetStatusPanel,.vxCabinetStatusHost:focus-within .vxCabinetStatusPanel{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.vxCabinetStatusTitle{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:#eef2ff;font-size:13px}
.vxCabinetStatusTitle a,.vxCabinetStatusTitle button{padding:0;border:0;background:none;color:#93c5fd;font:inherit;font-size:11px;text-decoration:none;cursor:pointer}
.vxCabinetStatusGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.vxCabinetStatusCard{display:flex;align-items:center;gap:8px;min-width:0;padding:8px;border:1px solid rgba(148,163,184,.15);border-radius:10px;background:rgba(255,255,255,.035)}
.vxCabinetStatusCard>div{min-width:0}.vxCabinetStatusCard b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#eef2ff;font-size:12px}.vxCabinetStatusCard small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#94a3b8;font-size:10px}
.vxCabinetStatusEmpty{padding:10px;color:#94a3b8;font-size:12px;text-align:center}
.vxInternalHealth,.vxOpsIncidentBanner{display:none!important}
@media(max-width:760px){.vxCabinetStatusPanel{position:fixed;top:62px;right:12px!important;left:12px!important;width:auto}.vxCabinetStatusGrid{grid-template-columns:1fr}.vxCabinetStatusTrigger{font-size:12px}}


/* SA merge: keep the management header and External Billing button at the top. */
.vxSaTopHeader.vxSaMergedHeader{
  display:block!important;
  order:-100!important;
  margin:0 0 14px!important;
  padding:0 0 14px!important;
  border-bottom:1px solid rgba(148,163,184,.18)!important
}
.vxSaMergedHeader h1,.vxSaMergedHeader h2,.vxSaMergedHeader h3,.vxSaMergedHeader h4{
  margin-top:0!important
}
.vxSaMergedToolbar{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px
}
#sa-external-billing-open.vxSaExternalBillingButton,
#sa-rent-open.vxSaRentButton{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important
}

/* 2026-09-08 cabinet header recovery: visual-only overrides, no DOM replacement. */
body > header:not(.vx-public-header){
  gap:10px!important;
  padding:8px 12px!important;
  min-height:48px!important;
  flex-wrap:nowrap!important;
}
body > header:not(.vx-public-header) > .vxCabinetLegacyBrand{
  flex:0 0 auto!important;
  gap:7px!important;
  min-width:0!important;
  white-space:nowrap!important;
}
body > header:not(.vx-public-header) > .vxCabinetLegacyBrand > img{
  width:30px!important;
  height:30px!important;
  border-radius:8px!important;
}
body > header:not(.vx-public-header) > .vxCabinetLegacyBrand > b{
  font-size:14px!important;
}
body > header:not(.vx-public-header) > .row{
  display:flex!important;
  flex:1 1 auto!important;
  min-width:0!important;
  gap:7px!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:flex-end!important;
}

/* Exact visual order. Existing nodes/listeners stay untouched. */
body > header:not(.vx-public-header) #vx-cabinet-server-status{order:10!important}
body > header:not(.vx-public-header) #project-switcher{order:20!important}
body > header:not(.vx-public-header) #ultra-badge{order:30!important}
body > header:not(.vx-public-header) #vx-desktop-header-entry{order:40!important}
body > header:not(.vx-public-header) #vx-global-search-open{order:50!important}
body > header:not(.vx-public-header) #vx-favorite-current{order:60!important}
body > header:not(.vx-public-header) #notify-bell{order:70!important}
body > header:not(.vx-public-header) #login{order:75!important}
body > header:not(.vx-public-header) #profile-wrap{order:80!important}

/* Servers dropdown opens to the right from the Servers button. */
body > header:not(.vx-public-header) .vxCabinetServerStatus .vxCabinetStatusPanel{
  left:0!important;
  right:auto!important;
}

/* Keep the real project select: dark and compact, without replacing its behavior. */
body:not(.vx-no-projects) > header:not(.vx-public-header) #project-switcher{
  display:block;
  width:auto!important;
  min-width:145px!important;
  max-width:210px!important;
  height:36px!important;
  padding:0 34px 0 11px!important;
  border:1px solid #2b3a50!important;
  border-radius:10px!important;
  background-color:#111c2c!important;
  color:#e8eef8!important;
  color-scheme:dark!important;
  outline:none!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025)!important;
  cursor:pointer!important;
  transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease!important;
}
body > header:not(.vx-public-header) #project-switcher:hover{
  border-color:#49637f!important;
  background-color:#162338!important;
  box-shadow:0 0 0 3px rgba(79,140,255,.08)!important;
}
body > header:not(.vx-public-header) #project-switcher:focus{
  border-color:#4f8cff!important;
  box-shadow:0 0 0 3px rgba(79,140,255,.13)!important;
}
body > header:not(.vx-public-header) #project-switcher option{
  background:#111c2c!important;
  color:#e8eef8!important;
}
body > header:not(.vx-public-header) #project-switcher option:checked{
  background:#223b60!important;
  color:#fff!important;
}

/* Compact subscription badge. */
body > header:not(.vx-public-header) #ultra-badge{
  flex:0 0 auto!important;
  margin:0!important;
}

/* Desktop download keeps its native proportions; do not squeeze its content. */
body > header:not(.vx-public-header) #vx-desktop-header-entry{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:max-content!important;
  max-width:none!important;
  min-height:42px!important;
  padding:6px 10px!important;
  border-radius:12px!important;
}
body > header:not(.vx-public-header) #vx-desktop-header-entry small{display:block!important}
body > header:not(.vx-public-header) #vx-desktop-header-entry em{font-size:10px!important}

/* Search / favorite / bell / profile keep their original handlers. */
body > header:not(.vx-public-header) #vx-global-search-open{
  flex:0 0 auto!important;
  min-width:0!important;
}
body > header:not(.vx-public-header) #vx-favorite-current,
body > header:not(.vx-public-header) #notify-bell,
body > header:not(.vx-public-header) #profile-wrap{
  flex:0 0 auto!important;
}
body > header:not(.vx-public-header) #notify-bell{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:36px!important;
  height:36px!important;
  padding:0 8px!important;
  border:1px solid transparent!important;
  border-radius:10px!important;
  cursor:pointer!important;
  transition:background .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease!important;
}
body > header:not(.vx-public-header) #notify-bell:hover{
  background:rgba(79,140,255,.10)!important;
  border-color:rgba(79,140,255,.32)!important;
  box-shadow:0 6px 18px rgba(0,0,0,.18)!important;
  transform:translateY(-1px)!important;
}
body > header:not(.vx-public-header) #notify-bell:active{transform:translateY(0)!important}

@media(max-width:1180px){
  body > header:not(.vx-public-header){gap:7px!important;padding-left:9px!important;padding-right:9px!important}
  body > header:not(.vx-public-header) > .row{gap:5px!important}
  body > header:not(.vx-public-header) #project-switcher{min-width:125px!important;max-width:165px!important}
  body > header:not(.vx-public-header) #vx-global-search-open kbd{display:none!important}
}
@media(max-width:920px){
  body > header:not(.vx-public-header) .vxHeaderBrandPlatform{display:none!important}
}
