/* NeyiSat V3 — mobile-first product interface foundation. */
:root {
  color-scheme: light;
  --ns-ink-950: #07111f;
  --ns-ink-900: #0b1726;
  --ns-ink-800: #14263a;
  --ns-ink-700: #294158;
  --ns-ink-600: #476075;
  --ns-ink-500: #657a8c;
  --ns-surface: #ffffff;
  --ns-surface-soft: #f4f7f8;
  --ns-surface-muted: #e9eff1;
  --ns-border: #d5e0e3;
  --ns-accent-700: #087b70;
  --ns-accent-600: #0b9587;
  --ns-accent-500: #18b7a5;
  --ns-accent-300: #70dece;
  --ns-accent-100: #d9f7f2;
  --ns-success: #087a55;
  --ns-success-soft: #ddf7ec;
  --ns-warning: #9a5c00;
  --ns-warning-soft: #fff1d6;
  --ns-danger: #a2383f;
  --ns-danger-soft: #fce5e7;
  --ns-info: #315f9b;
  --ns-info-soft: #e6effb;
  --ns-font: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ns-text-xs: .75rem;
  --ns-text-sm: .875rem;
  --ns-text-md: 1rem;
  --ns-text-lg: 1.125rem;
  --ns-text-xl: clamp(1.25rem, 4vw, 1.55rem);
  --ns-text-2xl: clamp(1.75rem, 7vw, 3.1rem);
  --ns-space-1: .25rem;
  --ns-space-2: .5rem;
  --ns-space-3: .75rem;
  --ns-space-4: 1rem;
  --ns-space-5: 1.25rem;
  --ns-space-6: 1.5rem;
  --ns-space-8: 2rem;
  --ns-space-10: 2.5rem;
  --ns-space-12: 3rem;
  --ns-radius-sm: .5rem;
  --ns-radius-md: .8rem;
  --ns-radius-lg: 1.15rem;
  --ns-radius-xl: 1.6rem;
  --ns-radius-pill: 999px;
  --ns-shadow-sm: 0 1px 2px rgba(7, 17, 31, .06), 0 6px 18px rgba(7, 17, 31, .05);
  --ns-shadow-md: 0 18px 48px rgba(7, 17, 31, .11);
  --ns-border-width: 1px;
  --ns-button-height: 2.75rem;
  --ns-card-padding: clamp(1rem, 3vw, 1.5rem);
  --ns-container: 76rem;
  --ns-container-narrow: 58rem;
  --ns-header-height: 4.4rem;
  --ns-z-header: 40;
  --ns-z-nav: 45;
  --ns-z-overlay: 80;
  --ns-z-toast: 90;
}

* {
  box-sizing: border-box;
}

html {
  background: var(--ns-surface-soft);
  scroll-padding-top: calc(var(--ns-header-height) + 1rem);
}

body.ns-app {
  min-width: 20rem;
  margin: 0;
  overflow-x: clip;
  color: var(--ns-ink-900);
  background: var(--ns-surface-soft);
  font-family: var(--ns-font);
  line-height: 1.55;
}

.ns-app img,
.ns-app canvas,
.ns-app svg {
  max-width: 100%;
}

.ns-app a,
.ns-app button,
.ns-app input,
.ns-app select,
.ns-app textarea,
.ns-app summary {
  font: inherit;
}

.ns-app a:focus-visible,
.ns-app button:focus-visible,
.ns-app input:focus-visible,
.ns-app select:focus-visible,
.ns-app textarea:focus-visible,
.ns-app summary:focus-visible {
  outline: 3px solid var(--ns-accent-300);
  outline-offset: 3px;
}

.ns-app button:disabled,
.ns-app input:disabled,
.ns-app select:disabled {
  cursor: not-allowed;
  opacity: .58;
}

.ns-skip-link {
  position: fixed;
  left: 1rem;
  top: -5rem;
  z-index: 100;
  padding: .7rem 1rem;
  border-radius: var(--ns-radius-md);
  color: var(--ns-ink-950);
  background: var(--ns-accent-300);
  font-weight: 800;
}

.ns-skip-link:focus {
  top: 1rem;
}

.ns-app-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.ns-app-shell > main {
  width: 100%;
  flex: 1;
}

.ns-app .public-header {
  min-height: var(--ns-header-height);
  z-index: var(--ns-z-header);
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  background: rgba(7, 17, 31, .96);
  backdrop-filter: blur(18px);
}

