:root {
  color-scheme: dark;

  --bg: #050b10;
  --bg-secondary: #071117;
  --sidebar: #061016;

  --panel: rgba(12, 26, 34, 0.94);
  --panel-soft: rgba(16, 34, 44, 0.82);
  --panel-deep: rgba(5, 15, 21, 0.88);

  --border: #203541;
  --border-soft: rgba(55, 83, 96, 0.42);

  --text: #edf7fa;
  --text-soft: #c8d8df;
  --muted: #8298a3;

  --cyan: #35d9c7;
  --cyan-soft: rgba(53, 217, 199, 0.12);

  --green: #55dc8b;
  --green-soft: rgba(85, 220, 139, 0.12);

  --amber: #f2b84b;
  --amber-soft: rgba(242, 184, 75, 0.12);

  --red: #ff6471;
  --red-soft: rgba(255, 100, 113, 0.12);

  --blue: #5fa9ff;

  --radius: 15px;
  --shadow: 0 22px 60px rgba(0, 0, 0, 0.22);
}


/* =========================================================
   BASE
   ========================================================= */

* {
  box-sizing: border-box;
}

html {
  min-height: 100%;
}

body {
  margin: 0;
  min-height: 100vh;

  background:
    radial-gradient(
      circle at 85% 0%,
      rgba(29, 96, 107, 0.22),
      transparent 28%
    ),
    radial-gradient(
      circle at 55% 100%,
      rgba(19, 76, 85, 0.12),
      transparent 32%
    ),
    var(--bg);

  color: var(--text);

  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
}

button {
  font: inherit;
}

button:focus-visible {
  outline: 2px solid var(--cyan);
  outline-offset: 2px;
}

h1,
h2,
p {
  margin-top: 0;
}


/* =========================================================
   APPLICATION SHELL
   ========================================================= */

.shell {
  display: grid;
  grid-template-columns: 255px minmax(0, 1fr);
  min-height: 100vh;
}


/* =========================================================
   SIDEBAR
   ========================================================= */

.sidebar {
  position: sticky;
  top: 0;

  display: flex;
  flex-direction: column;

  height: 100vh;

  border-right: 1px solid var(--border);

  background:
    linear-gradient(
      180deg,
      rgba(6, 17, 23, 0.99),
      rgba(5, 13, 18, 0.98)
    );

  padding: 26px 18px;
}

.brand {
  display: flex;
  align-items: center;

  gap: 12px;

  margin-bottom: 36px;
}

.brand-mark {
  display: grid;
  place-items: center;

  width: 43px;
  height: 43px;

  flex: 0 0 43px;

  border-radius: 12px;

  background:
    linear-gradient(
      135deg,
      var(--cyan),
      #188ba5
    );

  color: #021115;

  font-size: 22px;
  font-weight: 900;

  box-shadow:
    0 0 28px rgba(53, 217, 199, 0.14);
}

.brand-copy strong,
.brand-copy span {
  display: block;
}

.brand-copy strong {
  font-size: 15px;
  letter-spacing: 0.01em;
}

.brand-copy span {
  margin-top: 3px;

  color: var(--muted);

  font-size: 11px;
}

.workspace-label {
  margin: 0 12px 10px;

  color: #526a75;

  font-size: 9px;
  font-weight: 800;

  letter-spacing: 0.15em;

  text-transform: uppercase;
}


/* =========================================================
   NAVIGATION
   ========================================================= */

.primary-nav {
  display: grid;
  gap: 5px;
}

.nav-item {
  display: flex;
  align-items: center;

  gap: 11px;

  width: 100%;

  border: 0;
  border-radius: 9px;

  background: transparent;

  color: var(--muted);

  padding: 11px 12px;

  cursor: pointer;

  text-align: left;

  transition:
    background 160ms ease,
    color 160ms ease,
    transform 160ms ease;
}

.nav-item:hover {
  background: rgba(20, 39, 49, 0.7);
  color: var(--text);
}

.nav-item.active {
  background:
    linear-gradient(
      90deg,
      rgba(53, 217, 199, 0.12),
      rgba(18, 38, 48, 0.8)
    );

  color: var(--text);

  box-shadow:
    inset 3px 0 var(--cyan);
}

.nav-icon {
  display: grid;
  place-items: center;

  width: 22px;

  color: var(--cyan);

  font-size: 14px;
}


/* =========================================================
   SIDEBAR SYSTEM STATUS
   ========================================================= */

.sidebar-system {
  display: grid;
  gap: 8px;

  margin-top: 30px;

  border: 1px solid var(--border-soft);
  border-radius: 10px;

  background: rgba(10, 25, 32, 0.62);

  padding: 13px;
}

