/* Shared neon layer; component IDs, form contracts and status colours stay intact. */
body.nv-neon {
  --nv-bg: #070b16;
  --nv-surface: #111a2d;
  --nv-border: #344760;
  --nv-text: #edf4ff;
  --nv-muted: #b6c5db;
  --nv-cyan: #67e8f9;
  --nv-violet: #c4b5fd;
  --nv-header-space: 90px;
  color: var(--nv-text);
  background: radial-gradient(ellipse at 8% 0%, #142842 0, transparent 48%),
    radial-gradient(ellipse at 100% 25%, #261a46 0, transparent 48%), var(--nv-bg);
  min-height: 100vh;
  min-height: 100dvh;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color-scheme: dark;
}
body.nv-neon .nv-skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 1000000;
  transform: translateY(-200%);
  padding: 12px 18px;
  border: 2px solid var(--nv-cyan);
  border-radius: 12px;
  color: #071322;
  background: var(--nv-cyan);
  font-weight: 700;
}
body.nv-neon .nv-skip-link:focus { transform: translateY(0); }
body.nv-neon #nv-content-start { scroll-margin-top: calc(var(--nv-header-space) + 16px); }
body.nv-neon.has-vision-header :is(.page-content-wrapper, main) {
  scroll-margin-top: calc(var(--nv-header-space) + 16px);
}
body.nv-neon :is(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--nv-cyan) !important;
  outline-offset: 4px;
}
body.nv-neon .page-content-wrapper { color: var(--nv-text); }
body.nv-neon .page-content-wrapper .card:not([class*="bg-"]) {
  color: var(--nv-text);
  background: linear-gradient(135deg, #142039, #111827);
  border: 1px solid var(--nv-border) !important;
  border-radius: 20px;
  box-shadow: 0 16px 40px #02061766;
}
body.nv-neon .page-content-wrapper :is(.card-header, .card-footer) {
  border-color: var(--nv-border);
}
body.nv-neon :is(.page-content-wrapper, .modal) :is(.bg-light, .bg-white) {
  background-color: var(--nv-surface) !important;
  color: var(--nv-text) !important;
}
body.nv-neon :is(.page-content-wrapper, .modal) :is(.text-muted, .text-secondary) {
  color: var(--nv-muted) !important;
}
body.nv-neon :is(.page-content-wrapper, .modal) .text-dark { color: var(--nv-text) !important; }
body.nv-neon .page-content-wrapper :is(h1,h2,h3,h4,h5,h6, .form-label) { color: var(--nv-text); }
body.nv-neon .page-content-wrapper :is(.text-primary, .text-info) { color: var(--nv-cyan) !important; }
body.nv-neon .page-content-wrapper .text-success { color: #86efac !important; }
body.nv-neon .page-content-wrapper .list-group-item {
  background-color: var(--nv-surface);
  color: var(--nv-text);
  border-color: var(--nv-border) !important;
}
body.nv-neon .page-content-wrapper .list-group-item-action:hover { background-color: #1d2b44; }
body.nv-neon :is(.page-content-wrapper, .modal, .nv-auth-panel) :is(.form-control, .form-select) {
  color: var(--nv-text) !important;
  background-color: #0b1425 !important;
  border-color: #56718e;
  border-radius: 12px;
  font-size: 16px;
  min-height: 48px;
  color-scheme: dark;
}
body.nv-neon :is(.page-content-wrapper, .modal, .nv-auth-panel) :is(.form-control, .form-select):focus {
  border-color: var(--nv-cyan);
  box-shadow: 0 0 0 3px #67e8f926;
}
body.nv-neon :is(.page-content-wrapper, .modal, .nv-auth-panel) .form-control::placeholder {
  color: var(--nv-muted);
  opacity: 1;
}
body.nv-neon :is(.page-content-wrapper, .modal, .nv-auth-panel) .form-control:disabled { opacity: .65; }
body.nv-neon :is(.page-content-wrapper, .modal, .nv-auth-panel) option { background: #0b1425; color: var(--nv-text); }
body.nv-neon :is(.page-content-wrapper, .modal) .input-group-text {
  background: #1d2b44;
  color: var(--nv-cyan);
  border-color: #56718e;
}
body.nv-neon :is(.page-content-wrapper, .modal, .nv-auth-panel) .btn-primary,
body.nv-neon.nv-auth :is(.btn-login, .btn-register) {
  background: linear-gradient(120deg, #67e8f9, #b4b2ff);
  color: #0a1528;
  border-color: transparent;
  font-weight: 700;
  box-shadow: 0 8px 24px #22d3ee24;
}
body.nv-neon :is(.page-content-wrapper, .modal, .nv-auth-panel) :is(.btn-outline-primary, .btn-outline-info) {
  border-color: var(--nv-cyan) !important;
  color: var(--nv-cyan) !important;
  background: transparent;
}
body.nv-neon :is(.page-content-wrapper, .modal, .nv-auth-panel) :is(.btn-outline-primary, .btn-outline-info):hover {
  background: var(--nv-cyan) !important;
  color: #0a1528 !important;
}
body.nv-neon .modal-content {
  background: var(--nv-surface);
  color: var(--nv-text);
  border: 1px solid #56718e;
  border-radius: 20px;
  box-shadow: 0 24px 70px #0009;
}
body.nv-neon .modal :is(.modal-header, .modal-footer) { border-color: var(--nv-border); }
body.nv-neon .modal .modal-title { color: var(--nv-text); }
body.nv-neon .modal .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
body.nv-neon .modal .btn-close-white { filter: none; }
body.nv-neon .table-responsive { border-radius: 14px; border: 1px solid var(--nv-border); }
body.nv-neon .page-content-wrapper .table {
  --bs-table-bg: #111a2d;
  --bs-table-color: #edf4ff;
  --bs-table-striped-bg: #1d2b44;
  --bs-table-striped-color: #edf4ff;
  --bs-table-hover-bg: #25334b;
  --bs-table-hover-color: #edf4ff;
  color: var(--nv-text);
  border-color: var(--nv-border);
}
body.nv-neon.has-vision-header { padding-top: calc(var(--nv-header-space) + 12px) !important; }
body.nv-neon.has-nv-footer { padding-bottom: calc(var(--nv-footer-space, 88px) + 20px); }
body.nv-neon .vision-header {
  background: #0b1425f2;
  border-bottom: 1px solid #67e8f94d;
  box-shadow: 0 4px 30px #22d3ee14;
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}
body.nv-neon .vision-header__content { padding: 12px 0; gap: 12px; }
body.nv-neon .vision-header__left { min-width: 0; width: 100%; }
body.nv-neon .vision-header__tabs { min-width: 0; flex-wrap: wrap; }
body.nv-neon :is(.vision-icon-btn, .vision-notify, .vision-pill-link) { flex-shrink: 0; min-height: 44px; }
body.nv-neon :is(.vision-pill-link, .nk-item, .vision-offcanvas .nav-link)[aria-current="page"] {
  color: var(--nv-cyan);
  background: #164052;
  box-shadow: inset 0 -2px var(--nv-cyan);
}
body.nv-neon .vision-offcanvas { background: #0b1425f5; width: min(360px, 92vw); }
body.nv-neon .vision-offcanvas .nav-link { min-height: 48px; }
body.nv-neon .vision-offcanvas :is(.section-label, .meta .label) { color: var(--nv-muted); }
body.nv-neon .nk-footer { background: #0b1425f5; border-top: 1px solid #67e8f94d; }
body.nv-neon .nk-item { min-height: 48px; padding: 5px 2px; color: var(--nv-muted); border-radius: 12px; }
body.nv-neon .nk-badge { right: 16%; }
body.nv-neon.nv-auth {
  display: block;
  padding: max(24px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));
}
body.nv-neon.nv-auth > .container { max-width: 540px; margin: clamp(12px, 6vh, 64px) auto; padding: 0; }
body.nv-neon.nv-auth .nv-auth-panel {
  background: linear-gradient(145deg, #142039f5, #111827f5);
  border: 1px solid #67e8f966;
  padding: clamp(22px, 5vw, 36px);
  border-radius: 24px;
  box-shadow: 0 24px 60px #0005, 0 0 32px #22d3ee12;
}
body.nv-neon.nv-auth :is(h1, h6, .title) { color: var(--nv-text); font-size: clamp(24px, 5vw, 30px); line-height: 1.25; }
body.nv-neon.nv-auth .nv-auth-subtitle { color: var(--nv-muted); font-size: 15px; line-height: 1.6; }
body.nv-neon.nv-auth :is(.btn-login, .btn-register) { min-height: 52px; height: auto; padding: 12px 16px; border-radius: 14px; }
body.nv-neon.nv-auth :is(.btn-login, .btn-register, .google-btn):hover { transform: none; }
body.nv-neon.nv-auth .nv-auth-panel a { color: var(--nv-cyan); }
body.nv-neon.nv-auth .nv-auth-panel .form-label { color: var(--nv-text); }
body.nv-neon.nv-auth .nv-auth-panel .form-text { color: var(--nv-muted); }
body.nv-neon.nv-auth form[aria-busy="true"] button[type="submit"] {
  opacity: .75;
  cursor: wait;
  pointer-events: none;
}
body.nv-neon .nv-auth-submit-status { margin-top: 12px; color: var(--nv-cyan); }
@media (max-width: 575.98px) {
  body.nv-neon .vision-header__left { justify-content: flex-start; gap: 10px; }
  body.nv-neon .vision-header__tabs { gap: 6px; }
  body.nv-neon .vision-header__tabs .vision-pill-link { padding: 8px 10px; }
  body.nv-neon .modal-dialog { margin: 10px; }
  body.nv-neon .modal-content { max-height: calc(100vh - 20px); max-height: calc(100dvh - 20px); }
  body.nv-neon .modal-body { overflow-y: auto; overflow-wrap: anywhere; }
  body.nv-neon :is(.btn, button) { touch-action: manipulation; }
  body.nv-neon .page-content-wrapper .btn { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  body.nv-neon *, body.nv-neon *::before, body.nv-neon *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  body.nv-neon #nv-loader { display: none !important; }
}
@media (forced-colors: active) {
  body.nv-neon :is(a, button, input, select, textarea):focus-visible { outline-color: Highlight !important; }
}