.ns-app .public-brand-copy small {
  color: #b8cbd2;
}

.ns-app .public-nav a,
.ns-app .public-nav summary {
  color: #e8f1f4;
}

.ns-app .public-nav .active,
.ns-app .public-nav a:hover,
.ns-app .public-nav summary:hover {
  color: #8bf4d7;
}

.ns-app .nav-submenu {
  border: 1px solid #2b4050;
  background: #0b1726;
  box-shadow: var(--ns-shadow-md);
}

.ns-app .member-pill {
  border: 1px solid rgba(112, 222, 206, .3);
  background: rgba(255, 255, 255, .06);
}

.ns-app .member-pill small {
  color: #b8cbd2;
}

.ns-page,
.ns-container,
.ns-app .public-page-head,
.ns-app .public-section,
.ns-app .public-filter-wrap,
.ns-app .member-result-tools,
.ns-app .public-notice,
.ns-app .public-stats,
.ns-app .public-tabs,
.ns-app .watch-summary,
.ns-app .compare-summary,
.ns-app .compare-disclosure,
.ns-app .member-dashboard-grid,
.ns-app .member-operations,
.ns-app .member-account-actions {
  width: min(calc(100% - 2rem), var(--ns-container));
  margin-inline: auto;
}

.ns-page {
  padding-block: var(--ns-space-6) var(--ns-space-12);
}

.ns-page-header,
.ns-app .public-page-head {
  min-height: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ns-space-5);
  padding: var(--ns-space-8) 0 var(--ns-space-6);
  color: var(--ns-ink-900);
  background: transparent;
}

.ns-page-header__copy,
.ns-app .public-page-head > div:first-child {
  min-width: 0;
  max-width: 48rem;
}

.ns-page-header h1,
.ns-app .public-page-head h1 {
  max-width: 18ch;
  margin: .25rem 0 .6rem;
  color: var(--ns-ink-950);
  font-size: var(--ns-text-2xl);
  line-height: 1.06;
  letter-spacing: -.045em;
}

.ns-page-header p,
.ns-app .public-page-head p {
  max-width: 65ch;
  margin: 0;
  color: var(--ns-ink-600);
  font-size: var(--ns-text-md);
}

.ns-kicker,
.ns-app .section-kicker {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--ns-accent-700);
  font-size: var(--ns-text-xs);
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ns-section-header,
.ns-app .section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--ns-space-4);
  margin-bottom: var(--ns-space-5);
}

.ns-section-header h2,
.ns-app .section-heading h2 {
  margin: .25rem 0 0;
  color: var(--ns-ink-950);
  font-size: var(--ns-text-xl);
  letter-spacing: -.025em;
}

.ns-section-header p,
.ns-app .section-heading p {
  margin: .35rem 0 0;
  color: var(--ns-ink-600);
}

.ns-section-header__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ns-space-2);
}

.ns-button,
.ns-app .public-button,
.ns-app .member-back-link,
.ns-app .compare-all-link {
  min-height: var(--ns-button-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .65rem 1rem;
  border: 1px solid transparent;
  border-radius: var(--ns-radius-md);
  text-decoration: none;
  font-size: var(--ns-text-sm);
  font-weight: 800;
  cursor: pointer;
}

.ns-button--primary,
.ns-app .public-button.primary {
  color: #04251f;
  background: var(--ns-accent-300);
  border-color: var(--ns-accent-300);
}

.ns-button--primary:hover,
.ns-app .public-button.primary:hover {
  background: #95efdf;
}

.ns-button--secondary,
.ns-app .member-back-link,
.ns-app .compare-all-link {
  color: var(--ns-ink-800);
  background: var(--ns-surface);
  border-color: var(--ns-border);
}

.ns-button--small {
  min-height: 2.35rem;
  padding: .48rem .75rem;
}

.ns-card,
.ns-metric-card,
.ns-product-card,
.ns-opportunity-card,
.ns-evidence-card {
  min-width: 0;
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-lg);
  background: var(--ns-surface);
  box-shadow: var(--ns-shadow-sm);
}

.ns-stats,
.ns-app .watch-summary,
.ns-app .compare-summary,
.ns-app .public-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ns-space-2);
  margin-bottom: var(--ns-space-6);
}

