/*
 * Sovereign Series operator experience — 2026 system layer.
 * Loaded last so legacy page-specific rules inherit one accessible visual contract.
 */
:root {
  --sov-ink: #121820;
  --sov-ink-soft: #4d5968;
  --sov-canvas: #f3f5f7;
  --sov-surface: rgba(255, 255, 255, 0.96);
  --sov-surface-strong: #fff;
  --sov-line: #d8dee6;
  --sov-line-strong: #bcc6d2;
  --sov-accent: #b51f31;
  --sov-accent-strong: #8e1424;
  --sov-accent-soft: #fbecef;
  --sov-success: #087a55;
  --sov-warning: #9b5d00;
  --sov-danger: #b42318;
  --sov-info: #175cd3;
  --sov-radius-sm: 0.5rem;
  --sov-radius: 0.875rem;
  --sov-radius-lg: 1.25rem;
  --sov-shadow-sm:
    0 1px 2px rgba(16, 24, 40, 0.06), 0 1px 3px rgba(16, 24, 40, 0.08);
  --sov-shadow: 0 12px 32px rgba(16, 24, 40, 0.1);
  --sov-content: 92rem;
  --sov-header: 4.25rem;
  --sov-ease: 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
  color-scheme: light;
}
html[data-plane="shield"] {
  --sov-accent: #b51f31;
  --sov-accent-strong: #851326;
}
html[data-plane="keygen"],
body[data-auth-plane="keygen"] {
  --sov-accent: #7a3ff2;
  --sov-accent-strong: #5425b8;
  --sov-accent-soft: #f2edff;
}
html[data-plane="sdip"],
body[data-auth-plane="sdip"] {
  --sov-accent: #0f6f62;
  --sov-accent-strong: #074f47;
  --sov-accent-soft: #e8f7f4;
}
html[data-plane="secintel"],
body[data-auth-plane="secintel"] {
  --sov-accent: #175cd3;
  --sov-accent-strong: #123e90;
  --sov-accent-soft: #eaf2ff;
}
html[data-theme="dark"] {
  --sov-ink: #f4f7fb;
  --sov-ink-soft: #afbac8;
  --sov-canvas: #0b1017;
  --sov-surface: rgba(19, 27, 38, 0.96);
  --sov-surface-strong: #151e2a;
  --sov-line: #2b3848;
  --sov-line-strong: #435166;
  --sov-accent-soft: #291820;
  color-scheme: dark;
}
html {
  font-size: 16px;
  scroll-behavior: smooth;
}
body {
  min-height: 100vh;
  margin: 0;
  color: var(--sov-ink);
  background:
    radial-gradient(
      circle at 92% -10%,
      color-mix(in srgb, var(--sov-accent) 12%, transparent),
      transparent 34rem
    ),
    linear-gradient(
      180deg,
      var(--sov-canvas),
      color-mix(in srgb, var(--sov-canvas) 94%, #fff)
    );
  font-family:
    Inter,
    "Segoe UI",
    system-ui,
    -apple-system,
    sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  opacity: 0.2;
  background-image:
    linear-gradient(rgba(100, 116, 139, 0.11) 1px, transparent 1px),
    linear-gradient(90deg, rgba(100, 116, 139, 0.11) 1px, transparent 1px);
  background-size: 32px 32px;
  mask-image: linear-gradient(to bottom, #000, transparent 70%);
}
h1,
h2,
h3,
.ss-stage__title,
.app-shell-title {
  font-family: Saira, "Arial Narrow", sans-serif;
  letter-spacing: -0.025em;
  text-wrap: balance;
}
p {
  text-wrap: pretty;
}
a {
  color: var(--sov-accent);
  text-underline-offset: 0.18em;
}
a,
button,
input,
select,
textarea,
[tabindex] {
  outline-offset: 3px;
}
:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--sov-accent) 72%, #fff);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--sov-accent) 18%, transparent);
}
.skip-link,
.ss-skip {
  position: fixed !important;
  top: 0.75rem;
  left: 0.75rem;
  transform: translateY(-180%);
  z-index: 10000;
  padding: 0.75rem 1rem;
  border-radius: var(--sov-radius-sm);
  background: var(--sov-ink);
  color: var(--sov-surface-strong);
}
.skip-link:focus,
.ss-skip:focus {
  transform: none;
}
.app-shell,
.app-shell-frame,
.ss-shell {
  min-height: 100vh;
}
.side-nav,
.app-shell-side-nav,
.ss-sidebar {
  border-inline-end: 1px solid var(--sov-line) !important;
  background: color-mix(
    in srgb,
    var(--sov-surface-strong) 94%,
    var(--sov-accent) 6%
  ) !important;
  box-shadow: 8px 0 28px rgba(16, 24, 40, 0.06);
}
.side-nav a,
.app-shell-side-nav a,
.ss-nav__link {
  border-radius: var(--sov-radius-sm) !important;
  transition:
    background var(--sov-ease),
    color var(--sov-ease),
    transform var(--sov-ease);
}
.side-nav a:hover,
.app-shell-side-nav a:hover,
.ss-nav__link:hover {
  background: var(--sov-accent-soft) !important;
  transform: translateX(2px);
}
.side-nav a[aria-current="page"],
.app-shell-side-nav a[aria-current="page"],
.ss-nav__link--active {
  color: var(--sov-accent) !important;
  background: var(--sov-accent-soft) !important;
  box-shadow: inset 3px 0 0 var(--sov-accent);
}
.shell-topbar,
.app-shell-topbar,
.ss-topbar,
.ss-header {
  min-height: var(--sov-header);
  border-bottom: 1px solid var(--sov-line) !important;
  background: color-mix(
    in srgb,
    var(--sov-surface) 92%,
    transparent
  ) !important;
  backdrop-filter: blur(18px) saturate(140%);
  box-shadow: var(--sov-shadow-sm);
}
.content-zone,
.app-shell-content,
.ss-stage,
main {
  max-width: var(--sov-content);
}
.content-zone,
.app-shell-content,
.ss-stage {
  width: 100%;
  margin-inline: auto;
  padding: clamp(1rem, 2.5vw, 2.5rem) !important;
}
.card,
.panel,
.box,
.dv8-keygen-panel,
.dashboard-compute-card,
.ss-card,
.kpi-card,
[class*="dashboard-card"],
[class*="metric-card"],
[class*="summary-card"] {
  border: 1px solid var(--sov-line) !important;
  border-radius: var(--sov-radius) !important;
  background: var(--sov-surface) !important;
  box-shadow: var(--sov-shadow-sm) !important;
}
.card:hover,
.dashboard-compute-card:hover,
.ss-card:hover {
  border-color: var(--sov-line-strong) !important;
  box-shadow: var(--sov-shadow) !important;
  transform: translateY(-1px);
}
button,
.button,
.btn,
.ss-action,
[class*="action-link"] {
  min-height: 2.75rem;
  border-radius: var(--sov-radius-sm) !important;
  font-weight: 650;
  transition:
    transform var(--sov-ease),
    box-shadow var(--sov-ease),
    background var(--sov-ease);
}
button:hover,
.button:hover,
.btn:hover,
.ss-action:hover,
[class*="action-link"]:hover {
  transform: translateY(-1px);
}
.btn-primary,
.button.is-primary,
.ss-action,
[class*="action-link--primary"] {
  border-color: var(--sov-accent) !important;
  background: var(--sov-accent) !important;
  color: #fff !important;
  box-shadow: 0 6px 16px color-mix(in srgb, var(--sov-accent) 25%, transparent) !important;
}
.btn-primary:hover,
.button.is-primary:hover,
.ss-action:hover {
  background: var(--sov-accent-strong) !important;
}
input,
select,
textarea,
.input,
.select select {
  min-height: 2.75rem;
  border: 1px solid var(--sov-line-strong) !important;
  border-radius: var(--sov-radius-sm) !important;
  color: var(--sov-ink) !important;
  background: var(--sov-surface-strong) !important;
}
input:hover,
select:hover,
textarea:hover {
  border-color: color-mix(
    in srgb,
    var(--sov-accent) 55%,
    var(--sov-line)
  ) !important;
}
label,
.label {
  color: var(--sov-ink);
  font-weight: 650;
}
table {
  width: 100%;
  border-collapse: separate !important;
  border-spacing: 0;
  border: 1px solid var(--sov-line);
  border-radius: var(--sov-radius);
  overflow: hidden;
  background: var(--sov-surface);
}
thead {
  background: color-mix(in srgb, var(--sov-canvas) 86%, var(--sov-accent) 14%);
}
th {
  color: var(--sov-ink);
  font-size: 0.75rem;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}