.sidebar-system-row {
  display: flex;
  align-items: center;

  gap: 8px;

  color: #c8d9df;

  font-size: 10px;
}

.sidebar-system-row.muted {
  color: var(--muted);
}

.system-pulse {
  width: 7px;
  height: 7px;

  border-radius: 50%;

  background: var(--green);

  box-shadow:
    0 0 12px var(--green);
}

.sidebar-footer {
  display: grid;
  gap: 7px;

  margin-top: auto;

  color: var(--muted);
}

.environment {
  color: var(--amber);

  font-size: 9px;
  font-weight: 800;

  letter-spacing: 0.13em;
}


/* =========================================================
   MAIN
   ========================================================= */

main {
  min-width: 0;

  padding:
    30px
    clamp(22px, 3.5vw, 55px)
    40px;
}


/* =========================================================
   TOPBAR
   ========================================================= */

.topbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;

  gap: 30px;

  margin-bottom: 28px;
}

h1 {
  margin-bottom: 7px;

  font-size: clamp(28px, 3vw, 41px);

  letter-spacing: -0.035em;
}

h2 {
  margin-bottom: 0;

  font-size: 19px;

  letter-spacing: -0.015em;
}

.page-subtitle {
  margin-bottom: 0;

  color: var(--muted);

  font-size: 13px;

  line-height: 1.55;
}

.eyebrow {
  margin-bottom: 7px;

  color: var(--cyan);

  font-size: 9px;
  font-weight: 900;

  letter-spacing: 0.17em;
}

.top-actions {
  display: flex;
  align-items: center;

  gap: 16px;
}

.refresh-meta {
  display: grid;
  justify-items: end;

  gap: 5px;

  color: var(--muted);

  font-size: 10px;
}

.live-indicator {
  display: flex;
  align-items: center;

  gap: 6px;

  color: var(--green);

  font-size: 9px;
  font-weight: 900;

  letter-spacing: 0.1em;
}

.live-dot {
  width: 6px;
  height: 6px;

  border-radius: 50%;

  background: var(--green);

  box-shadow:
    0 0 10px var(--green);
}

#refresh-button {
  border: 1px solid var(--border);
  border-radius: 8px;

  background: var(--panel-soft);

  color: var(--text);

  padding: 9px 14px;

  cursor: pointer;

  transition:
    border-color 150ms ease,
    background 150ms ease;
}

#refresh-button:hover {
  border-color: #3b5c69;
  background: #172b35;
}

#refresh-button:disabled {
  cursor: wait;
  opacity: 0.55;
}


/* =========================================================
   COMMON CARDS
   ========================================================= */

.status-card,
.metric-card,
.panel {
  border: 1px solid var(--border);

  border-radius: var(--radius);

  background:
    linear-gradient(
      145deg,
      rgba(16, 33, 42, 0.95),
      rgba(8, 20, 27, 0.96)
    );

  box-shadow: var(--shadow);
}


/* =========================================================
   SYSTEM STATUS
   ========================================================= */

.status-grid {
  display: grid;

  grid-template-columns:
    repeat(4, minmax(160px, 1fr));

  gap: 14px;

  margin-bottom: 14px;
}

.status-card {
  position: relative;

  overflow: hidden;

  min-height: 128px;

  padding: 18px;
}

.status-card::after {
  position: absolute;

  right: -25px;
  bottom: -35px;

  width: 90px;
  height: 90px;

  border-radius: 50%;

  background: rgba(53, 217, 199, 0.035);

  content: "";
}

.status-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;

  color: var(--muted);

  font-size: 10px;

  text-transform: uppercase;

  letter-spacing: 0.06em;
}

.status-card strong {
  display: block;

  margin: 19px 0 5px;

  font-size: 19px;
}

.status-card small {
  color: var(--muted);

  font-size: 10px;

  line-height: 1.45;
}


/* =========================================================
   STATUS LIGHTS
   ========================================================= */

.light {
  width: 8px;
  height: 8px;

  border-radius: 50%;
}

.light.good {
  background: var(--green);

  box-shadow:
    0 0 14px var(--green);
}

.light.warning {
  background: var(--amber);

  box-shadow:
    0 0 14px var(--amber);
}

.light.bad {
  background: var(--red);

  box-shadow:
    0 0 14px var(--red);
}

.light.waiting {
  background: #60737c;
}


/* =========================================================
   OPERATIONAL METRICS
   ========================================================= */

.metric-grid {
  display: grid;

  grid-template-columns:
    repeat(4, minmax(160px, 1fr));

  gap: 14px;

  margin-bottom: 18px;
}