.ns-metric-card,
.ns-app .watch-summary > article,
.ns-app .compare-summary > article,
.ns-app .public-stats > article {
  display: block;
  min-width: 0;
  min-height: 0;
  padding: .85rem;
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-md);
  color: var(--ns-ink-900);
  background: var(--ns-surface);
  box-shadow: none;
}

.ns-metric-card > span,
.ns-app .watch-summary span,
.ns-app .compare-summary span,
.ns-app .public-stats article > span {
  display: block;
  color: var(--ns-ink-600);
  font-size: .69rem;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.ns-metric-card strong,
.ns-app .watch-summary strong,
.ns-app .compare-summary strong,
.ns-app .public-stats article > strong {
  display: block;
  margin-top: .18rem;
  color: var(--ns-ink-950);
  font-size: clamp(1.2rem, 5vw, 1.65rem);
  line-height: 1.15;
}

.ns-metric-card small,
.ns-app .public-stats small {
  color: var(--ns-ink-500);
}

.ns-decision,
.ns-confidence,
.ns-status,
.ns-trend {
  min-height: 1.8rem;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .3rem .62rem;
  border-radius: var(--ns-radius-pill);
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.ns-decision--al {
  color: #07563e;
  background: var(--ns-success-soft);
}

.ns-decision--izle {
  color: #784900;
  background: var(--ns-warning-soft);
}

.ns-decision--uzak-dur {
  color: #8f2732;
  background: var(--ns-danger-soft);
}

.ns-decision--unknown,
.ns-confidence--unknown {
  color: var(--ns-ink-700);
  background: var(--ns-surface-muted);
}

.ns-confidence--high {
  color: #07563e;
  background: var(--ns-success-soft);
}

.ns-confidence--medium {
  color: #784900;
  background: var(--ns-warning-soft);
}

.ns-confidence--low {
  color: #8f2732;
  background: var(--ns-danger-soft);
}

.ns-status--active {
  color: #07563e;
  background: var(--ns-success-soft);
}

.ns-status--paused {
  color: var(--ns-ink-600);
  background: var(--ns-surface-muted);
}

.ns-status i {
  width: .45rem;
  height: .45rem;
  border-radius: 50%;
  background: currentColor;
}

.ns-alert,
.ns-app .compare-disclosure,
.ns-app .public-notice {
  padding: var(--ns-space-4);
  border: 1px solid #bfd1e8;
  border-left: .28rem solid var(--ns-info);
  border-radius: var(--ns-radius-md);
  color: var(--ns-ink-800);
  background: var(--ns-info-soft);
}

.ns-alert strong,
.ns-app .compare-disclosure strong,
.ns-app .public-notice strong {
  color: var(--ns-ink-950);
}

.ns-alert p,
.ns-app .compare-disclosure p {
  margin: .25rem 0 0;
}

.ns-empty-state,
.ns-app .empty-public {
  width: 100%;
  display: grid;
  justify-items: center;
  gap: var(--ns-space-4);
  padding: clamp(2rem, 8vw, 4rem) var(--ns-space-5);
  border: 1px dashed #aac0c6;
  border-radius: var(--ns-radius-lg);
  color: var(--ns-ink-800);
  background: var(--ns-surface);
  text-align: center;
}

.ns-empty-state__icon {
  width: 3rem;
  height: 3rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--ns-accent-700);
  background: var(--ns-accent-100);
  font-size: 1.6rem;
}

.ns-empty-state h2,
.ns-app .empty-public strong {
  margin: 0;
  color: var(--ns-ink-950);
  font-size: 1.15rem;
}

.ns-empty-state p,
.ns-app .empty-public p {
  max-width: 34rem;
  margin: .25rem 0 0;
  color: var(--ns-ink-600);
}

.ns-empty-state a,
.ns-app .empty-public a {
  color: var(--ns-accent-700);
  font-weight: 800;
}

.ns-skeleton {
  display: grid;
  gap: .7rem;
}

.ns-skeleton i {
  height: .8rem;
  border-radius: var(--ns-radius-pill);
  background: var(--ns-surface-muted);
}

.ns-skeleton i:nth-child(2n) {
  width: 72%;
}

.ns-toast-stack {
  z-index: var(--ns-z-toast);
}

.ns-toast {
  border-radius: var(--ns-radius-md);
  box-shadow: var(--ns-shadow-md);
}

.ns-tabs,
.ns-app .public-tabs {
  display: flex;
  gap: .3rem;
  padding: .3rem;
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-md);
  background: var(--ns-surface);
}

