/* 115 Schiller · shared footer status, based only on independent monitored data.
   Unknown / stale reports are neutral; no assumed healthy state. */
#sch-global-footer a[href="/status/"]{display:inline-flex;align-items:center;gap:8px;text-decoration:none}
#sch-global-footer a[href="/status/"] .sch-status-dot{
  --sch-dot:#98ada0;
  display:inline-block;position:relative;flex:0 0 9px;
  width:9px;height:9px;min-width:9px;min-height:9px;
  margin:0;padding:0;border:none;border-radius:50%;
  background:var(--sch-dot);color:var(--sch-dot);
  box-shadow:0 0 0 2px rgba(152,173,160,.09),0 0 8px rgba(152,173,160,.18);
}
#sch-global-footer a[href="/status/"] .sch-status-dot::before{
  content:"";position:absolute;inset:-3px;
  border:1px solid currentColor;border-radius:50%;pointer-events:none;
  animation:none;opacity:0;
}
#sch-global-footer a[href="/status/"][data-sch-status="operational"] .sch-status-dot{
  --sch-dot:#59c993;
  box-shadow:0 0 0 2px rgba(89,201,147,.12),0 0 9px rgba(89,201,147,.27);
}
#sch-global-footer a[href="/status/"][data-sch-status="degraded"] .sch-status-dot{
  --sch-dot:#edbf6c;
  box-shadow:0 0 0 2px rgba(237,191,108,.11),0 0 9px rgba(237,191,108,.24);
}
#sch-global-footer a[href="/status/"][data-sch-status="outage"] .sch-status-dot{
  --sch-dot:#ee8276;
  box-shadow:0 0 0 2px rgba(238,130,118,.10),0 0 9px rgba(238,130,118,.23);
}
#sch-global-footer a[href="/status/"][data-sch-status="operational"] .sch-status-dot::before,
#sch-global-footer a[href="/status/"][data-sch-status="degraded"] .sch-status-dot::before,
#sch-global-footer a[href="/status/"][data-sch-status="outage"] .sch-status-dot::before{
  animation:sch-live-footer-pulse 4.8s ease-out infinite;
}
@keyframes sch-live-footer-pulse{
  0%,36%{transform:scale(.85);opacity:.6}
  84%,100%{transform:scale(2.4);opacity:0}
}
@media(prefers-reduced-motion:reduce){
  #sch-global-footer a[href="/status/"] .sch-status-dot::before{
    animation:none!important;opacity:0!important
  }
}

/* Footer utilities: keep indicator and label as two distinct aligned items.
   High specificity defeats older .sch-status-dot rules in the shared footer. */
#sch-global-footer .sch-foot-utilities > a[href="/status/"]{
 display:inline-flex!important;
 flex-direction:row!important;
 align-items:center!important;
 justify-content:flex-start!important;
 gap:12px!important;
 white-space:nowrap;
}
#sch-global-footer .sch-foot-utilities > a[href="/status/"] > .sch-status-dot{
 display:inline-block!important;
 flex:0 0 9px!important;
 width:9px!important;
 height:9px!important;
 min-width:9px!important;
 min-height:9px!important;
 margin:0!important;
 padding:0!important;
 align-self:center!important;
}
#sch-global-footer .sch-foot-utilities > a[href="/status/"] > .sch-status-label{
 display:inline-block!important;
 flex:none!important;
 margin:0!important;
 padding:0!important;
 line-height:1.5;
 white-space:nowrap;
}
/* Reduced radial animation prevents the pulse ring from touching the text. */
@keyframes sch-live-footer-pulse{
 0%,36%{transform:scale(.9);opacity:.55}
 84%,100%{transform:scale(1.65);opacity:0}
}

/* Structural 12px status spacer — one source of spacing for every footer.
   The old booking-specific margin and shared flex gaps must not stack. */
#sch-global-footer .sch-foot-utilities > a[href="/status/"]{
  display:inline-flex!important;
  align-items:center!important;
  flex-direction:row!important;
  gap:0!important;
  white-space:nowrap;
}
#sch-global-footer .sch-foot-utilities > a[href="/status/"] > .sch-status-dot{
  flex:0 0 9px!important;
  margin:0!important;
}
#sch-global-footer .sch-foot-utilities > a[href="/status/"] > .sch-status-spacer{
  display:inline-block!important;
  flex:0 0 12px!important;
  width:12px!important;
  min-width:12px!important;
  max-width:12px!important;
  overflow:hidden;
  line-height:1;
}
#sch-global-footer .sch-foot-utilities > a[href="/status/"] > .sch-status-label{
  margin:0!important;
  padding:0!important;
  flex:none!important;
}
