/* Nullsec Market UI v1 — additive foundation */
:root {
  --ns-bg: #070a12;
  --ns-bg-soft: #0c1120;
  --ns-panel: rgba(15, 23, 42, .72);
  --ns-panel-solid: #111827;
  --ns-panel-raised: #172033;
  --ns-line: rgba(148, 163, 184, .16);
  --ns-line-strong: rgba(96, 165, 250, .42);
  --ns-text: #edf4ff;
  --ns-muted: #90a0ba;
  --ns-faint: #56647a;
  --ns-blue: #3b82f6;
  --ns-blue-light: #60a5fa;
  --ns-emerald: #22c55e;
  --ns-amber: #f59e0b;
  --ns-rose: #fb7185;
  --ns-radius-sm: 12px;
  --ns-radius-md: 18px;
  --ns-radius-lg: 26px;
  --ns-shadow: 0 24px 80px rgba(0, 0, 0, .34);
  --ns-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

html { scroll-behavior: smooth; }
body {
  background:
    radial-gradient(circle at 12% -10%, rgba(37, 99, 235, .15), transparent 28rem),
    radial-gradient(circle at 92% 8%, rgba(16, 185, 129, .10), transparent 24rem),
    var(--ns-bg);
}
body::before {
  content: "";
  position: fixed;
  z-index: -2;
  inset: 0;
  pointer-events: none;
  opacity: .24;
  background-image:
    linear-gradient(rgba(148, 163, 184, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148, 163, 184, .035) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(to bottom, #000, transparent 80%);
}

.ns-shell { position: relative; overflow: clip; min-height: 100vh; }
.ns-glass {
  background: linear-gradient(145deg, rgba(20, 31, 52, .78), rgba(11, 17, 30, .64));
  border: 1px solid var(--ns-line);
  box-shadow: var(--ns-shadow);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.ns-eyebrow {
  color: var(--ns-emerald);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.ns-gradient-text {
  color: #fff;
  background: linear-gradient(120deg, #fff 20%, #93c5fd 55%, #6ee7b7);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ns-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 42px;
  border-radius: 12px;
  padding: 0 1rem;
  border: 1px solid var(--ns-line);
  font-size: 13px;
  font-weight: 750;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.ns-button:hover { transform: translateY(-2px); }
.ns-button-primary {
  border-color: transparent;
  color: #fff;
  background: linear-gradient(135deg, #2563eb, #3b82f6);
  box-shadow: 0 12px 28px rgba(37, 99, 235, .25);
}
.ns-button-primary:hover {
  background: linear-gradient(135deg, #1d4ed8, #60a5fa);
  box-shadow: 0 16px 34px rgba(37, 99, 235, .34);
}
.ns-button-ghost {
  color: #dce8fa;
  background: rgba(15, 23, 42, .42);
}
.ns-button-ghost:hover { border-color: var(--ns-line-strong); background: rgba(30, 41, 59, .72); }

.ns-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .7s cubic-bezier(.2,.8,.2,1), transform .7s cubic-bezier(.2,.8,.2,1);
}
.ns-reveal.is-visible { opacity: 1; transform: translateY(0); }

.ns-orb {
  position: absolute;
  pointer-events: none;
  border-radius: 999px;
  filter: blur(4px);
  opacity: .6;
  animation: ns-float 9s ease-in-out infinite alternate;
}
.ns-orb-blue {
  width: 24rem; height: 24rem; top: -10rem; right: -9rem;
  background: radial-gradient(circle, rgba(59,130,246,.25), transparent 68%);
}
.ns-orb-green {
  width: 20rem; height: 20rem; bottom: 3rem; left: -10rem;
  background: radial-gradient(circle, rgba(16,185,129,.16), transparent 70%);
  animation-delay: -4s;
}
@keyframes ns-float {
  to { transform: translate3d(0, 20px, 0) scale(1.07); }
}

.ns-page-hero { position: relative; padding: 5.75rem 0 3.5rem; }
.ns-page-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(330px, .9fr);
  gap: 3rem;
  align-items: center;
}
.ns-page-hero h1 {
  max-width: 760px;
  margin: .7rem 0 1.1rem;
  font-size: clamp(2.6rem, 6vw, 5.2rem);
  letter-spacing: -.065em;
  line-height: .98;
}
.ns-page-hero p {
  max-width: 590px;
  margin: 0;
  color: var(--ns-muted);
  font-size: 1rem;
  line-height: 1.75;
}
.ns-hero-actions { display: flex; gap: .7rem; margin-top: 1.75rem; flex-wrap: wrap; }
.ns-trust-line {
  display: flex;
  gap: .9rem;
  margin-top: 1.8rem;
  flex-wrap: wrap;
  color: var(--ns-muted);
  font-size: 12px;
}
.ns-trust-line span::before { content: "✦"; color: var(--ns-emerald); margin-right: .42rem; }

.ns-domain-preview {
  position: relative;
  padding: 1.1rem;
  border-radius: var(--ns-radius-lg);
  transform: perspective(1200px) rotateY(-5deg) rotateX(2deg);
  transition: transform .4s ease;
}
.ns-domain-preview:hover { transform: perspective(1200px) rotateY(-1deg) rotateX(0deg) translateY(-5px); }
.ns-preview-top { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.ns-preview-live {
  color: #86efac; background: rgba(34,197,94,.11); border: 1px solid rgba(34,197,94,.2);
  border-radius: 99px; padding: .32rem .55rem; font: 700 10px var(--ns-mono); letter-spacing: .08em;
}
.ns-preview-domain { margin: 1.9rem 0 1.25rem; font: 700 clamp(1.5rem,4vw,2.15rem) var(--ns-mono); letter-spacing: -.07em; }
.ns-preview-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.ns-preview-metrics div { padding: .75rem; border-radius: 12px; background: rgba(2, 6, 23, .44); border: 1px solid rgba(148,163,184,.1); }
.ns-preview-metrics b { display: block; color: #fff; font: 750 15px var(--ns-mono); }
.ns-preview-metrics small { color: var(--ns-faint); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.ns-preview-bottom { display: flex; align-items: center; justify-content: space-between; margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--ns-line); }
.ns-preview-price { font: 800 1.25rem var(--ns-mono); }

.ns-section { padding: 4.5rem 0; position: relative; }
.ns-section-title { max-width: 690px; margin-bottom: 1.9rem; }
.ns-section-title h2 { margin: .55rem 0 .7rem; font-size: clamp(1.8rem, 3vw, 2.8rem); letter-spacing: -.045em; }
.ns-section-title p { color: var(--ns-muted); line-height: 1.7; margin: 0; }

.ns-feature-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.ns-feature {
  padding: 1.35rem;
  border-radius: var(--ns-radius-md);
  background: linear-gradient(145deg, rgba(20,31,52,.64), rgba(9,14,25,.62));
  border: 1px solid var(--ns-line);
}
.ns-feature-number { color: var(--ns-blue-light); font: 800 11px var(--ns-mono); letter-spacing: .1em; }
.ns-feature h3 { margin: .85rem 0 .55rem; font-size: 16px; }
.ns-feature p { margin: 0; color: var(--ns-muted); font-size: 13px; line-height: 1.65; }

.ns-inventory-frame {
  padding: 1rem;
  border-radius: var(--ns-radius-lg);
  background: linear-gradient(145deg, rgba(15,23,42,.72), rgba(4,8,17,.84));
  border: 1px solid var(--ns-line);
}
.ns-inventory-frame .pagehead { padding-top: 1rem; }
.ns-inventory-frame .filters { padding: 1rem; border: 1px solid var(--ns-line); border-radius: var(--ns-radius-md); background: rgba(2,6,23,.28); }

@media (max-width: 900px) {
  .ns-page-hero { padding: 3.8rem 0 2rem; }
  .ns-page-hero-grid { grid-template-columns: 1fr; gap: 2rem; }
  .ns-domain-preview { max-width: 560px; transform: none; }
  .ns-feature-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .ns-page-hero h1 { font-size: 2.55rem; }
  .ns-section { padding: 3.2rem 0; }
  .ns-preview-metrics { gap: .35rem; }
  .ns-preview-metrics div { padding: .55rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .ns-reveal { opacity: 1; transform: none; }
}

/* Navigation v1 */
.ns-topnav {
  position: sticky;
  top: 0;
  z-index: 60;
  background: rgba(7, 10, 18, .58) !important;
  border-color: rgba(148, 163, 184, .13) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  transition: background .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.ns-topnav.is-scrolled {
  background: rgba(7, 10, 18, .88) !important;
  border-color: rgba(148, 163, 184, .19) !important;
  box-shadow: 0 10px 34px rgba(0, 0, 0, .2);
}
.ns-topnav .ns-nav-inner { height: 68px; }
.ns-brand {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  font-size: 15px;
  letter-spacing: -.03em;
}
.ns-brand-mark {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  border: 1px solid rgba(96, 165, 250, .55);
  border-radius: 8px;
  color: #dbeafe;
  background: linear-gradient(145deg, rgba(37, 99, 235, .75), rgba(16, 185, 129, .45));
  box-shadow: 0 8px 18px rgba(37, 99, 235, .25);
  font: 800 12px var(--ns-mono);
}
.ns-topnav .links { align-items: center; gap: .2rem; }
.ns-topnav .links a {
  color: #91a0ba;
  border: 1px solid transparent;
  padding: .5rem .68rem;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.ns-topnav .links a:hover,
.ns-topnav .links a.on {
  color: #f5f9ff;
  border-color: rgba(148, 163, 184, .14);
  background: rgba(30, 41, 59, .52);
}
.ns-nav-divider {
  display: block;
  width: 1px;
  height: 18px;
  margin: 0 .35rem;
  background: rgba(148, 163, 184, .2);
}
.ns-topnav .links .ns-nav-cta {
  color: #fff;
  margin-left: .2rem;
  border-color: transparent;
  background: linear-gradient(135deg, #2563eb, #3b82f6);
  box-shadow: 0 8px 20px rgba(37, 99, 235, .2);
}
.ns-topnav .links .ns-nav-cta:hover {
  border-color: transparent;
  background: linear-gradient(135deg, #1d4ed8, #60a5fa);
}
.ns-logout-form { display: inline-flex; margin: 0; }
.ns-signout {
  padding: .5rem .68rem !important;
  color: #91a0ba !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  font-weight: 500 !important;
}
.ns-signout:hover {
  color: #fff !important;
  border-color: rgba(148, 163, 184, .14) !important;
  background: rgba(30, 41, 59, .52) !important;
  transform: none !important;
}
.ns-menu-toggle {
  display: none;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 10px;
  background: rgba(15, 23, 42, .56);
}
.ns-menu-toggle span {
  display: block;
  width: 16px;
  height: 1.5px;
  margin: 4px auto;
  border-radius: 4px;
  background: #dbeafe;
}

@media (max-width: 780px) {
  .ns-menu-toggle { display: block; }
  .ns-topnav .ns-nav-inner { position: relative; }
  .ns-topnav .ns-nav-links {
    display: none;
    position: absolute;
    z-index: 2;
    top: 60px;
    left: 14px;
    right: 14px;
    padding: .65rem;
    border: 1px solid rgba(148, 163, 184, .18);
    border-radius: 16px;
    background: rgba(8, 12, 22, .96);
    box-shadow: var(--ns-shadow);
    backdrop-filter: blur(18px);
  }
  .ns-topnav .ns-nav-links.is-open { display: grid; }
  .ns-topnav .links a,
  .ns-logout-form { width: 100%; }
  .ns-topnav .links a,
  .ns-signout { text-align: left; }
  .ns-nav-divider { display: none; }
  .ns-topnav .links .ns-nav-cta { margin-left: 0; text-align: center; }
}

/* Landing catalog polish */
.ns-inventory-frame .card {
  background: linear-gradient(145deg, rgba(20, 31, 52, .72), rgba(11, 17, 30, .75));
  border-color: var(--ns-line);
  border-radius: 15px;
  box-shadow: none;
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.ns-inventory-frame .card:hover {
  transform: translateY(-4px);
  border-color: rgba(96, 165, 250, .42);
  background: linear-gradient(145deg, rgba(23, 38, 65, .82), rgba(11, 17, 30, .82));
}
.ns-inventory-frame .name { font-family: var(--ns-mono); letter-spacing: -.045em; }
.ns-inventory-frame .price { color: #dbeafe; }
.ns-inventory-frame .actions a.primary,
.ns-inventory-frame .actions button.primary {
  background: linear-gradient(135deg, #16a34a, #22c55e) !important;
  color: #04150a !important;
  border-color: transparent !important;
}
.ns-inventory-frame .actions a.primary:hover,
.ns-inventory-frame .actions button.primary:hover {
  background: linear-gradient(135deg, #22c55e, #4ade80) !important;
}
.ns-inventory-frame input,
.ns-inventory-frame select {
  background: rgba(2, 6, 23, .54);
  border-color: rgba(148, 163, 184, .18);
}
.ns-inventory-frame input:focus,
.ns-inventory-frame select:focus {
  border-color: rgba(96, 165, 250, .7);
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .13);
}
.ns-inventory-frame .filters button {
  border-radius: 10px;
  background: #2563eb;
}

/* ==========================================================================
   Auth pages — black luxe glass / gold ribbon
   ========================================================================== */
.ns-auth-page {
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  min-height: calc(100vh - 68px);
  overflow: hidden;
  padding: 5.5rem 1.25rem 4.25rem;
  background:
    radial-gradient(ellipse at 55% 42%, rgba(250, 204, 21, .105), transparent 26rem),
    radial-gradient(ellipse at 12% 88%, rgba(148, 163, 184, .09), transparent 28rem),
    #030405;
}
.ns-auth-page::before,
.ns-auth-page::after {
  position: absolute;
  z-index: -2;
  content: "";
  pointer-events: none;
  border-radius: 50%;
  filter: blur(1px);
}
.ns-auth-page::before {
  width: 125vw;
  height: 18rem;
  top: 8%;
  left: -13%;
  transform: rotate(-13deg);
  background:
    linear-gradient(176deg,
      transparent 0 31%,
      rgba(255,255,255,.10) 31.5% 32.1%,
      rgba(126,79,15,.42) 32.2% 34.6%,
      rgba(255, 198, 73, .78) 35% 36.1%,
      rgba(68, 43, 11, .9) 36.5% 38.8%,
      transparent 39.2% 100%);
  opacity: .86;
}
.ns-auth-page::after {
  width: 140vw;
  height: 22rem;
  right: -27%;
  bottom: 0;
  transform: rotate(11deg);
  background:
    linear-gradient(180deg,
      transparent 0 40%,
      rgba(150,150,155,.16) 40.5% 41.5%,
      rgba(15,17,22,.95) 42% 45%,
      rgba(202, 146, 36, .60) 45.4% 46.4%,
      rgba(253, 207, 83, .78) 46.8% 47.6%,
      rgba(58, 36, 9, .9) 48% 51%,
      transparent 51.4% 100%);
  opacity: .83;
}
.ns-auth-ribbon {
  position: absolute;
  z-index: -1;
  pointer-events: none;
  border-radius: 999px;
  filter: blur(.3px);
  transform-origin: center;
}
.ns-auth-ribbon-one {
  width: 125vw;
  height: 6.3rem;
  top: 26%;
  left: -15%;
  transform: rotate(-18deg);
  background:
    linear-gradient(180deg,
      rgba(20,21,24,.28),
      rgba(241,180,54,.08) 20%,
      rgba(255,205,91,.72) 47%,
      rgba(108,64,11,.86) 56%,
      rgba(10,11,13,.35) 90%);
  box-shadow: 0 0 33px rgba(226, 158, 35, .17);
}
.ns-auth-ribbon-two {
  width: 115vw;
  height: 3.8rem;
  top: 52%;
  right: -18%;
  transform: rotate(20deg);
  background: linear-gradient(180deg,
    rgba(0,0,0,.1),
    rgba(255,211,101,.76) 37%,
    rgba(107,68,18,.86) 52%,
    rgba(10,10,11,.42) 82%);
  box-shadow: 0 0 28px rgba(237, 182, 59, .19);
}
.ns-auth-ribbon-three {
  width: 100vw;
  height: 5.2rem;
  bottom: 12%;
  left: -22%;
  transform: rotate(-18deg);
  background: linear-gradient(180deg,
    transparent,
    rgba(172,177,185,.20) 29%,
    rgba(35,37,42,.94) 38%,
    rgba(236,184,68,.54) 50%,
    rgba(74,44,10,.8) 62%,
    transparent 92%);
}
.ns-auth-noise {
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  opacity: .20;
  background-image:
    linear-gradient(135deg, transparent 48%, rgba(255,255,255,.038) 49%, transparent 50%),
    radial-gradient(rgba(255,255,255,.32) .45px, transparent .7px);
  background-size: 13px 13px, 4px 4px;
  mix-blend-mode: soft-light;
}
.ns-auth-brand {
  position: absolute;
  top: 1.25rem;
  left: clamp(1.25rem, 5vw, 4rem);
  display: inline-flex;
  align-items: center;
  gap: .52rem;
  color: #edf4ff;
  font-weight: 800;
  letter-spacing: -.035em;
}
.ns-auth-brand span span { color: #f9d84f; }
.ns-auth-brand-mark {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  border: 1px solid rgba(253, 224, 71, .6);
  border-radius: 8px;
  color: #fff1a2;
  background: linear-gradient(145deg, rgba(161, 106, 18, .83), rgba(15, 18, 24, .85));
  box-shadow: 0 10px 25px rgba(210, 154, 37, .23);
  font: 800 12px var(--ns-mono);
}
.ns-auth-card {
  position: relative;
  width: min(100%, 480px);
  padding: clamp(1.45rem, 4vw, 2rem);
  border: 1px solid rgba(255,255,255,.21);
  border-radius: 19px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.115), transparent 32%),
    rgba(13, 13, 16, .67);
  box-shadow:
    0 34px 90px rgba(0,0,0,.65),
    inset 0 1px 0 rgba(255,255,255,.14);
  backdrop-filter: blur(20px) saturate(135%);
  -webkit-backdrop-filter: blur(20px) saturate(135%);
}
.ns-auth-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 8px -11px -11px 8px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 20px;
  transform: skewY(2deg);
  opacity: .75;
}
.ns-auth-corner {
  position: absolute;
  width: 36px;
  height: 36px;
  pointer-events: none;
  border-color: rgba(253, 224, 71, .70);
}
.ns-auth-corner-tl {
  top: -1px; left: -1px;
  border-top: 1px solid;
  border-left: 1px solid;
  border-radius: 19px 0 0 0;
}
.ns-auth-corner-br {
  right: -1px; bottom: -1px;
  border-right: 1px solid;
  border-bottom: 1px solid;
  border-radius: 0 0 19px 0;
}
.ns-auth-heading { margin-bottom: 1.2rem; }
.ns-auth-kicker {
  margin-bottom: .42rem;
  color: rgba(255, 235, 155, .75);
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.ns-auth-heading h1 {
  margin: 0;
  color: #f8fafc;
  font-size: clamp(1.55rem, 5vw, 2rem);
  letter-spacing: -.055em;
  line-height: 1;
}
.ns-auth-heading h1 span { color: #f7d43c; }
.ns-auth-heading p {
  margin: .55rem 0 0;
  color: rgba(226, 232, 240, .65);
  font-size: 11px;
  line-height: 1.5;
}
.ns-auth-error {
  margin-bottom: 1rem;
  padding: .65rem .75rem;
  border: 1px solid rgba(251, 113, 133, .38);
  border-radius: 9px;
  color: #fecdd3;
  background: rgba(136, 19, 55, .22);
  font-size: 11px;
}
.ns-auth-form { display: grid; gap: .78rem; }
.ns-auth-field { display: block; }
.ns-auth-field > span:first-child {
  display: block;
  margin: 0 0 .35rem;
  color: rgba(241,245,249,.78);
  font-size: 10px;
  font-weight: 650;
}
.ns-input-wrap { position: relative; display: block; }
.ns-input-wrap input {
  height: 42px;
  padding: 0 2.25rem 0 2rem;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 9px;
  color: #fff;
  background: rgba(10, 11, 15, .52);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.28);
  font-size: 12px;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.ns-input-wrap input::placeholder { color: rgba(203, 213, 225, .35); }
.ns-input-wrap input:focus {
  border-color: rgba(253, 224, 71, .70);
  background: rgba(12, 13, 17, .82);
  box-shadow: 0 0 0 3px rgba(250, 204, 21, .10);
}
.ns-field-icon {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: .72rem;
  transform: translateY(-50%);
  color: rgba(253, 224, 71, .68);
  font-size: 12px;
  line-height: 1;
}
.ns-password-toggle {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: .38rem;
  width: 30px;
  min-height: 30px;
  padding: 0;
  transform: translateY(-50%);
  border: 0;
  color: rgba(226, 232, 240, .45);
  background: transparent;
  box-shadow: none;
  font-size: 11px;
}
.ns-password-toggle:hover { transform: translateY(-50%); color: #f9dc59; background: transparent; }
.ns-auth-two-cols { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
.ns-auth-options {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-top: -.1rem;
  font-size: 10px;
}
.ns-check { display: inline-flex; align-items: flex-start; gap: .42rem; color: rgba(226,232,240,.66); line-height: 1.35; }
.ns-check input {
  width: 12px;
  height: 12px;
  min-width: 12px;
  margin: 1px 0 0;
  accent-color: #f9d83e;
}
.ns-check a { color: #f7d43c; }
.ns-auth-muted { color: rgba(203,213,225,.42); }
.ns-auth-submit {
  width: 100%;
  min-height: 43px;
  margin-top: .12rem;
  border: 1px solid rgba(255, 232, 110, .92);
  border-radius: 9px;
  color: #1b1604;
  background: linear-gradient(180deg, #fff26b, #f7c91d);
  box-shadow: 0 11px 25px rgba(245, 190, 27, .23), inset 0 1px 0 rgba(255,255,255,.7);
  font-size: 12px;
  font-weight: 850;
}
.ns-auth-submit:hover {
  transform: translateY(-1px);
  background: linear-gradient(180deg, #fff78f, #ffcf23);
  box-shadow: 0 14px 28px rgba(245, 190, 27, .31), inset 0 1px 0 rgba(255,255,255,.75);
}
.ns-auth-submit span { margin-left: .32rem; font-size: 16px; vertical-align: -1px; }
.ns-auth-switch {
  margin-top: 1.15rem;
  color: rgba(226,232,240,.57);
  font-size: 10px;
  text-align: center;
}
.ns-auth-switch a { color: #f8d947; font-weight: 750; }
.ns-auth-footnote {
  position: absolute;
  bottom: 1.2rem;
  display: flex;
  align-items: center;
  gap: .55rem;
  color: rgba(226,232,240,.32);
  font-size: 9px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.ns-auth-footnote i { width: 22px; height: 1px; background: rgba(253,224,71,.45); }

@media (max-width: 560px) {
  .ns-auth-page { min-height: calc(100vh - 56px); padding: 5rem 1rem 3.8rem; }
  .ns-auth-card { padding: 1.25rem; border-radius: 16px; }
  .ns-auth-two-cols { grid-template-columns: 1fr; gap: .78rem; }
  .ns-auth-brand { top: .95rem; left: 1rem; }
  .ns-auth-footnote { display: none; }
}

/* Public site — intentionally separate from buyer app */
.ns-public-nav{
  position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(148,163,184,.13);
  background:rgba(7,10,18,.78);backdrop-filter:blur(18px);
}
.ns-public-nav-inner,.ns-public-wrap{
  width:min(1180px,calc(100% - 40px));margin:0 auto;
}
.ns-public-nav-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.ns-public-brand{display:inline-flex;align-items:center;gap:9px;font-weight:800;font-size:17px;letter-spacing:-.04em}
.ns-public-brand>span:last-child>span{color:#22c55e}
.ns-public-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:linear-gradient(135deg,#2563eb,#0f766e);border:1px solid rgba(96,165,250,.55);font:800 12px var(--ns-mono)}
.ns-public-links{display:flex;align-items:center;gap:8px;color:#9ca9be;font-size:13px}
.ns-public-links a{padding:8px 10px;border-radius:9px}
.ns-public-links a:hover{color:#fff;background:rgba(148,163,184,.09)}
.ns-public-links .ns-public-cta{background:#2563eb;color:#fff;padding:10px 14px;font-weight:700}
.ns-public-links .ns-public-cta:hover{background:#3b82f6}
.ns-public-hero{position:relative;overflow:hidden;padding:clamp(76px,11vw,150px) 0 92px;background:
 radial-gradient(circle at 82% 13%,rgba(37,99,235,.20),transparent 25rem),
 radial-gradient(circle at 9% 84%,rgba(16,185,129,.12),transparent 29rem)}
.ns-public-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.8fr);gap:55px;align-items:center}
.ns-public-kicker{color:#6ee7b7;font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.ns-public-hero h1{max-width:760px;margin:14px 0 17px;font-size:clamp(42px,6vw,76px);line-height:.98;letter-spacing:-.065em}
.ns-public-hero p{max-width:610px;margin:0;color:#9ca9be;font-size:16px;line-height:1.75}
.ns-public-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:27px}
.ns-public-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:47px;padding:0 18px;border-radius:12px;font-size:14px;font-weight:750;transition:.2s ease}
.ns-public-button:hover{transform:translateY(-2px)}
.ns-public-button-primary{color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);box-shadow:0 15px 32px rgba(37,99,235,.25)}
.ns-public-button-secondary{color:#dbeafe;border:1px solid rgba(148,163,184,.2);background:rgba(15,23,42,.45)}
.ns-public-trust{display:flex;flex-wrap:wrap;gap:15px;margin-top:23px;color:#8291a9;font-size:12px}
.ns-public-trust span:before{content:"✦";color:#22c55e;margin-right:6px}
.ns-public-preview{padding:24px;border:1px solid rgba(148,163,184,.16);border-radius:22px;background:linear-gradient(145deg,rgba(28,43,73,.72),rgba(9,14,25,.8));box-shadow:0 30px 80px rgba(0,0,0,.35);backdrop-filter:blur(15px)}
.ns-preview-label{color:#93c5fd;font:800 10px var(--ns-mono);letter-spacing:.13em;text-transform:uppercase;margin-bottom:14px}
.ns-preview-line{display:grid;grid-template-columns:30px 1fr;gap:4px;padding:15px 0;border-top:1px solid rgba(148,163,184,.12)}
.ns-preview-line span{grid-row:span 2;color:#60a5fa;font:800 12px var(--ns-mono)}
.ns-preview-line strong{font-size:15px;color:#edf4ff}
.ns-preview-line i{color:#8b99af;font-size:12px;font-style:normal;margin-top:3px}
.ns-public-section{padding:90px 0;border-top:1px solid rgba(148,163,184,.1)}
.ns-public-section h2,.ns-public-bottom-cta h2{margin:12px 0 0;font-size:clamp(29px,4vw,48px);letter-spacing:-.05em}
.ns-public-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px}
.ns-public-step{min-height:210px;padding:24px;border:1px solid rgba(148,163,184,.14);border-radius:18px;background:rgba(15,23,42,.48)}
.ns-public-step>span{color:#60a5fa;font:800 11px var(--ns-mono);letter-spacing:.12em}
.ns-public-step h3{margin:20px 0 10px;font-size:18px}
.ns-public-step p{margin:0;color:#94a3b8;font-size:13px;line-height:1.7}
.ns-public-bottom-cta{padding:30px 0 90px}
.ns-public-bottom-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:32px;border:1px solid rgba(96,165,250,.23);border-radius:22px;background:linear-gradient(120deg,rgba(30,58,138,.32),rgba(5,12,25,.62))}
.ns-public-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:22px max(20px,calc((100% - 1180px)/2));border-top:1px solid rgba(148,163,184,.13);color:#8190a8;font-size:12px}
.ns-public-footer a:hover{color:#fff}
@media(max-width:760px){
 .ns-public-nav-inner,.ns-public-wrap{width:min(100% - 28px,1180px)}
 .ns-public-links a:not(.ns-public-cta){display:none}
 .ns-public-hero{padding:74px 0 64px}
 .ns-public-hero-grid,.ns-public-steps{grid-template-columns:1fr;gap:18px}
 .ns-public-bottom-inner{align-items:flex-start;flex-direction:column}
}

/* Buyer catalog */
.ns-browse-frame{
  padding:16px;
  border:1px solid rgba(148,163,184,.14);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(19,29,48,.72),rgba(8,13,23,.70));
  box-shadow:0 24px 70px rgba(0,0,0,.16);
}
.ns-browse-frame .filters{
  padding:12px;
  border:1px solid rgba(148,163,184,.13);
  border-radius:13px;
  background:rgba(2,6,23,.28);
}
.ns-browse-frame .card{
  border-radius:14px;
  background:rgba(16,24,39,.72);
  transition:transform .2s ease,border-color .2s ease,background .2s ease;
}
.ns-browse-frame .card:hover{
  transform:translateY(-3px);
  border-color:rgba(96,165,250,.42);
  background:rgba(20,31,52,.88);
}
.ns-browse-frame .name{font-family:var(--mono);letter-spacing:-.035em}
@media(max-width:560px){
  .ns-browse-frame{padding:10px}
  .ns-browse-frame .filters{padding:10px}
}

/* ==========================================================================
   Auth final palette — Nullsec navy / electric blue / emerald
   Overrides the earlier gold experiment completely.
   ========================================================================== */
.ns-auth-page {
  min-height: 100vh;
  padding: 6.25rem 1.25rem 5rem;
  background:
    radial-gradient(ellipse at 56% 42%, rgba(37, 99, 235, .15), transparent 28rem),
    radial-gradient(ellipse at 13% 82%, rgba(16, 185, 129, .10), transparent 31rem),
    #050812;
}
.ns-auth-page::before {
  background:
    linear-gradient(176deg,
      transparent 0 31%,
      rgba(255,255,255,.06) 31.5% 32.1%,
      rgba(30, 64, 175, .38) 32.2% 34.6%,
      rgba(59, 130, 246, .55) 35% 36.1%,
      rgba(12, 31, 80, .88) 36.5% 38.8%,
      transparent 39.2% 100%);
}
.ns-auth-page::after {
  background:
    linear-gradient(180deg,
      transparent 0 40%,
      rgba(148, 163, 184, .13) 40.5% 41.5%,
      rgba(7, 17, 38, .95) 42% 45%,
      rgba(37, 99, 235, .48) 45.4% 46.4%,
      rgba(96, 165, 250, .58) 46.8% 47.6%,
      rgba(8, 28, 67, .84) 48% 51%,
      transparent 51.4% 100%);
}
.ns-auth-ribbon-one {
  background:linear-gradient(180deg,
    rgba(20,21,24,.2),
    rgba(59,130,246,.07) 20%,
    rgba(96,165,250,.58) 47%,
    rgba(30,64,175,.83) 56%,
    rgba(10,11,13,.26) 90%) !important;
  box-shadow:0 0 33px rgba(37,99,235,.20) !important;
}
.ns-auth-ribbon-two {
  background:linear-gradient(180deg,
    rgba(0,0,0,.1),
    rgba(52,211,153,.50) 37%,
    rgba(15,118,110,.78) 52%,
    rgba(10,10,11,.42) 82%) !important;
  box-shadow:0 0 28px rgba(16,185,129,.16) !important;
}
.ns-auth-ribbon-three {
  background:linear-gradient(180deg,
    transparent,
    rgba(148,163,184,.16) 29%,
    rgba(20,31,52,.94) 38%,
    rgba(59,130,246,.46) 50%,
    rgba(15,118,110,.70) 62%,
    transparent 92%) !important;
}
.ns-auth-brand span span,
.ns-auth-heading h1 span,
.ns-auth-switch a,
.ns-check a {
  color: #60a5fa !important;
}
.ns-auth-brand-mark {
  border-color: rgba(96,165,250,.62) !important;
  color: #dbeafe !important;
  background:linear-gradient(145deg,rgba(37,99,235,.86),rgba(15,118,110,.65)) !important;
  box-shadow:0 10px 25px rgba(37,99,235,.25) !important;
}
.ns-auth-kicker { color: rgba(147,197,253,.82) !important; }
.ns-auth-heading h1 span,
.ns-otp-title span { color:#60a5fa !important; }
.ns-auth-card {
  width:min(100%, 560px);
  padding:clamp(1.8rem,4vw,2.55rem);
  border-color:rgba(148,163,184,.25) !important;
  background:
    linear-gradient(135deg,rgba(255,255,255,.09),transparent 35%),
    rgba(8,14,29,.74) !important;
  box-shadow:0 34px 90px rgba(0,0,0,.65), inset 0 1px 0 rgba(255,255,255,.13) !important;
}
.ns-auth-corner { border-color:rgba(96,165,250,.78) !important; }
.ns-auth-heading h1 { font-size:clamp(2rem,5vw,2.7rem); }
.ns-auth-heading p { font-size:15px; line-height:1.62; margin-top:.72rem; }
.ns-auth-field > span:first-child { font-size:13px; margin-bottom:.5rem; }
.ns-auth-form { gap:1rem; }

/* Fix clipping: input's width includes padding and leaves icon/button space. */
.ns-auth-page .ns-input-wrap {
  display:block;
  width:100%;
  overflow:visible;
}
.ns-auth-page .ns-input-wrap input {
  box-sizing:border-box !important;
  display:block;
  width:100% !important;
  min-width:0;
  height:56px !important;
  padding:0 3.25rem 0 2.9rem !important;
  border-color:rgba(148,163,184,.23) !important;
  border-radius:13px !important;
  background:rgba(2,6,23,.65) !important;
  color:#f8fbff !important;
  font-size:16px !important;
}
.ns-auth-page .ns-input-wrap input:focus {
  border-color:rgba(96,165,250,.95) !important;
  background:rgba(5,12,28,.92) !important;
  box-shadow:0 0 0 4px rgba(59,130,246,.16) !important;
}
.ns-auth-page .ns-input-wrap input::placeholder { color:rgba(203,213,225,.42) !important; }
.ns-auth-page .ns-field-icon {
  left:1rem !important;
  color:#60a5fa !important;
  font-size:15px !important;
}
.ns-auth-page .ns-password-toggle {
  right:.72rem !important;
  width:36px !important;
  min-height:36px !important;
  color:#93c5fd !important;
}
.ns-auth-page .ns-password-toggle:hover { color:#e0f2fe !important; }
.ns-auth-two-cols { gap:.9rem !important; }
.ns-auth-options { margin-top:.1rem; font-size:13px; }
.ns-check { color:rgba(226,232,240,.72) !important; }
.ns-check input { accent-color:#2563eb !important; }
.ns-auth-forgot { color:#93c5fd; font-size:13px; }
.ns-auth-forgot:hover { color:#dbeafe; text-decoration:underline; }

.ns-auth-submit,
.ns-blue-submit {
  min-height:56px !important;
  border-color:rgba(96,165,250,.9) !important;
  color:#fff !important;
  background:linear-gradient(135deg,#1d4ed8,#2563eb 55%,#0f766e) !important;
  box-shadow:0 15px 30px rgba(37,99,235,.28),inset 0 1px 0 rgba(255,255,255,.18) !important;
  font-size:16px !important;
}
.ns-auth-submit:hover,
.ns-blue-submit:hover {
  background:linear-gradient(135deg,#2563eb,#3b82f6 55%,#059669) !important;
  box-shadow:0 18px 36px rgba(37,99,235,.37),inset 0 1px 0 rgba(255,255,255,.2) !important;
}
.ns-auth-footnote i { background:rgba(96,165,250,.65) !important; }

/* OTP standalone page */
.ns-auth-page-blue {
  background:
    radial-gradient(ellipse at 52% 38%, rgba(37,99,235,.18), transparent 27rem),
    radial-gradient(ellipse at 12% 84%, rgba(16,185,129,.12), transparent 29rem),
    #050812;
}
.ns-auth-blue-ribbon{
  position:absolute;z-index:-1;pointer-events:none;border-radius:999px;filter:blur(.4px)
}
.ns-auth-blue-ribbon-one{
  width:120vw;height:6rem;top:28%;left:-16%;transform:rotate(-17deg);
  background:linear-gradient(180deg,transparent,rgba(59,130,246,.64) 40%,rgba(30,64,175,.82) 58%,transparent);
  box-shadow:0 0 35px rgba(37,99,235,.22);
}
.ns-auth-blue-ribbon-two{
  width:116vw;height:4rem;bottom:20%;right:-20%;transform:rotate(18deg);
  background:linear-gradient(180deg,transparent,rgba(52,211,153,.50) 38%,rgba(15,118,110,.76) 56%,transparent);
}
.ns-otp-card { text-align:center; max-width:540px; }
.ns-otp-icon{
  display:grid;place-items:center;width:52px;height:52px;margin:1rem auto 1.25rem;
  border:1px solid rgba(96,165,250,.54);border-radius:17px;color:#bfdbfe;
  background:linear-gradient(145deg,rgba(37,99,235,.45),rgba(15,118,110,.35));
  box-shadow:0 14px 35px rgba(37,99,235,.2);font-size:21px;
}
.ns-otp-title{margin:0;color:#f8fbff;font-size:clamp(2rem,5vw,2.65rem);letter-spacing:-.055em}
.ns-otp-copy{max-width:420px;margin:1rem auto 1.6rem;color:#9daec5;font-size:15px;line-height:1.65}
.ns-otp-copy strong{color:#dbeafe;word-break:break-all}
.ns-otp-form{text-align:left;display:grid;gap:1rem}
.ns-otp-input-wrap input{
  text-align:center;letter-spacing:.55em;font-family:var(--ns-mono);font-size:25px !important;
  padding:0 1rem !important;
}
.ns-otp-resend,.ns-otp-logout{margin-top:1.2rem}
.ns-otp-resend button,.ns-otp-logout button{
  border:0;background:transparent;padding:4px;color:#9daec5;font-size:13px;box-shadow:none;
}
.ns-otp-resend button b{color:#93c5fd}
.ns-otp-resend button:hover,.ns-otp-logout button:hover{color:#dbeafe;background:transparent;transform:none}
.ns-otp-logout{margin-top:.3rem}
.ns-auth-success{
  margin:0 0 1rem;padding:.75rem .85rem;border:1px solid rgba(52,211,153,.30);
  border-radius:10px;color:#a7f3d0;background:rgba(6,78,59,.25);font-size:13px;
}

@media(max-width:560px){
  .ns-auth-page{padding:5.25rem 1rem 4rem}
  .ns-auth-card{padding:1.45rem;border-radius:18px}
  .ns-auth-heading h1{font-size:2rem}
  .ns-auth-heading p{font-size:14px}
  .ns-auth-two-cols{grid-template-columns:1fr !important;gap:1rem !important}
  .ns-auth-page .ns-input-wrap input{height:54px !important;font-size:16px !important}
}

/* Public legal pages: align content and footer to the shared site container */
.public-main > .wrap {
  width: min(1180px, calc(100% - 48px));
  margin-left: auto;
  margin-right: auto;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.public-main > .wrap > .card {
  width: min(100%, 880px);
}

.ns-public-footer {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.ns-public-footer::before {
  content: "";
  display: none;
}

.ns-public-footer {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr;
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
}

.ns-public-footer span:nth-child(2) {
  text-align: center;
}

.ns-public-footer span:last-child {
  text-align: right;
}

@media (max-width: 700px) {
  .public-main > .wrap {
    width: min(100% - 30px, 1180px);
  }

  .ns-public-footer {
    grid-template-columns: 1fr;
    width: min(100% - 30px, 1180px);
    gap: .65rem;
    text-align: center;
  }

  .ns-public-footer span:nth-child(2),
  .ns-public-footer span:last-child {
    text-align: center;
  }
}

/* Public footer: full-width divider, centered inner content */
.ns-public-footer {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 22px 0 !important;
}

.ns-public-footer-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
  gap: 1rem;
}

.ns-public-footer-inner span:nth-child(2) {
  text-align: center;
}

.ns-public-footer-inner span:last-child {
  text-align: right;
}

@media (max-width: 700px) {
  .ns-public-footer-inner {
    grid-template-columns: 1fr;
    width: min(100% - 30px, 1180px);
    gap: .65rem;
    text-align: center;
  }

  .ns-public-footer-inner span:nth-child(2),
  .ns-public-footer-inner span:last-child {
    text-align: center;
  }
}