.ns-app .public-tabs a {
  min-height: 2.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  padding: .45rem .7rem;
  border-radius: .55rem;
  color: var(--ns-ink-600);
  text-decoration: none;
  font-size: var(--ns-text-sm);
  font-weight: 800;
}

.ns-app .public-tabs a.active {
  color: var(--ns-ink-950);
  background: var(--ns-accent-100);
}

.ns-filter-bar,
.ns-app .public-filter-wrap {
  margin-bottom: var(--ns-space-4);
  padding: var(--ns-space-3);
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-lg);
  background: var(--ns-surface);
  box-shadow: var(--ns-shadow-sm);
}

.ns-filter-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--ns-button-height);
  padding: .65rem .8rem;
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-md);
  color: var(--ns-ink-900);
  background: var(--ns-surface);
  font-weight: 800;
}

.ns-app .public-filters {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--ns-space-3);
}

@media (max-width: 47.99rem) {
  .ns-app .public-filters[data-filter-panel] {
    display: none;
    margin-top: var(--ns-space-3);
  }

  .ns-app .public-filters[data-filter-panel].is-open {
    display: grid;
  }
}

.ns-app .public-filters input,
.ns-app .public-filters select {
  width: 100%;
  min-height: var(--ns-button-height);
  border: 1px solid #b8c9ce;
  border-radius: var(--ns-radius-md);
  color: var(--ns-ink-900);
  background: var(--ns-surface);
}

.ns-app .member-result-tools {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .7rem;
  padding: .8rem 0;
  color: var(--ns-ink-600);
}

.ns-app .member-result-tools a {
  color: var(--ns-accent-700);
  font-weight: 800;
}

.ns-product-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.ns-product-card > header,
.ns-product-card > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ns-space-2);
  padding: .8rem var(--ns-card-padding);
  border-bottom: 1px solid var(--ns-border);
}

.ns-product-card > footer {
  margin-top: auto;
  border-top: 1px solid var(--ns-border);
  border-bottom: 0;
}

.ns-product-card__body {
  padding: var(--ns-card-padding);
}

.ns-product-card__category {
  margin: 0;
  color: var(--ns-ink-500);
  font-size: var(--ns-text-xs);
  font-weight: 800;
  text-transform: uppercase;
}

.ns-product-card h2 {
  margin: .35rem 0 .85rem;
  font-size: 1.05rem;
  line-height: 1.3;
}

.ns-product-card h2 a {
  color: var(--ns-ink-950);
  text-decoration: none;
}

.ns-product-card__signals {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ns-space-2);
}

.ns-product-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ns-space-3);
  margin: var(--ns-space-4) 0 0;
}

.ns-product-card dl div {
  min-width: 0;
  padding: .7rem;
  border-radius: var(--ns-radius-sm);
  background: var(--ns-surface-soft);
}

.ns-product-card dt {
  color: var(--ns-ink-500);
  font-size: .68rem;
  font-weight: 800;
  text-transform: uppercase;
}

.ns-product-card dd {
  margin: .2rem 0 0;
  color: var(--ns-ink-950);
  font-weight: 850;
}

.ns-app .member-dashboard-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ns-space-3);
}

.ns-app .member-feature-card {
  min-height: 0;
  padding: var(--ns-card-padding);
  border: 1px solid #284051;
  border-radius: var(--ns-radius-lg);
  color: #f4fbff;
  background: linear-gradient(145deg, #0b1726, #10283a);
  box-shadow: var(--ns-shadow-sm);
}

.ns-app .member-feature-card.live {
  background: linear-gradient(145deg, #0b1726, #12433f);
}

.ns-app .member-operations {
  margin-top: var(--ns-space-8);
  padding: var(--ns-card-padding);
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-lg);
  background: var(--ns-surface);
}

.ns-dashboard-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ns-space-2);
  margin-bottom: var(--ns-space-5);
}

.ns-dashboard-columns {
  width: min(calc(100% - 2rem), var(--ns-container));
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ns-space-5);
  margin: var(--ns-space-8) auto 0;
}

.ns-dashboard-panel {
  padding: var(--ns-card-padding);
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-lg);
  background: var(--ns-surface);
  box-shadow: var(--ns-shadow-sm);
}

