
/* SONOFPOLLUX Portal Bridge v2.3 */
.portalPulse{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.portalPulse__item{
  min-width:0;
  padding:15px 16px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:rgba(255,255,255,.045);
  box-shadow:0 14px 38px rgba(0,0,0,.22);
}
.portalPulse__label{
  display:flex;
  align-items:center;
  gap:7px;
  color:rgba(255,255,255,.56);
  font-size:11px;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.portalPulse__value{
  display:block;
  margin-top:7px;
  color:rgba(255,255,255,.95);
  font-size:clamp(22px,3vw,31px);
  font-weight:760;
  letter-spacing:-.035em;
}
.portalPulse__note{
  margin-top:4px;
  color:rgba(255,255,255,.52);
  font-size:12px;
}
.portalPulse__dot{
  width:7px;height:7px;border-radius:999px;
  background:rgba(120,255,210,.95);
  box-shadow:0 0 0 5px rgba(120,255,210,.09);
}
.portalPulse__dot.is-offline{
  background:rgba(255,160,170,.92);
  box-shadow:0 0 0 5px rgba(255,160,170,.08);
}
.portalStatusLink{
  display:inline-flex;
  align-items:center;
  gap:7px;
  text-decoration:none;
}
.portalStatusLink::before{
  content:"";
  width:7px;height:7px;border-radius:999px;
  background:rgba(120,255,210,.95);
}
.portalStatusLink[data-state="degraded"]::before{
  background:rgba(255,198,110,.95);
}
.portalStatusLink[data-state="offline"]::before{
  background:rgba(255,120,135,.95);
}
.portalCrossNav{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.portalCrossNav a{
  text-decoration:none;
}
@media(max-width:760px){
  .portalPulse{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:430px){
  .portalPulse{grid-template-columns:1fr}
}


/* Shared account chip */
.portalAccountChip{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:36px;
  padding:6px 9px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:12px;
  background:rgba(255,255,255,.045);
  color:inherit;
  text-decoration:none;
  white-space:nowrap;
  max-width:180px;
}
.portalAccountChip:hover{background:rgba(255,255,255,.075);border-color:rgba(255,255,255,.17)}
.portalAccountChip__avatar{
  width:23px;height:23px;border-radius:8px;
  display:grid;place-items:center;
  flex:0 0 auto;
  background:linear-gradient(135deg,rgba(255,136,192,.18),rgba(122,143,255,.18));
  border:1px solid rgba(255,255,255,.08);
  font-size:11px;font-weight:900;
}
.portalAccountChip__label{
  overflow:hidden;text-overflow:ellipsis;
  font-size:12px;font-weight:760;
}
.portalAccountChip__badge{
  position:absolute;
  top:-7px;right:-7px;
  min-width:18px;height:18px;
  padding:0 5px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;
  background:#f4efff;color:#11111a;
  border:2px solid #0b0a13;
  font-size:9px;font-weight:900;
}
.portalAccountChip__badge[hidden]{display:none!important}
@media(max-width:620px){
  .portalAccountChip{max-width:118px}
  .portalAccountChip__label{display:none}
}


/* Portal v2.5 — compact mobile command dock */
.portalDock{display:none}
@media(max-width:720px){
  body{padding-bottom:74px}
  .portalDock{
    position:fixed;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));
    z-index:9998;
    display:grid;grid-template-columns:repeat(5,1fr);
    gap:4px;padding:6px;
    border:1px solid rgba(255,255,255,.11);
    border-radius:18px;
    background:rgba(9,10,16,.88);
    backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
    box-shadow:0 14px 40px rgba(0,0,0,.38);
  }
  .portalDock a{
    min-width:0;min-height:48px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    border-radius:13px;text-decoration:none;color:rgba(247,245,255,.76);
    font-size:15px;
  }
  .portalDock a:hover,.portalDock a:focus-visible{background:rgba(255,255,255,.07);color:#fff}
  .portalDock b{font-size:9px;letter-spacing:.05em;text-transform:uppercase;font-weight:800;white-space:nowrap}
}
