/* RxCloud CyberLab public status page. Layout only; tokens and base components
   come from rxcloud-ds.css. */

*{ box-sizing:border-box; }

html{
  color-scheme:dark;
  min-width:320px;
  background:var(--rx-bg-0);
  scroll-behavior:smooth;
}

body.status-page{
  min-height:100vh;
  margin:0;
  color:var(--rx-text);
  font-family:var(--rx-font-sans);
  font-size:var(--rx-fs-body);
  line-height:1.5;
  background:
    linear-gradient(180deg, rgba(10,20,34,.98), rgba(5,9,15,.99)),
    var(--rx-bg-0);
  overflow-x:hidden;
}

body.status-page::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.18;
  background-image:
    linear-gradient(rgba(27,212,245,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(27,212,245,.035) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(to bottom, #000 0%, transparent 82%);
}

a{ color:inherit; }

.status-shell{
  width:min(1240px, calc(100% - 32px));
  margin-inline:auto;
  position:relative;
  z-index:1;
}

.status-skip-link{
  position:fixed;
  top:10px;
  left:10px;
  z-index:1000;
  padding:10px 14px;
  color:#04222b;
  background:var(--rx-cyan-bright);
  border-radius:var(--rx-r-xs);
  transform:translateY(-150%);
}

.status-skip-link:focus{ transform:translateY(0); }

.status-header{
  position:sticky;
  top:0;
  z-index:50;
  border-bottom:1px solid var(--rx-border);
  background:rgba(7,14,23,.94);
  box-shadow:0 8px 28px rgba(0,0,0,.28);
}

@supports ((backdrop-filter:blur(8px)) or (-webkit-backdrop-filter:blur(8px))){
  .status-header{
    background:rgba(7,14,23,.82);
    -webkit-backdrop-filter:blur(10px) saturate(120%);
    backdrop-filter:blur(10px) saturate(120%);
  }
}

.status-nav{
  min-height:70px;
  display:grid;
  grid-template-columns:minmax(230px, 1fr) auto minmax(230px, 1fr);
  align-items:center;
  gap:20px;
}

.status-brand{
  width:max-content;
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--rx-text);
  text-decoration:none;
}

.status-brand img{
  width:38px;
  height:38px;
  object-fit:contain;
}

.status-brand span{
  display:flex;
  flex-direction:column;
  line-height:1.15;
}

.status-brand strong{
  font-size:15px;
  letter-spacing:0;
}

.status-brand small{
  margin-top:3px;
  color:var(--rx-cyan-bright);
  font-family:var(--rx-font-mono);
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.status-nav__links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
}

.status-nav__links a{
  min-height:36px;
  display:inline-flex;
  align-items:center;
  padding:0 13px;
  border:1px solid transparent;
  border-radius:var(--rx-r-xs);
  color:var(--rx-muted);
  font-size:12px;
  font-weight:600;
  text-decoration:none;
  transition:color var(--rx-dur-1) var(--rx-ease), background var(--rx-dur-1) var(--rx-ease), border-color var(--rx-dur-1) var(--rx-ease);
}

.status-nav__links a:hover,
.status-nav__links a:focus-visible{
  color:var(--rx-text);
  background:var(--rx-cyan-soft);
  border-color:var(--rx-border-cyan);
  outline:none;
}

.status-live{
  justify-self:end;
  min-height:34px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:0 12px;
  color:var(--rx-muted);
  background:rgba(255,255,255,.035);
  border:1px solid var(--rx-border);
  border-radius:var(--rx-r-pill);
  font-family:var(--rx-font-mono);
  font-size:11px;
  white-space:nowrap;
}

.status-live__dot{
  width:7px;
  height:7px;
  flex:0 0 auto;
  border-radius:50%;
  background:var(--rx-info);
  box-shadow:0 0 10px currentColor;
}

.status-live[data-state="online"]{ color:var(--rx-success); }
.status-live[data-state="partial"]{ color:var(--rx-warning); }
.status-live[data-state="stale"]{ color:var(--rx-danger); }

.status-main{ padding:56px 0 76px; }

.status-intro{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:end;
  gap:40px;
  margin-bottom:28px;
}

.status-eyebrow,
.status-section__kicker{
  margin:0 0 7px;
  color:var(--rx-cyan-bright);
  font-family:var(--rx-font-mono);
  font-size:10px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.status-intro h1{
  margin:0;
  color:#f4fbff;
  font-size:34px;
  line-height:1.15;
  letter-spacing:0;
}

.status-intro__copy > p:last-child{
  max-width:640px;
  margin:10px 0 0;
  color:var(--rx-muted);
  font-size:15px;
}

.status-clock{
  min-width:440px;
  display:grid;
  grid-template-columns:1fr 1fr 1.35fr;
  margin:0;
  border:1px solid var(--rx-border);
  border-radius:var(--rx-r-md);
  background:rgba(255,255,255,.025);
  overflow:hidden;
}

.status-clock > div{
  min-width:0;
  padding:12px 14px;
}

.status-clock > div + div{ border-left:1px solid var(--rx-border); }

.status-clock dt{
  color:var(--rx-text-3);
  font-size:10px;
  text-transform:uppercase;
}

.status-clock dd{
  margin:4px 0 0;
  color:var(--rx-text);
  font-family:var(--rx-font-mono);
  font-size:12px;
  overflow-wrap:anywhere;
}

.status-page .rxds-card{
  border-radius:var(--rx-r-md);
  -webkit-backdrop-filter:blur(10px) saturate(115%);
  backdrop-filter:blur(10px) saturate(115%);
  transition:border-color var(--rx-dur-2) var(--rx-ease), box-shadow var(--rx-dur-2) var(--rx-ease);
}

.status-page .rxds-card:hover{ transform:none; }

.status-overview{
  --status-color:var(--rx-info);
  --status-bg:rgba(63,182,255,.09);
  min-height:166px;
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(360px, .7fr);
  align-items:center;
  gap:30px;
  padding:26px 28px;
  border-color:color-mix(in srgb, var(--status-color) 40%, transparent);
  background:
    linear-gradient(120deg, var(--status-bg), transparent 48%),
    linear-gradient(180deg, var(--rx-panel-strong), rgba(9,14,22,.76));
}

.status-overview[data-status="operational"]{
  --status-color:var(--rx-success);
  --status-bg:rgba(46,230,166,.10);
}

.status-overview[data-status="degraded"]{
  --status-color:var(--rx-warning);
  --status-bg:rgba(255,180,67,.11);
}

.status-overview[data-status="incident"]{
  --status-color:var(--rx-danger);
  --status-bg:rgba(255,93,108,.11);
}

.status-overview__identity{
  min-width:0;
  display:flex;
  align-items:flex-start;
  gap:18px;
}

.status-overview__mark{
  width:19px;
  height:19px;
  flex:0 0 auto;
  margin-top:5px;
  border:5px solid color-mix(in srgb, var(--status-color) 22%, transparent);
  border-radius:50%;
  background:var(--status-color);
  box-shadow:0 0 22px color-mix(in srgb, var(--status-color) 48%, transparent);
}

.status-overview__label{
  margin:0 0 4px;
  color:var(--status-color);
  font-family:var(--rx-font-mono);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.status-overview h2{
  margin:0;
  color:#f5fbff;
  font-size:24px;
  line-height:1.25;
  letter-spacing:0;
}

.status-overview__identity p:last-child{
  margin:8px 0 0;
  color:var(--rx-muted);
}

.status-overview__metrics{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  margin:0;
  border:1px solid var(--rx-border);
  border-radius:var(--rx-r-sm);
  overflow:hidden;
}

.status-overview__metrics > div{
  min-width:0;
  padding:14px;
  background:rgba(0,0,0,.12);
}

.status-overview__metrics > div + div{ border-left:1px solid var(--rx-border); }

.status-overview__metrics dt{
  min-height:32px;
  color:var(--rx-text-3);
  font-size:10px;
  line-height:1.35;
}

.status-overview__metrics dd{
  margin:5px 0 0;
  color:var(--status-color);
  font-family:var(--rx-font-mono);
  font-size:18px;
  font-weight:700;
}

.status-section{ margin-top:56px; }

.status-section__header{
  min-height:54px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  margin-bottom:18px;
  padding-bottom:13px;
  border-bottom:1px solid var(--rx-border);
}

.status-section__header h2{
  margin:0;
  color:#f2fbff;
  font-size:20px;
  letter-spacing:0;
}

.status-section__header > p{
  max-width:520px;
  margin:0;
  color:var(--rx-muted);
  font-size:12px;
  text-align:right;
}

.status-section__header--compact{ align-items:flex-start; }

.status-service-group + .status-service-group{ margin-top:30px; }

.status-service-group__title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 12px;
  color:var(--rx-muted);
  font-size:12px;
  font-weight:700;
}

.status-service-group__title::before{
  content:"";
  width:3px;
  height:14px;
  border-radius:2px;
  background:var(--rx-grad-accent);
  box-shadow:0 0 10px var(--rx-glow-strong);
}

.status-service-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
}

.status-service-card{
  --service-color:var(--rx-info);
  min-width:0;
  min-height:132px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:18px;
  padding:16px;
  border-top:2px solid color-mix(in srgb, var(--service-color) 68%, transparent);
}

.status-service-card[data-status="operational"]{ --service-color:var(--rx-success); }
.status-service-card[data-status="degraded"]{ --service-color:var(--rx-warning); }
.status-service-card[data-status="maintenance"]{ --service-color:var(--rx-info); }
.status-service-card[data-status="incident"],
.status-service-card[data-status="offline"]{ --service-color:var(--rx-danger); }

.status-service-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}