.ns-dashboard-list {
  display: grid;
  gap: var(--ns-space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.ns-dashboard-list > li,
.ns-dashboard-list > a {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ns-space-3);
  padding: .8rem;
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-md);
  color: var(--ns-ink-900);
  background: var(--ns-surface-soft);
  text-decoration: none;
}

.ns-dashboard-list strong,
.ns-dashboard-list small {
  display: block;
}

.ns-dashboard-list small {
  color: var(--ns-ink-500);
}

.ns-app .watch-center-grid,
.ns-app .research-history-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ns-space-3);
}

.ns-app .watch-center-card,
.ns-app .research-history-card {
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-lg);
  color: var(--ns-ink-900);
  background: var(--ns-surface);
  box-shadow: var(--ns-shadow-sm);
}

.ns-app .watch-center-card > header,
.ns-app .research-history-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ns-space-3);
  padding: var(--ns-space-4);
  border-bottom: 1px solid var(--ns-border);
  background: var(--ns-surface-soft);
}

.ns-app .watch-center-card > header strong,
.ns-app .watch-center-card > header small,
.ns-app .research-history-card > header strong,
.ns-app .research-history-card > header small {
  display: block;
}

.ns-app .watch-center-card > header strong,
.ns-app .research-history-card > header strong {
  color: var(--ns-ink-950);
}

.ns-app .watch-center-card > header small,
.ns-app .research-history-card > header small {
  color: var(--ns-ink-500);
}

.ns-app .watch-center-card > section,
.ns-app .watch-no-result,
.ns-app .research-history-card > dl,
.ns-app .research-unavailable {
  margin: 0;
  padding: var(--ns-space-4);
}

.ns-watch-metrics,
.ns-research-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ns-space-2);
}

.ns-watch-metrics > div,
.ns-research-metrics > div {
  min-width: 0;
  padding: .7rem;
  border-radius: var(--ns-radius-sm);
  background: var(--ns-surface-soft);
}

.ns-watch-metrics dt,
.ns-research-metrics dt {
  color: var(--ns-ink-500);
  font-size: .67rem;
  font-weight: 850;
  text-transform: uppercase;
}

.ns-watch-metrics dd,
.ns-research-metrics dd {
  margin: .2rem 0 0;
  color: var(--ns-ink-950);
  font-weight: 800;
}

.ns-app .watch-center-card footer,
.ns-app .research-history-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ns-space-2);
  padding: var(--ns-space-3) var(--ns-space-4);
  border-top: 1px solid var(--ns-border);
  background: var(--ns-surface-soft);
}

.ns-app .research-history-actions .research-delete-action {
  color: var(--ns-danger, #a43b3b);
  border-color: color-mix(in srgb, #a43b3b 35%, var(--ns-border));
  background: color-mix(in srgb, #a43b3b 7%, var(--ns-surface));
}

.ns-app .research-history-actions .research-delete-action:hover,
.ns-app .research-history-actions .research-delete-action:focus-visible {
  color: #7c2424;
  background: #fff0f0;
}

.ns-app .watch-center-card footer a,
.ns-app .watch-center-card footer button,
.ns-app .research-history-actions a,
.ns-app .research-history-actions button {
  min-height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .5rem .75rem;
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-sm);
  color: var(--ns-ink-800);
  background: var(--ns-surface);
  text-decoration: none;
  font-size: var(--ns-text-sm);
  font-weight: 800;
}

.ns-app .watch-center-card footer form,
.ns-app .research-history-actions form {
  margin: 0;
}

.ns-app .trusted-product-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ns-space-2);
  margin-top: var(--ns-space-3);
}

.ns-app .trusted-product-actions .legal-action {
  margin-top: 0;
}

.ns-research-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ns-space-2);
  padding: 0 var(--ns-space-4) var(--ns-space-4);
}

.ns-app .compare-query-grid,
.ns-app .research-compare-timeline {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ns-space-3);
}

.ns-app .compare-query-grid > a,
.ns-app .compare-record {
  min-width: 0;
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-lg);
  color: var(--ns-ink-900);
  background: var(--ns-surface);
  box-shadow: var(--ns-shadow-sm);
}

.ns-app .compare-query-grid > a {
  padding: var(--ns-card-padding);
}

