:root {
  --nss-white: #ffffff;
  --nss-bg: #f3f6f9;
  --nss-panel: #f8fafc;
  --nss-ink: #061d34;
  --nss-charcoal: #243447;
  --nss-muted: #66788c;
  --nss-navy: #07385d;
  --nss-deep: #042842;
  --nss-blue: #2f78b7;
  --nss-blue-soft: #e8f3fb;
  --nss-line: #d9e3ec;
  --nss-radius: 8px;
  --nss-shadow: 0 14px 34px rgba(6, 29, 52, 0.1);
}

body.nss-stitch .nss-editorial-hero h1,
body.nss-stitch .nss-editorial-hero .nss-lede,
body.nss-stitch .nss-final-cta h2,
body.nss-stitch .nss-credibility-card h2,
body.nss-stitch .nss-editorial-copy h2 {
  color: #fff !important;
}

body.nss-stitch .nss-editorial-hero .nss-lede,
body.nss-stitch .nss-final-cta p {
  color: #e8f3fb !important;
}

body.nss-stitch .nss-credibility-card .nss-muted {
  color: #c2d5e4 !important;
}

html { scroll-behavior: smooth; }
body {
  background: var(--nss-bg) !important;
  color: var(--nss-ink) !important;
  font-family: Inter, Arial, sans-serif !important;
  -webkit-font-smoothing: antialiased;
}

.nss-topbar {
  z-index: 3000 !important;
}

.nss-drop {
  position: relative !important;
}

.nss-drop-menu {
  left: 0 !important;
  right: auto !important;
  top: calc(100% - 2px) !important;
  z-index: 3100 !important;
  pointer-events: auto !important;
}

.nss-drop-menu a {
  display: block !important;
  width: 100% !important;
  pointer-events: auto !important;
}

.nss-drop-trigger {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 58px !important;
}

.nss-page-hero {
  background: #eef4f8 !important;
  border-bottom: 1px solid var(--nss-line) !important;
  padding: 72px 0 54px !important;
}

.nss-page-hero h1 {
  color: var(--nss-ink) !important;
  font-size: clamp(2.5rem, 6vw, 4.5rem) !important;
  line-height: 0.98 !important;
  margin: 10px 0 18px !important;
}

.nss-shop-page .nss-lede {
  color: var(--nss-muted) !important;
  font-size: 1.2rem !important;
  max-width: 760px !important;
}

.nss-shop-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.nss-shop-card {
  min-height: 260px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}

.nss-shop-card .nss-button {
  margin-top: auto !important;
}

.nss-shop-note {
  margin-top: 22px !important;
}

body > nav {
  background: var(--nss-white) !important;
  border-bottom: 1px solid var(--nss-line) !important;
  min-height: 58px;
  padding: 0 28px !important;
  align-items: center !important;
  box-shadow: none !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
}

.nav-logo a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 9px !important;
  color: var(--nss-navy) !important;
  font-weight: 900 !important;
  font-size: 1rem !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.nav-logo a::before {
  content: "NSS";
  width: 22px;
  height: 22px;
  border-radius: 7px;
  display: inline-grid;
  place-items: center;
  background: var(--nss-navy);
  color: #fff;
  font-size: 0.62rem;
  font-weight: 950;
  letter-spacing: -0.04em;
}

.nav-links a,
.dropbtn {
  color: #17324a !important;
  font-weight: 850 !important;
}

.nav-links a:hover,
.dropbtn:hover,
.dropdown:hover .dropbtn {
  color: var(--nss-blue) !important;
}

.dropdown-content {
  background: #fff !important;
  border: 1px solid var(--nss-line) !important;
  border-radius: 8px !important;
  box-shadow: var(--nss-shadow) !important;
  min-width: 245px !important;
  padding: 8px !important;
  z-index: 2000 !important;
}

.dropdown-content a {
  border-radius: 5px !important;
  color: #17324a !important;
  padding: 10px 11px !important;
}

.dropdown-content a:hover {
  background: var(--nss-blue-soft) !important;
  color: var(--nss-blue) !important;
}

.container,
.screen-wrap,
main.container,
main.screen-wrap {
  width: min(1120px, calc(100% - 48px)) !important;
  max-width: 1120px !important;
  margin: 0 auto !important;
  padding: 52px 0 !important;
}

.app-container {
  width: min(720px, calc(100% - 48px)) !important;
  margin: 36px auto !important;
  border-radius: var(--nss-radius) !important;
  border: 1px solid var(--nss-line) !important;
  box-shadow: var(--nss-shadow) !important;
}