.status-service-card h4{
  min-width:0;
  margin:0;
  color:var(--rx-text);
  font-size:14px;
  letter-spacing:0;
  overflow-wrap:anywhere;
}

.status-service-card p{
  margin:0;
  color:var(--rx-muted);
  font-size:11px;
  line-height:1.45;
}

.status-service-card__message{ color:var(--service-color) !important; }

.status-badge{
  flex:0 0 auto;
  max-width:100%;
  font-size:10px;
  white-space:normal;
  text-align:center;
}

.status-badge--operational{
  color:var(--rx-success);
  background:rgba(46,230,166,.12);
  border-color:rgba(46,230,166,.32);
}

.status-badge--degraded{
  color:var(--rx-warning);
  background:rgba(255,180,67,.12);
  border-color:rgba(255,180,67,.32);
}

.status-badge--maintenance{
  color:var(--rx-info);
  background:rgba(63,182,255,.12);
  border-color:rgba(63,182,255,.32);
}

.status-badge--incident,
.status-badge--offline{
  color:var(--rx-danger);
  background:rgba(255,93,108,.12);
  border-color:rgba(255,93,108,.34);
}

.status-node-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}

.status-node-card{
  min-width:0;
  padding:18px;
}

.status-node-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:18px;
}

.status-node-card h3{
  margin:0;
  color:#f2fbff;
  font-size:16px;
  letter-spacing:0;
}