.ns-app .browse-grid,
.ns-app .opportunity-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ns-space-3);
}

.ns-app .browse-card,
.ns-app .opportunity-card,
.ns-app .top-signal,
.ns-app .category-box,
.ns-app .public-panel {
  min-width: 0;
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-lg);
  color: var(--ns-ink-900);
  background: var(--ns-surface);
  box-shadow: var(--ns-shadow-sm);
}

.ns-app .browse-card h2 a,
.ns-app .opportunity-card h3,
.ns-app .top-signal h2,
.ns-app .category-box h2,
.ns-app .public-panel h2 {
  color: var(--ns-ink-950);
}

.ns-app .browse-card p,
.ns-app .opportunity-card p,
.ns-app .top-signal p,
.ns-app .public-panel p {
  color: var(--ns-ink-600);
}

.ns-app .rising-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ns-space-5);
}

.ns-app .rising-list {
  display: grid;
  gap: var(--ns-space-3);
}

.ns-app .rising-row {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(5rem, auto);
  gap: var(--ns-space-3);
  padding: var(--ns-space-4);
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-lg);
  color: var(--ns-ink-900);
  background: var(--ns-surface);
  box-shadow: var(--ns-shadow-sm);
}

.ns-app .rising-row .rising-cell {
  display: grid;
  min-width: 0;
  padding: .55rem;
  border-radius: var(--ns-radius-sm);
  background: var(--ns-surface-soft);
}

.ns-app .rising-row .rising-cell:nth-of-type(n+4),
.ns-app .rising-row > .sourcing-chip,
.ns-app .rising-row > .trend-badge {
  display: none;
}

.ns-decision-hero {
  width: min(calc(100% - 2rem), var(--ns-container));
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ns-space-3);
  margin: 0 auto var(--ns-space-6);
  padding: var(--ns-card-padding);
  border: 1px solid #29445b;
  border-radius: var(--ns-radius-xl);
  color: #f4fbff;
  background: linear-gradient(145deg, #07111f, #102c3b);
  box-shadow: var(--ns-shadow-md);
}

.ns-decision-hero h2 {
  margin: .35rem 0 0;
  color: #fff;
  font-size: clamp(1.8rem, 10vw, 3.2rem);
}

.ns-decision-hero p {
  margin: .5rem 0 0;
  color: #c8d8df;
}

.ns-decision-hero__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ns-space-2);
}

.ns-decision-hero__metrics > div {
  min-width: 0;
  padding: .75rem;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: var(--ns-radius-md);
  background: rgba(255, 255, 255, .05);
}

.ns-decision-hero__metrics span,
.ns-decision-hero__metrics strong,
.ns-decision-hero__metrics small {
  display: block;
}

.ns-decision-hero__metrics span {
  color: #b7cbd3;
  font-size: .68rem;
  font-weight: 850;
  text-transform: uppercase;
}

.ns-decision-hero__metrics strong {
  margin-top: .2rem;
  color: #fff;
  font-size: 1.1rem;
}

.ns-decision-hero__metrics small {
  color: #9fb6c0;
}

.ns-evidence-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ns-space-3);
}

.ns-evidence-card {
  padding: var(--ns-card-padding);
}

.ns-evidence-card h3 {
  margin: 0;
  color: var(--ns-ink-950);
}

.ns-evidence-card p {
  margin: .45rem 0 0;
  color: var(--ns-ink-600);
}

.ns-mobile-nav {
  position: fixed;
  right: .65rem;
  bottom: max(.65rem, env(safe-area-inset-bottom));
  left: .65rem;
  z-index: var(--ns-z-nav);
  min-height: 4rem;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .15rem;
  padding: .35rem;
  border: 1px solid #284051;
  border-radius: 1.2rem;
  background: rgba(7, 17, 31, .97);
  box-shadow: 0 18px 44px rgba(7, 17, 31, .28);
}

.ns-mobile-nav a {
  min-width: 0;
  min-height: 3.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .1rem;
  border-radius: .8rem;
  color: #bbccd3;
  text-decoration: none;
  font-size: .61rem;
  font-weight: 750;
}

.ns-mobile-nav a span {
  font-size: 1.05rem;
  line-height: 1;
}

.ns-mobile-nav a.active {
  color: #8bf4d7;
  background: rgba(112, 222, 206, .1);
}