.hero,
.intro {
  max-width: 880px !important;
}

.hero,
.intro,
.section-shell,
.library-controls {
  border-radius: var(--nss-radius) !important;
}

.eyebrow {
  color: var(--nss-blue) !important;
  font-weight: 950 !important;
  letter-spacing: 0.09em !important;
}

h1 {
  color: var(--nss-ink) !important;
  font-size: clamp(2.05rem, 4.2vw, 3.6rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.045em !important;
}

h2 {
  color: var(--nss-ink) !important;
  line-height: 1.08 !important;
}

h3 {
  color: var(--nss-navy) !important;
}

.hero p,
.intro p,
.section-intro,
.card p,
.resource-card p,
.note p,
.author-box,
.author {
  color: var(--nss-muted) !important;
}

.grid,
.pack-grid,
.patient-grid,
.worksheet-grid,
.field-grid,
.priority-grid {
  min-width: 0 !important;
}

.card,
.resource-card,
.note,
.author-box,
.template,
.list-box,
.quality-callout,
.pack-card,
.library-controls,
.intro,
.sheet,
.patient {
  background: #fff !important;
  border-color: var(--nss-line) !important;
  border-radius: var(--nss-radius) !important;
  box-shadow: 0 9px 24px rgba(6, 29, 52, 0.06) !important;
}

.note,
.quality-callout,
.phi-warning {
  background: var(--nss-panel) !important;
  border-left-color: var(--nss-blue) !important;
}

.btn,
.button,
button.btn,
.pack-actions .btn {
  background: var(--nss-navy) !important;
  color: #fff !important;
  border-radius: 5px !important;
  min-height: 42px;
  text-decoration: none !important;
}

.btn-secondary,
.btn.secondary,
.pack-actions .btn-secondary,
.tool-reset {
  background: #fff !important;
  color: var(--nss-navy) !important;
  border: 1px solid var(--nss-line) !important;
}

.link-list,
.links,
.tool-actions,
.actions,
.button-row {
  gap: 10px !important;
}

.link-list a,
.links a,
.card-link,
.resource-card .btn.secondary {
  color: var(--nss-blue) !important;
  overflow-wrap: anywhere;
}

footer {
  background: var(--nss-deep) !important;
  border-top: 1px solid rgba(255,255,255,0.12) !important;
  color: #d7e8f5 !important;
}

footer a {
  color: #d7e8f5 !important;
}

img,
iframe,
video,
canvas,
svg {
  max-width: 100%;
}

input,
textarea,
select,
button {
  max-width: 100%;
}

@media (max-width: 768px) {
  body > nav {
    padding: 16px 20px !important;
  }

  .nav-links {
    width: 100% !important;
    gap: 8px !important;
  }

  .dropdown-content {
    box-shadow: none !important;
    border-radius: 6px !important;
    border-left: 2px solid var(--nss-line) !important;
    padding-left: 12px !important;
  }

  .container,
  .screen-wrap,
  main.container,
  main.screen-wrap {
    width: min(100% - 32px, 1120px) !important;
    padding: 34px 0 !important;
  }

  .app-container {
    width: min(100% - 32px, 720px) !important;
    margin: 24px auto !important;
  }

  h1 {
    font-size: clamp(2rem, 8vw, 2.7rem) !important;
    line-height: 1.04 !important;
  }

  .grid,
  .nss-shop-grid,
  .pack-grid,
  .worksheet-grid,
  .time-grid,
  .checkbox-list,
  .patient-grid,
  .field-grid,
  .priority-grid,
  .meta {
    grid-template-columns: 1fr !important;
  }

  .card,
  .resource-card,
  .list-box,
  .template,
  .sheet,
  .intro,
  .library-controls,
  .note,
  .author-box {
    width: 100% !important;
    max-width: 100% !important;
  }

  .link-list a,
  .links a,
  .btn,
  .button,
  .btn-secondary,
  .tool-reset {
    white-space: normal !important;
    text-align: center !important;
  }
}

body.nss-stitch main.nss-homepage .nss-editorial-hero h1,
body.nss-stitch main.nss-homepage .nss-editorial-hero .nss-lede,
body.nss-stitch main.nss-homepage .nss-editorial-copy h2,
body.nss-stitch main.nss-homepage .nss-final-cta h2,
body.nss-stitch main.nss-homepage .nss-credibility-card h2 {
  color: #ffffff !important;
}

body.nss-stitch main.nss-homepage .nss-editorial-hero .nss-lede {
  color: #e8f3fb !important;
}

body.nss-stitch main.nss-homepage .nss-editorial-copy p,
body.nss-stitch main.nss-homepage .nss-final-cta p,
body.nss-stitch main.nss-homepage .nss-credibility-card p {
  color: #e8f3fb !important;
}

/* Shared pre-live cohesion layer */
.nss-topbar {
  background: var(--nss-white) !important;
  border-bottom: 1px solid var(--nss-line) !important;
  min-height: 74px !important;
  padding: 0 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 3000 !important;
  box-shadow: none !important;
}

.nss-brand {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  color: var(--nss-navy) !important;
  font-weight: 950 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.nss-brand .nss-mark,
.nav-logo a::before {
  width: 38px !important;
  height: 38px !important;
  border-radius: 50% !important;
  background: #fff url("/assets/brand/nss-logo.png") center / cover no-repeat !important;
  color: transparent !important;
  font-size: 0 !important;
  box-shadow: 0 0 0 1px rgba(7, 56, 93, 0.14) !important;
  flex: 0 0 38px !important;
}

.nss-nav {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 22px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  min-height: auto !important;
  padding: 0 !important;
  position: static !important;
  width: auto !important;
  z-index: auto !important;
}

.nss-nav a,
.nss-drop-trigger {
  color: #061d34 !important;
  font-weight: 850 !important;
  text-decoration: none !important;
}

.nss-nav a:hover,
.nss-drop-trigger:hover {
  color: var(--nss-blue) !important;
}

.nss-nav a.nss-nav-cta,
.nss-nav a.nss-nav-cta:visited {
  background: var(--nss-navy) !important;
  color: #fff !important;
  border-radius: 6px !important;
  padding: 10px 14px !important;
}

.nss-nav a.nss-nav-cta:hover,
.nss-nav a.nss-nav-cta:focus {
  background: var(--nss-blue) !important;
  color: #fff !important;
}

.nss-menu-check {
  position: absolute !important;
  inline-size: 1px !important;
  block-size: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.nss-menu-label,
.nss-menu-toggle {
  display: none !important;
  appearance: none !important;
  border: 1px solid var(--nss-line) !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: var(--nss-navy) !important;
  font-weight: 900 !important;
  padding: 10px 13px !important;
}

.nss-drop {
  position: relative !important;
}

.nss-drop-menu {
  display: none !important;
  position: absolute !important;
  left: 0 !important;
  right: auto !important;
  top: calc(100% - 2px) !important;
  min-width: 245px !important;
  padding: 8px !important;
  background: #fff !important;
  border: 1px solid var(--nss-line) !important;
  border-radius: 8px !important;
  box-shadow: var(--nss-shadow) !important;
  z-index: 3100 !important;
  pointer-events: auto !important;
}

.nss-drop:hover .nss-drop-menu,
.nss-drop:focus-within .nss-drop-menu {
  display: block !important;
}

.nss-drop-menu a {
  display: block !important;
  width: 100% !important;
  padding: 10px 11px !important;
  border-radius: 5px !important;
  pointer-events: auto !important;
}

.nss-drop-trigger {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 58px !important;
}

@media (max-width: 768px) {
  .nss-topbar {
    min-height: auto !important;
    padding: 14px 18px !important;
    align-items: flex-start !important;
    flex-wrap: wrap !important;
  }

  .nss-brand {
    max-width: calc(100% - 90px) !important;
  }

  .nss-brand span:last-child {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .nss-menu-label,
  .nss-menu-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 44px !important;
  }

  .nss-nav {
    display: none !important;
    width: 100% !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 6px !important;
    padding-top: 12px !important;
  }

  .nss-nav.is-open {
    display: flex !important;
  }

  .nss-menu-check:checked ~ .nss-nav {
    display: flex !important;
  }

  .nss-nav > a,
  .nss-drop-trigger {
    min-height: 44px !important;
    padding: 10px 12px !important;
    border-radius: 8px !important;
    background: #f8fafc !important;
  }

  .nss-drop {
    width: 100% !important;
  }

  .nss-drop-menu {
    position: static !important;
    display: none !important;
    width: 100% !important;
    margin: 4px 0 8px !important;
    box-shadow: none !important;
  }

  .nss-drop:focus-within .nss-drop-menu,
  .nss-drop:hover .nss-drop-menu {
    display: block !important;
  }
}