.status-node-card__location{
  margin:3px 0 0;
  color:var(--rx-muted);
  font-size:11px;
}

.status-node-card__metrics{
  display:grid;
  gap:14px;
}

.status-node-metric__line{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:6px;
  color:var(--rx-muted);
  font-size:11px;
}

.status-node-metric__line strong{
  color:var(--rx-text);
  font-family:var(--rx-font-mono);
  font-size:11px;
  font-weight:500;
  text-align:right;
}

.status-progress{
  display:block;
  width:100%;
  height:6px;
  border:0;
  border-radius:var(--rx-r-pill);
  background:rgba(255,255,255,.08);
  overflow:hidden;
  appearance:none;
  -webkit-appearance:none;
}

.status-progress::-webkit-progress-bar{
  background:rgba(255,255,255,.08);
  border-radius:var(--rx-r-pill);
}

.status-progress::-webkit-progress-value{
  background:var(--rx-grad-cyan);
  border-radius:var(--rx-r-pill);
}

.status-progress::-moz-progress-bar{
  background:var(--rx-grad-cyan);
  border-radius:var(--rx-r-pill);
}

.status-node-card__footer{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid var(--rx-border);
}

.status-node-stat span{
  display:block;
  color:var(--rx-text-3);
  font-size:10px;
}