th,
td {
  padding: 0.85rem 1rem !important;
  border-bottom: 1px solid var(--sov-line) !important;
  vertical-align: middle;
}
tbody tr:hover {
  background: var(--sov-accent-soft);
}
.badge,
.tag,
.chip,
.ss-chip,
[class*="status"] {
  border-radius: 999px !important;
}
.alert,
.notification {
  border: 1px solid var(--sov-line);
  border-inline-start: 4px solid var(--sov-info);
  border-radius: var(--sov-radius-sm);
  background: var(--sov-surface);
}
[aria-busy="true"] {
  cursor: progress;
}
@media (max-width: 900px) {
  .content-zone,
  .app-shell-content,
  .ss-stage {
    padding: 1rem !important;
  }
  .side-nav,
  .app-shell-side-nav,
  .ss-sidebar {
    box-shadow: none;
  }
  table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .dashboard-compute-grid,
  .dv8-nav-grid {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 520px) {
  :root {
    --sov-radius: 0.75rem;
  }
  h1 {
    font-size: clamp(1.65rem, 9vw, 2.25rem) !important;
  }
  button,
  .button,
  .btn,
  .ss-action {
    width: 100%;
    justify-content: center;
  }
  .shell-topbar,
  .app-shell-topbar,
  .ss-topbar {
    min-height: 3.75rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
@media (forced-colors: active) {
  .card,
  .panel,
  .box,
  table,
  input,
  select,
  textarea {
    border: 1px solid CanvasText !important;
  }
  :focus-visible {
    outline: 3px solid Highlight !important;
  }
}
@media print {
  .side-nav,
  .app-shell-side-nav,
  .ss-sidebar,
  .shell-topbar,
  .app-shell-topbar,
  .ss-topbar,
  .ss-header {
    display: none !important;
  }
  body,
  main,
  .content-zone,
  .app-shell-content,
  .ss-stage {
    background: #fff !important;
    color: #000 !important;
    max-width: none !important;
    padding: 0 !important;
  }
  .card,
  .panel,
  .box,
  table {
    box-shadow: none !important;
    break-inside: avoid;
  }
}