.ns-member-area .public-footer {
  padding-bottom: calc(6rem + env(safe-area-inset-bottom));
}

/* Keep the final homepage CTA/cards clear of the fixed member nav. */
.ns-member-area .ns-app-shell > main {
  padding-bottom: calc(8rem + env(safe-area-inset-bottom));
}

.ns-member-area .researches-page-head,
.ns-member-area .researches-page-head ~ .public-section:last-child {
  margin-bottom: 1rem;
}

.ns-member-area .researches-page-head ~ .public-section:last-child {
  padding-bottom: calc(5rem + env(safe-area-inset-bottom));
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (min-width: 48rem) {
  :root {
    --ns-header-height: 4.8rem;
  }

  .ns-page,
  .ns-container,
  .ns-app .public-page-head,
  .ns-app .public-section,
  .ns-app .public-filter-wrap,
  .ns-app .member-result-tools,
  .ns-app .public-notice,
  .ns-app .public-stats,
  .ns-app .public-tabs,
  .ns-app .watch-summary,
  .ns-app .compare-summary,
  .ns-app .compare-disclosure,
  .ns-app .member-dashboard-grid,
  .ns-app .member-operations,
  .ns-app .member-account-actions,
  .ns-dashboard-columns,
  .ns-decision-hero {
    width: min(calc(100% - 3rem), var(--ns-container));
  }

  .ns-app .public-filters {
    grid-template-columns: minmax(12rem, 2fr) repeat(2, minmax(8rem, 1fr));
  }

  .ns-app .public-filters button,
  .ns-app .public-filters select:nth-of-type(n+3) {
    grid-row: 2;
  }

  .ns-filter-toggle {
    display: none;
  }

  .ns-app .member-result-tools {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .ns-dashboard-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .ns-app .member-dashboard-grid,
  .ns-app .watch-center-grid,
  .ns-app .research-history-grid,
  .ns-app .browse-grid,
  .ns-app .opportunity-grid,
  .ns-evidence-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ns-dashboard-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ns-watch-metrics,
  .ns-research-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .ns-decision-hero {
    grid-template-columns: minmax(15rem, .8fr) minmax(0, 1.7fr);
    align-items: center;
  }

  .ns-decision-hero__metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ns-app .rising-row {
    grid-template-columns: auto minmax(12rem, 2fr) repeat(3, minmax(5rem, .55fr));
  }

  .ns-app .rising-row .rising-cell:nth-of-type(n) {
    display: grid;
  }
}

@media (min-width: 72rem) {
  .ns-mobile-nav {
    display: none;
  }

  .ns-member-area .public-footer {
    padding-bottom: 0;
  }

  .ns-member-area .ns-app-shell > main {
    padding-bottom: 0;
  }

  .ns-app .member-dashboard-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ns-app .browse-grid,
  .ns-app .opportunity-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ns-app .research-history-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ns-evidence-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ns-app .public-filters {
    grid-template-columns: minmax(12rem, 2fr) repeat(4, minmax(7rem, 1fr)) auto;
  }

  .ns-app .public-filters button,
  .ns-app .public-filters select:nth-of-type(n+3) {
    grid-row: auto;
  }

  .ns-app .rising-layout {
    grid-template-columns: minmax(0, 2.2fr) minmax(17rem, .8fr);
    align-items: start;
  }

  .ns-app .rising-row {
    grid-template-columns: auto minmax(12rem, 2fr) repeat(5, minmax(4.6rem, .52fr)) auto auto;
  }

  .ns-app .rising-row > .sourcing-chip,
  .ns-app .rising-row > .trend-badge {
    display: inline-flex;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ns-app *,
  .ns-app *::before,
  .ns-app *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

/* Reusable primitives reserved for screens that need richer interactions. */
.ns-search-box {
  min-height: 3.4rem;
  display: flex;
  align-items: center;
  gap: var(--ns-space-2);
  padding: .35rem;
  border: 1px solid #b8c9ce;
  border-radius: var(--ns-radius-lg);
  background: var(--ns-surface);
  box-shadow: var(--ns-shadow-sm);
}

.ns-search-box input {
  min-width: 0;
  flex: 1;
  border: 0;
  color: var(--ns-ink-950);
  background: transparent;
}

.ns-score-gauge {
  display: inline-grid;
  justify-items: center;
  gap: .4rem;
}

.ns-score-gauge > span {
  width: 5rem;
  aspect-ratio: 1;
  display: grid;
  place-content: center;
  border-radius: 50%;
  color: var(--ns-ink-950);
  background: radial-gradient(circle closest-side, var(--ns-surface) 78%, transparent 80% 99%), conic-gradient(var(--ns-accent-500) calc(var(--ns-score) * 1%), var(--ns-surface-muted) 0);
}

.ns-score-gauge b,
.ns-score-gauge small {
  line-height: 1;
}

.ns-score-gauge--unknown > span {
  background: var(--ns-surface-muted);
}

.ns-filter-drawer {
  position: fixed;
  inset: auto .65rem .65rem;
  z-index: var(--ns-z-overlay);
  max-height: min(80vh, 38rem);
  padding: var(--ns-card-padding);
  overflow-y: auto;
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-xl);
  background: var(--ns-surface);
  box-shadow: var(--ns-shadow-md);
}

.ns-modal {
  width: min(calc(100% - 2rem), 34rem);
  max-height: calc(100vh - 2rem);
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-xl);
  color: var(--ns-ink-900);
  background: var(--ns-surface);
  box-shadow: var(--ns-shadow-md);
}

.ns-modal::backdrop {
  background: rgba(7, 17, 31, .72);
}

.ns-modal__header,
.ns-modal__body,
.ns-modal__footer {
  padding: var(--ns-card-padding);
}

.ns-modal__header {
  border-bottom: 1px solid var(--ns-border);
}

.ns-modal__footer {
  border-top: 1px solid var(--ns-border);
}

.ns-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--ns-space-2);
  margin-block: var(--ns-space-6);
}