.status-node-stat strong{
  display:block;
  margin-top:3px;
  color:var(--rx-text);
  font-family:var(--rx-font-mono);
  font-size:11px;
  overflow-wrap:anywhere;
}

.status-section--split{
  display:grid;
  grid-template-columns:minmax(0, 1.15fr) minmax(0, .85fr);
  gap:28px;
}

.status-section__column{ min-width:0; }

.status-timeline,
.status-maintenance-list{
  display:grid;
  gap:12px;
}

.status-event-card{
  position:relative;
  padding:18px 18px 18px 24px;
}

.status-event-card::after{
  content:"";
  position:absolute;
  left:0;
  top:16px;
  bottom:16px;
  width:3px;
  border-radius:0 3px 3px 0;
  background:var(--rx-danger);
}

.status-event-card--maintenance::after{ background:var(--rx-info); }

.status-event-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.status-event-card h3{
  margin:0;
  color:var(--rx-text);
  font-size:14px;
  letter-spacing:0;
}

.status-event-card__description{
  margin:10px 0 0;
  color:var(--rx-muted);
  font-size:12px;
  white-space:pre-line;
}

.status-event-card__targets{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:12px;
}

.status-target{
  padding:3px 7px;
  color:var(--rx-muted);
  background:rgba(255,255,255,.035);
  border:1px solid var(--rx-border);
  border-radius:var(--rx-r-xs);
  font-family:var(--rx-font-mono);
  font-size:9px;
}

.status-event-card__dates{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid var(--rx-border);
}

.status-event-card__dates span{
  display:block;
  color:var(--rx-text-3);
  font-size:9px;
  text-transform:uppercase;
}

.status-event-card__dates time{
  display:block;
  margin-top:3px;
  color:var(--rx-muted);
  font-family:var(--rx-font-mono);
  font-size:10px;
}

.status-uptime{ padding:6px 18px; }

.status-uptime-row{
  display:grid;
  grid-template-columns:minmax(150px, .8fr) minmax(340px, 2.2fr) 86px;
  align-items:center;
  gap:18px;
  min-height:62px;
  padding:10px 0;
}

.status-uptime-row + .status-uptime-row{ border-top:1px solid var(--rx-border); }

.status-uptime-row__name{
  min-width:0;
  color:var(--rx-text);
  font-size:12px;
  font-weight:600;
  overflow-wrap:anywhere;
}

.status-uptime-row__days{
  min-width:0;
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(3px, 1fr);
  gap:3px;
}

.status-uptime-day{
  height:24px;
  border-radius:2px;
  background:rgba(255,255,255,.06);
}

.status-uptime-day[data-status="operational"]{ background:rgba(46,230,166,.82); }
.status-uptime-day[data-status="degraded"]{ background:rgba(255,180,67,.82); }
.status-uptime-day[data-status="maintenance"]{ background:rgba(63,182,255,.78); }
.status-uptime-day[data-status="incident"],
.status-uptime-day[data-status="offline"]{ background:rgba(255,93,108,.82); }

.status-uptime-row__value{
  color:var(--rx-success);
  font-family:var(--rx-font-mono);
  font-size:13px;
  font-weight:700;
  text-align:right;
}

.status-uptime-row__value[data-empty="true"]{
  color:var(--rx-text-3);
  font-size:10px;
  font-weight:500;
}

.status-history{
  border:1px solid var(--rx-border);
  border-radius:var(--rx-r-md);
  background:linear-gradient(180deg, var(--rx-panel), rgba(10,16,26,.42));
  box-shadow:var(--rx-shadow-2);
  overflow:hidden;
}

.status-history-row{
  display:grid;
  grid-template-columns:130px minmax(0, 1fr) auto;
  align-items:center;
  gap:20px;
  min-height:78px;
  padding:14px 18px;
}

.status-history-row + .status-history-row{ border-top:1px solid var(--rx-border); }