.metric-card {
  padding: 16px 18px;
}

.metric-top {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 10px;

  color: var(--muted);

  font-size: 10px;
}

.metric-card strong {
  display: block;

  margin: 14px 0 4px;

  font-size: 24px;

  letter-spacing: -0.03em;
}

.metric-card small {
  color: var(--muted);

  font-size: 10px;
}

.metric-tag {
  border: 1px solid var(--border-soft);
  border-radius: 999px;

  color: #89a0aa;

  padding: 4px 6px;

  font-size: 7px;
  font-weight: 900;

  letter-spacing: 0.08em;
}

.metric-tag.realtime {
  color: var(--green);
}

.metric-tag.risk {
  color: var(--amber);
}


/* =========================================================
   PANELS
   ========================================================= */

.panel {
  padding: 22px;
}

.panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;

  gap: 18px;
}

.panel-description {
  margin: 7px 0 0;

  color: var(--muted);

  font-size: 11px;

  line-height: 1.5;
}

.badge {
  flex: 0 0 auto;

  border: 1px solid var(--border);
  border-radius: 999px;

  color: var(--muted);

  padding: 6px 9px;

  font-size: 9px;
  font-weight: 800;

  letter-spacing: 0.05em;
}


/* =========================================================
   PRIMARY COMMAND GRID
   ========================================================= */

.command-grid {
  display: grid;

  grid-template-columns:
    minmax(0, 1.35fr)
    minmax(300px, 0.9fr);

  gap: 18px;

  margin-bottom: 18px;
}


/* =========================================================
   SAFEGUARDS
   ========================================================= */

.checks-list {
  display: grid;

  gap: 0;

  margin-top: 20px;
}

.check-row {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 20px;

  border-bottom:
    1px solid rgba(42, 65, 76, 0.55);

  padding: 10px 0;
}

.check-row:last-child {
  border-bottom: 0;
}

.check-name {
  color: var(--text-soft);

  font-size: 11px;
}

.check-state {
  font-size: 9px;
  font-weight: 900;

  letter-spacing: 0.06em;
}

.check-state.pass {
  color: var(--green);
}

.check-state.fail {
  color: var(--amber);
}

.loading-row {
  color: var(--muted);

  padding: 18px 0;

  font-size: 11px;
}


/* =========================================================
   EXECUTION BOUNDARY
   ========================================================= */

.posture-banner {
  margin: 21px 0 15px;

  border-radius: 10px;

  padding: 15px;

  font-size: 13px;
  font-weight: 850;
}

.posture-banner.good {
  border: 1px solid rgba(85, 220, 139, 0.22);

  background: var(--green-soft);

  color: var(--green);
}

.posture-banner.warning,
.posture-banner.waiting {
  border: 1px solid rgba(242, 184, 75, 0.2);

  background: var(--amber-soft);

  color: var(--amber);
}

.posture-banner.bad {
  border: 1px solid rgba(255, 100, 113, 0.2);

  background: var(--red-soft);

  color: var(--red);
}

#posture-description {
  color: var(--muted);

  font-size: 11px;

  line-height: 1.65;
}

.connector-box {
  margin-top: 20px;

  border: 1px solid var(--border);

  border-radius: 9px;

  background: var(--panel-deep);

  padding: 13px;
}

.connector-box > span {
  color: var(--muted);

  font-size: 8px;
  font-weight: 800;

  letter-spacing: 0.1em;

  text-transform: uppercase;
}

#connector-list {
  margin-top: 8px;

  color: #d7e7ec;

  font-size: 10px;

  line-height: 1.5;

  word-break: break-word;
}

.authority-strip {
  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 9px;

  margin-top: 12px;
}

.authority-strip > div {
  border: 1px solid var(--border-soft);

  border-radius: 8px;

  background: rgba(4, 14, 19, 0.48);

  padding: 11px;
}

.authority-strip span,
.authority-strip strong {
  display: block;
}

.authority-strip span {
  color: var(--muted);

  font-size: 8px;

  text-transform: uppercase;
}

.authority-strip strong {
  margin-top: 5px;

  color: var(--cyan);

  font-size: 10px;
}


/* =========================================================
   OPERATIONS
   ========================================================= */

.operations-grid {
  display: grid;

  grid-template-columns:
    minmax(0, 1.4fr)
    minmax(280px, 0.8fr);

  gap: 18px;

  margin-bottom: 18px;
}

.live-badge {
  color: var(--green);
}

.threat-stream {
  display: grid;

  margin-top: 18px;
}

.threat-row {
  display: grid;

  grid-template-columns:
    38px
    minmax(0, 1fr)
    48px;

  align-items: center;

  gap: 12px;

  border-bottom:
    1px solid rgba(42, 65, 76, 0.52);

  padding: 12px 0;
}

