:root {
  --ps-bg: #070b16;
  --ps-panel: #0e1629;
  --ps-accent: #2f9bff;
  --ps-cyan: #3ad4ff;
  --ps-muted: #8b9bb8;
  --ps-danger: #ff5c7a;
  --ps-success: #2ee59d;
}
html, body {
  background:
    radial-gradient(1100px 520px at 8% -8%, #12203f 0%, transparent 55%),
    radial-gradient(800px 400px at 100% 0%, #0b1a36 0%, transparent 50%),
    var(--ps-bg);
  color: #e8eefc;
  min-height: 100%;
}
.ps-panel {
  background: linear-gradient(180deg, rgba(14,22,40,.96), rgba(10,16,30,.96));
  border-radius: 1rem;
  box-shadow: 0 12px 40px rgba(0,0,0,.4);
}
.ps-kpi {
  background: linear-gradient(145deg, rgba(30,70,140,.18), transparent 50%),
    linear-gradient(180deg, rgba(16,26,48,.95), rgba(10,16,30,.95));
  border-radius: 1rem;
  box-shadow: 0 0 24px rgba(47,155,255,.12);
}
.ps-qlink {
  display: flex; align-items: center; gap: .45rem;
  padding: .42rem .75rem; border-radius: .65rem;
  font-weight: 600; font-size: .82rem; color: #f2f7ff !important;
  text-decoration: none !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,0) 42%),
    linear-gradient(115deg, #5eb6ff 0%, #2f8de8 42%, #1a5fbf 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 4px 12px rgba(15,60,140,.22);
}
.ps-qlink:hover { filter: brightness(1.06); }
.ps-table th, .ps-table td {
  padding: .35rem .6rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.ps-table th {
  font-size: .68rem; letter-spacing: .06em; text-transform: uppercase;
  color: var(--ps-muted); background: rgba(8,14,28,.9); text-align: left;
}
.ps-table tbody tr:hover { background: rgba(47,155,255,.07); }
.badge-low { color: var(--ps-danger); font-weight: 700; }
.badge-ok { color: var(--ps-success); font-weight: 600; }