.ns-pagination a,
.ns-pagination span {
  min-width: 2.5rem;
  min-height: 2.5rem;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--ns-border);
  border-radius: var(--ns-radius-sm);
  color: var(--ns-ink-800);
  background: var(--ns-surface);
  text-decoration: none;
  font-weight: 800;
}

.ns-pagination .active {
  color: #04251f;
  border-color: var(--ns-accent-300);
  background: var(--ns-accent-100);
}

.ns-data-table {
  width: 100%;
  border-collapse: collapse;
  color: var(--ns-ink-900);
  background: var(--ns-surface);
}

.ns-data-table th,
.ns-data-table td {
  padding: .8rem;
  border-bottom: 1px solid var(--ns-border);
  text-align: left;
  vertical-align: top;
}

.ns-data-table th {
  color: var(--ns-ink-600);
  font-size: .7rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.ns-responsive-table {
  min-width: 0;
}

.ns-responsive-table__head {
  display: none;
}

@media (min-width: 72rem) {
  .ns-app .watch-center-grid.ns-responsive-table,
  .ns-app .research-history-grid.ns-responsive-table {
    grid-template-columns: 1fr;
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--ns-border);
    border-radius: var(--ns-radius-lg);
    background: var(--ns-surface);
  }

  .ns-responsive-table__head {
    display: grid;
    grid-template-columns: minmax(12rem, 1.1fr) minmax(24rem, 2fr) minmax(14rem, .9fr);
    gap: var(--ns-space-4);
    padding: .75rem var(--ns-space-4);
    color: var(--ns-ink-600);
    background: var(--ns-surface-muted);
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
  }

  .ns-app .watch-center-card,
  .ns-app .research-history-card {
    display: grid;
    grid-template-columns: minmax(12rem, 1.1fr) minmax(24rem, 2fr) minmax(14rem, .9fr);
    align-items: stretch;
    border: 0;
    border-top: 1px solid var(--ns-border);
    border-radius: 0;
    box-shadow: none;
  }

  .ns-app .watch-center-card > header,
  .ns-app .research-history-card > header {
    border-right: 1px solid var(--ns-border);
    border-bottom: 0;
    background: var(--ns-surface);
  }

  .ns-app .watch-center-card > section,
  .ns-app .watch-center-card > .watch-no-result,
  .ns-app .research-history-card > dl {
    align-self: center;
  }

  .ns-app .watch-center-card footer,
  .ns-app .research-history-actions {
    align-content: center;
    border-top: 0;
    border-left: 1px solid var(--ns-border);
  }

  .ns-app .research-history-card > .ns-research-meta,
  .ns-app .research-history-card > .research-unavailable {
    grid-column: 2;
  }
}