.status-history-row time{
  color:var(--rx-muted);
  font-family:var(--rx-font-mono);
  font-size:11px;
}

.status-history-row h3{
  margin:0;
  color:var(--rx-text);
  font-size:13px;
  letter-spacing:0;
}

.status-history-row p{
  margin:4px 0 0;
  color:var(--rx-muted);
  font-size:11px;
}

.status-loading,
.status-empty{
  min-height:96px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px;
  color:var(--rx-muted);
  background:rgba(255,255,255,.025);
  border:1px dashed var(--rx-border);
  border-radius:var(--rx-r-md);
  font-size:12px;
  text-align:center;
}

.status-empty--success{
  color:var(--rx-success);
  border-color:rgba(46,230,166,.24);
  background:rgba(46,230,166,.045);
}

.status-footer{
  position:relative;
  z-index:1;
  border-top:1px solid var(--rx-border);
  background:rgba(5,9,15,.72);
}

.status-footer .status-shell{
  min-height:68px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  color:var(--rx-text-3);
  font-family:var(--rx-font-mono);
  font-size:10px;
}

.status-noscript{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:200;
  max-width:360px;
  padding:14px;
  color:var(--rx-danger);
  background:var(--rx-panel-strong);
  border:1px solid rgba(255,93,108,.34);
  border-radius:var(--rx-r-sm);
}

@media (max-width:1080px){
  .status-nav{ grid-template-columns:minmax(210px, 1fr) auto; }
  .status-nav__links{ display:none; }
  .status-intro{ grid-template-columns:1fr; gap:22px; }
  .status-clock{ min-width:0; width:100%; }
  .status-service-grid{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
  .status-node-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}

@media (max-width:820px){
  .status-main{ padding-top:40px; }
  .status-overview{ grid-template-columns:1fr; }
  .status-section--split{ grid-template-columns:1fr; gap:38px; }
  .status-service-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .status-uptime-row{ grid-template-columns:130px minmax(260px, 1fr) 76px; overflow-x:auto; }
  .status-uptime{ overflow-x:auto; }
  .status-uptime-row{ min-width:620px; }
}

@media (max-width:620px){
  .status-shell{ width:min(100% - 22px, 1240px); }
  .status-header{ position:relative; }
  .status-nav{ min-height:64px; grid-template-columns:minmax(0, 1fr) auto; gap:10px; }
  .status-brand strong{ font-size:13px; }
  .status-live{ padding:0 10px; }
  #connectionLabel{ display:none; }
  .status-intro h1{ font-size:27px; }
  .status-clock{ grid-template-columns:repeat(2, 1fr); }
  .status-clock > div:nth-child(3){ grid-column:1 / -1; border-top:1px solid var(--rx-border); border-left:0; }
  .status-overview{ min-height:0; padding:21px 18px; }
  .status-overview h2{ font-size:20px; }
  .status-overview__metrics{ grid-template-columns:1fr; }
  .status-overview__metrics > div{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 12px; }
  .status-overview__metrics > div + div{ border-top:1px solid var(--rx-border); border-left:0; }
  .status-overview__metrics dt{ min-height:0; }
  .status-overview__metrics dd{ margin:0; font-size:15px; }
  .status-section{ margin-top:42px; }
  .status-section__header{ align-items:flex-start; flex-direction:column; gap:8px; }
  .status-section__header > p{ text-align:left; }
  .status-service-grid,
  .status-node-grid{ grid-template-columns:1fr; }
  .status-service-card{ min-height:116px; }
  .status-event-card__dates{ grid-template-columns:1fr; }
  .status-history-row{ grid-template-columns:1fr auto; gap:8px 14px; }
  .status-history-row time{ grid-column:1 / -1; }
  .status-footer .status-shell{ min-height:76px; align-items:flex-start; flex-direction:column; justify-content:center; gap:4px; }
}

@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{
    scroll-behavior:auto !important;
    transition:none !important;
    animation:none !important;
  }
}

@media (forced-colors:active){
  .status-overview,
  .status-service-card,
  .status-event-card{ border:1px solid CanvasText; }
  .status-overview__mark,
  .status-live__dot{ box-shadow:none; }
}