.threat-row:last-child {
  border-bottom: 0;
}

.threat-severity {
  display: grid;
  place-items: center;

  width: 32px;
  height: 32px;

  border-radius: 8px;

  font-size: 9px;
  font-weight: 900;
}

.threat-severity.neutral {
  background: rgba(93, 119, 130, 0.12);

  color: var(--muted);
}

.threat-severity.high {
  background: var(--red-soft);

  color: var(--red);
}

.threat-severity.medium {
  background: var(--amber-soft);

  color: var(--amber);
}

.threat-severity.low {
  background: var(--green-soft);

  color: var(--green);
}

.threat-main strong,
.threat-main small {
  display: block;
}

.threat-main strong {
  color: var(--text-soft);

  font-size: 11px;
}

.threat-main small {
  margin-top: 4px;

  color: var(--muted);

  font-size: 9px;

  line-height: 1.45;
}

.threat-score {
  color: var(--text-soft);

  font-size: 11px;
  font-weight: 800;

  text-align: right;
}


/* =========================================================
   RESPONSE ENGINE
   ========================================================= */

.response-actions {
  display: grid;

  gap: 9px;

  margin-top: 18px;
}

.response-action {
  display: flex;
  align-items: center;

  gap: 11px;

  border: 1px solid var(--border-soft);

  border-radius: 9px;

  background: rgba(5, 16, 22, 0.5);

  padding: 11px;
}

.response-icon {
  display: grid;
  place-items: center;

  width: 30px;
  height: 30px;

  flex: 0 0 30px;

  border-radius: 8px;

  background: var(--cyan-soft);

  color: var(--cyan);

  font-size: 12px;
  font-weight: 900;
}

.response-action strong,
.response-action small {
  display: block;
}

.response-action strong {
  color: var(--text-soft);

  font-size: 10px;
}

.response-action small {
  margin-top: 3px;

  color: var(--muted);

  font-size: 8px;
}


/* =========================================================
   CAPABILITIES
   ========================================================= */

.activity-panel {
  margin-bottom: 18px;
}

.capability-grid {
  display: grid;

  grid-template-columns:
    repeat(4, minmax(150px, 1fr));

  gap: 11px;

  margin-top: 20px;
}

.capability {
  position: relative;

  overflow: hidden;

  min-height: 112px;

  border: 1px solid var(--border-soft);
  border-radius: 9px;

  background: rgba(5, 16, 22, 0.48);

  padding: 14px;

  transition:
    transform 150ms ease,
    border-color 150ms ease;
}

.capability:hover {
  transform: translateY(-2px);

  border-color: #31515e;
}

.capability::before {
  position: absolute;

  top: 0;
  left: 0;

  width: 2px;
  height: 100%;

  background: var(--cyan);

  content: "";
}

.capability span,
.capability strong,
.capability small {
  display: block;
}

.capability span {
  color: var(--cyan);

  font-size: 8px;
  font-weight: 900;
}

.capability strong {
  margin: 9px 0 6px;

  color: var(--text-soft);

  font-size: 11px;
}

.capability small {
  color: var(--muted);

  font-size: 9px;

  line-height: 1.45;
}


/* =========================================================
   FOOTER
   ========================================================= */

.console-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 20px;

  border-top: 1px solid var(--border-soft);

  color: #657c86;

  padding-top: 16px;

  font-size: 9px;
}

.console-footer > div:last-child {
  display: flex;
  align-items: center;

  gap: 7px;
}

.footer-dot {
  width: 6px;
  height: 6px;

  border-radius: 50%;

  background: var(--green);
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1180px) {

  .status-grid,
  .metric-grid {
    grid-template-columns:
      repeat(2, minmax(180px, 1fr));
  }

  .capability-grid {
    grid-template-columns:
      repeat(2, minmax(180px, 1fr));
  }

}


@media (max-width: 960px) {

  .shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    display: none;
  }

  .command-grid,
  .operations-grid {
    grid-template-columns: 1fr;
  }

}


@media (max-width: 620px) {

  main {
    padding: 22px 14px 35px;
  }

  .topbar {
    flex-direction: column;

    gap: 18px;
  }

  .top-actions {
    width: 100%;

    justify-content: space-between;
  }

  .refresh-meta {
    justify-items: start;
  }

  .status-grid,
  .metric-grid,
  .capability-grid {
    grid-template-columns: 1fr;
  }

  .authority-strip {
    grid-template-columns: 1fr;
  }

  .console-footer {
    align-items: flex-start;
    flex-direction: column;
  }

}
