/**
 * Wavelength shared interface system.
 * The product should feel like a finished telecom portal, not a Bootstrap admin demo.
 */
:root,
[data-bs-theme="light"] {
  --wl-ink: #172033;
  --wl-ink-soft: #475569;
  --wl-teal: #0f766e;
  --wl-teal-strong: #0b5f59;
  --wl-lime: #d9f99d;
  --wl-sun: #fde68a;
  --wl-sky: #e0f2fe;
  --wl-surface: #f6f9fc;
  --wl-surface-2: #eef7f6;
  --wl-card: #ffffff;
  --wl-border: rgba(23, 32, 51, 0.14);
  --wl-shadow: 0 18px 44px rgba(15, 23, 42, 0.1);
  --wl-focus-ring: 0 0 0 3px rgba(15, 118, 110, 0.24);
}

[data-bs-theme="dark"] {
  --wl-ink: #eef8f5;
  --wl-ink-soft: #a9bfbc;
  --wl-teal: #59d9c9;
  --wl-teal-strong: #86efe3;
  --wl-lime: #d7f25f;
  --wl-sun: #ffd45a;
  --wl-sky: #102f3b;
  --wl-surface: #071516;
  --wl-surface-2: #102029;
  --wl-card: rgba(14, 35, 37, 0.92);
  --wl-border: rgba(238, 248, 245, 0.14);
  --wl-shadow: 0 24px 70px rgba(0, 0, 0, 0.42);
  --wl-focus-ring: 0 0 0 3px rgba(89, 217, 201, 0.35);
}

body.wl-app {
  min-height: 100vh;
  background:
    radial-gradient(circle at 4% 0%, rgba(224, 242, 254, 0.9), transparent 24rem),
    radial-gradient(circle at 96% 4%, rgba(217, 249, 157, 0.42), transparent 22rem),
    linear-gradient(180deg, #ffffff 0%, var(--wl-surface) 46%, var(--wl-surface-2) 100%);
  color: var(--wl-ink);
  font-family: "Aptos Display", "Segoe UI Variable Display", "Trebuchet MS", Verdana, sans-serif;
}

body.wl-app::before {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  content: "";
  opacity: 0.18;
  background-image:
    linear-gradient(120deg, rgba(16, 32, 41, 0.06) 1px, transparent 1px),
    linear-gradient(30deg, rgba(16, 32, 41, 0.05) 1px, transparent 1px);
  background-size: 56px 56px;
}

.bg-body,
.navbar,
header.border-bottom {
  background: rgba(255, 255, 255, 0.92) !important;
  border-color: var(--wl-border) !important;
  backdrop-filter: blur(18px);
}

[data-bs-theme="dark"] .bg-body,
[data-bs-theme="dark"] .navbar,
[data-bs-theme="dark"] header.border-bottom {
  background: rgba(7, 21, 22, 0.84) !important;
}

.text-secondary {
  color: var(--wl-ink-soft) !important;
}

.letter-spacing {
  letter-spacing: 0.08em;
}

.brand-logo-shell {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 0.85rem;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 1.2rem;
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.1);
}

[data-bs-theme="dark"] .brand-logo-shell {
  border-color: rgba(238, 248, 245, 0.18);
  background: linear-gradient(180deg, #f8fafc 0%, #e6f1ed 100%);
}

.brand-logo {
  display: block;
  height: auto;
  max-height: 52px;
  width: auto;
  max-width: min(240px, 85vw);
  object-fit: contain;
}

.brand-logo--sm {
  max-height: 40px;
  max-width: 200px;
}

.brand-logo--header-inline {
  max-height: 44px;
}

.wl-text-brand {
  color: var(--wl-ink) !important;
}

.wl-btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--wl-teal);
  --bs-btn-border-color: var(--wl-teal);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--wl-teal-strong);
  --bs-btn-hover-border-color: var(--wl-teal-strong);
  --bs-btn-active-bg: var(--wl-teal-strong);
  --bs-btn-active-border-color: var(--wl-teal-strong);
  --bs-btn-focus-shadow-rgb: 4, 120, 108;
  border-radius: 999px;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(15, 118, 110, 0.22);
}

.btn-outline-secondary {
  --bs-btn-color: var(--wl-ink);
  --bs-btn-border-color: rgba(16, 32, 41, 0.22);
  --bs-btn-hover-color: var(--wl-ink);
  --bs-btn-hover-bg: rgba(215, 242, 95, 0.28);
  --bs-btn-hover-border-color: rgba(4, 120, 108, 0.36);
  border-radius: 999px;
  font-weight: 700;
}

[data-bs-theme="dark"] .btn-outline-secondary {
  --bs-btn-color: var(--wl-ink);
  --bs-btn-border-color: rgba(238, 248, 245, 0.25);
}

.wl-link-muted {
  color: var(--wl-ink-soft);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.wl-link-muted:hover {
  color: var(--wl-teal);
}

.wl-app a:focus-visible,
.wl-app button:focus-visible,
.wl-app input:focus-visible,
.wl-app select:focus-visible,
.wl-app textarea:focus-visible,
.wl-app .btn:focus-visible {
  outline: none;
  box-shadow: var(--wl-focus-ring);
}

.form-control,
.form-select {
  border-color: var(--wl-border);
  border-radius: 0.95rem;
  background-color: #ffffff;
}

[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
  background-color: rgba(7, 21, 22, 0.72);
}

.wl-skip-link {
  position: absolute;
  left: -9999px;
  z-index: 1080;
  padding: 0.5rem 1rem;
  background: var(--wl-teal);
  color: #fff;
  border-radius: 999px;
  font-weight: 800;
}

.wl-skip-link:focus {
  left: 0.75rem;
  top: 0.75rem;
}

.wl-card-elevated {
  position: relative;
  overflow: hidden;
  background: var(--wl-card);
  border: 1px solid var(--wl-border);
  border-radius: 1.55rem;
  box-shadow: var(--wl-shadow);
}

.wl-card-elevated::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
  background: linear-gradient(140deg, rgba(224, 242, 254, 0.22), transparent 42%);
}

.wl-card-elevated > * {
  position: relative;
}

.wl-table-wrap {
  overflow: hidden;
  border: 1px solid var(--wl-border);
  border-radius: 1.25rem;
  background: var(--wl-card);
  box-shadow: 0 18px 46px rgba(16, 32, 41, 0.08);
}

.table {
  --bs-table-bg: transparent;
  --bs-table-striped-bg: rgba(4, 120, 108, 0.045);
  --bs-table-hover-bg: rgba(215, 242, 95, 0.16);
}

.table thead th {
  color: var(--wl-ink-soft);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.wl-control-hero {
  background:
    radial-gradient(circle at top right, rgba(217, 249, 157, 0.46), transparent 34%),
    linear-gradient(135deg, #ffffff, #ecfeff);
}

[data-bs-theme="dark"] .wl-control-hero {
  background:
    radial-gradient(circle at top right, rgba(215, 242, 95, 0.16), transparent 34%),
    linear-gradient(135deg, rgba(14, 35, 37, 0.98), rgba(11, 48, 53, 0.88));
}

.wl-setup-step {
  min-height: 84px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem;
  border: 1px solid rgba(4, 120, 108, 0.18);
  border-radius: 1.2rem;
  background:
    linear-gradient(145deg, rgba(224, 242, 254, 0.74), rgba(255, 255, 255, 0.96));
  color: var(--wl-ink);
  font-weight: 900;
  text-align: center;
}

.badge.text-bg-success {
  color: #072018 !important;
  background-color: var(--wl-lime) !important;
}
