.nsdm-cd{
  --nsdm-blue:#153b80;
  --nsdm-blue-dark:#0b285e;
  --nsdm-gold:#e7a91a;
  --nsdm-ink:#172033;
  --nsdm-muted:#667085;
  --nsdm-line:#d8e0ec;
  --nsdm-soft:#f5f8fd;
  width:calc(100% - 32px);
  max-width:1280px;
  margin:28px auto;
  color:var(--nsdm-ink);
  font-family:"Segoe UI",Arial,sans-serif;
}
.nsdm-cd *{box-sizing:border-box}
.nsdm-cd a{scroll-margin-top:100px}

/* One coordinated palette per Part. */
.nsdm-cd__part-tone--1{
  --part-accent:#0f5f68;
  --part-accent-dark:#0a454c;
  --part-soft:#e9f5f5;
  --part-soft-2:#f5fbfb;
  --part-row-alt:#f1f8f8;
  --part-code:#dff0f1;
}
.nsdm-cd__part-tone--2{
  --part-accent:#4b4fa6;
  --part-accent-dark:#35387d;
  --part-soft:#efeffb;
  --part-soft-2:#f8f8fe;
  --part-row-alt:#f3f3fc;
  --part-code:#e4e5f8;
}
.nsdm-cd__part-tone--3{
  --part-accent:#8a3f65;
  --part-accent-dark:#672e4b;
  --part-soft:#f8edf3;
  --part-soft-2:#fdf8fa;
  --part-row-alt:#faeff4;
  --part-code:#f2dfe8;
}

.nsdm-cd__hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:28px 30px;
  border-radius:20px;
  background:linear-gradient(135deg,var(--nsdm-blue-dark),var(--nsdm-blue));
  color:#fff;
  box-shadow:0 16px 38px rgba(21,59,128,.16);
}
.nsdm-cd__hero-copy{min-width:0}
.nsdm-cd__eyebrow{
  display:inline-block;
  margin-bottom:7px;
  color:#ffe09a;
  font-size:12px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.nsdm-cd__hero h2{
  margin:0 0 7px;
  color:#fff;
  font-size:clamp(28px,4vw,42px);
  line-height:1.12;
}
.nsdm-cd__hero p{
  max-width:800px;
  margin:0;
  color:#e8efff;
  font-size:16px;
  line-height:1.55;
}
.nsdm-cd__total-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  flex:0 0 auto;
  padding:10px 18px;
  border:1px solid rgba(255,255,255,.32);
  border-radius:999px;
  background:rgba(255,255,255,.13);
  color:#fff;
  font-size:15px;
  white-space:nowrap;
}

.nsdm-cd__part-nav{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:20px 0 26px;
}
.nsdm-cd__part-link{
  --part-accent:var(--nsdm-blue);
  --part-soft:#eef4ff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-width:0;
  padding:12px 14px;
  border:1px solid color-mix(in srgb,var(--part-accent) 32%,#fff);
  border-radius:13px;
  background:var(--part-soft);
  color:var(--part-accent-dark)!important;
  text-decoration:none!important;
}
.nsdm-cd__part-link:hover,.nsdm-cd__part-link:focus{
  border-color:var(--part-accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--part-accent) 14%,transparent);
}
.nsdm-cd__part-link-label{font-weight:850}
.nsdm-cd__part-link strong{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:38px;
  height:29px;
  padding:0 9px;
  border-radius:999px;
  background:var(--part-accent);
  color:#fff;
  font-size:12px;
}

.nsdm-cd__summary-list{display:flex;flex-direction:column;gap:26px;margin-bottom:42px}
.nsdm-cd__summary-section,.nsdm-cd__part-section,.nsdm-cd__category-section{scroll-margin-top:100px}
.nsdm-cd__summary-section,
.nsdm-cd__part-section{
  padding:18px;
  border:1px solid var(--nsdm-line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 25px rgba(17,32,58,.055);
}
.nsdm-cd__summary-heading,
.nsdm-cd__part-heading,
.nsdm-cd__category-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.nsdm-cd__summary-heading,
.nsdm-cd__part-heading{
  margin-bottom:13px;
  padding:14px 16px;
  border-left:5px solid var(--part-accent);
  border-radius:12px;
  background:var(--part-soft);
}
.nsdm-cd__summary-heading span,
.nsdm-cd__part-heading span,
.nsdm-cd__category-heading span{
  display:block;
  color:var(--part-accent);
  font-size:12px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.nsdm-cd__summary-heading h3,
.nsdm-cd__part-heading h3{
  margin:2px 0 0;
  color:var(--part-accent-dark);
  font-size:22px;
  line-height:1.2;
}
.nsdm-cd__summary-meta,
.nsdm-cd__category-meta{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:13px;
  flex-wrap:wrap;
}
.nsdm-cd__summary-meta strong,
.nsdm-cd__category-meta strong,
.nsdm-cd__part-heading>strong{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 12px;
  border-radius:999px;
  background:#fff;
  color:var(--part-accent-dark);
  font-size:12px;
  white-space:nowrap;
}
.nsdm-cd__summary-meta a,
.nsdm-cd__category-meta a{
  color:var(--part-accent-dark)!important;
  font-size:13px;
  font-weight:800;
  text-decoration:none!important;
  white-space:nowrap;
}
.nsdm-cd__summary-meta a:hover,
.nsdm-cd__category-meta a:hover{text-decoration:underline!important}

/* Compact Part summary: reference-like density with NSDM styling. */
.nsdm-cd__summary-heading,
.nsdm-cd__summary-wrap{
  width:100%;
  max-width:1040px;
  margin-left:auto;
  margin-right:auto;
}
.nsdm-cd__summary-heading{margin-bottom:12px}

.nsdm-cd__summary-wrap{
  overflow:hidden;
  border:1px solid var(--nsdm-line);
  border-radius:12px;
  background:#fff;
}
.nsdm-cd__summary-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  margin:0;
}
.nsdm-cd__summary-col-sl{width:64px}
.nsdm-cd__summary-col-category{width:auto}
.nsdm-cd__summary-col-count{width:96px}
.nsdm-cd__summary-col-details{width:112px}
.nsdm-cd__summary-table th{
  padding:12px 10px;
  background:var(--part-accent);
  color:#fff;
  text-align:left;
  font-size:13px;
  font-weight:850;
  line-height:1.25;
}
.nsdm-cd__summary-table td{
  min-width:0;
  padding:9px 12px;
  border-top:1px solid var(--nsdm-line);
  color:#111827;
  font-size:14px;
  font-weight:600;
  line-height:1.3;
  vertical-align:middle;
  overflow-wrap:anywhere;
}
.nsdm-cd__summary-table tbody tr{
  transition:background-color .14s ease;
}
.nsdm-cd__summary-table tbody tr:nth-child(even){background:var(--part-row-alt)}
.nsdm-cd__summary-table tbody tr:hover,
.nsdm-cd__summary-table tbody tr:focus-within{background:var(--part-soft)}
.nsdm-cd__summary-table th:nth-child(1),
.nsdm-cd__summary-table td:nth-child(1),
.nsdm-cd__summary-table th:nth-child(3),
.nsdm-cd__summary-table td:nth-child(3),
.nsdm-cd__summary-table th:nth-child(4),
.nsdm-cd__summary-table td:nth-child(4){text-align:center}
.nsdm-cd__summary-table td:nth-child(2) a,
.nsdm-cd__view-link{
  color:#111827!important;
  font-weight:700;
  text-decoration:none!important;
  text-underline-offset:3px;
  transition:color .14s ease;
}
.nsdm-cd__summary-table tbody tr:hover td:nth-child(2) a,
.nsdm-cd__summary-table tbody tr:focus-within td:nth-child(2) a,
.nsdm-cd__summary-table tbody tr:hover .nsdm-cd__view-link,
.nsdm-cd__summary-table tbody tr:focus-within .nsdm-cd__view-link,
.nsdm-cd__summary-table td:nth-child(2) a:hover,
.nsdm-cd__summary-table td:nth-child(2) a:focus,
.nsdm-cd__view-link:hover,
.nsdm-cd__view-link:focus{
  color:var(--part-accent)!important;
  text-decoration:underline!important;
}
.nsdm-cd__summary-table td:nth-child(2) a:focus-visible,
.nsdm-cd__view-link:focus-visible{
  outline:2px solid var(--part-accent);
  outline-offset:2px;
  border-radius:3px;
}

.nsdm-cd__part-list{display:flex;flex-direction:column;gap:40px}
.nsdm-cd__category-list{display:flex;flex-direction:column;gap:24px}
.nsdm-cd__category-section{
  content-visibility:auto;
  contain-intrinsic-size:auto 680px;
}
.nsdm-cd__category-section.is-anchor-target{content-visibility:visible}
/* Anchor reliability mode: real table heights replace content-visibility estimates. */
.nsdm-cd.is-anchor-navigation-active .nsdm-cd__category-section{
  content-visibility:visible;
}
body.nsdm-cd-anchor-navigation-active{overflow-anchor:none}
.nsdm-cd__category-heading{
  margin-bottom:10px;
  padding:13px 15px;
  border:1px solid color-mix(in srgb,var(--part-accent) 20%,var(--nsdm-line));
  border-left:5px solid var(--part-accent);
  border-radius:12px;
  background:var(--part-soft);
}
.nsdm-cd__category-heading h4{
  margin:2px 0 0;
  color:var(--part-accent-dark);
  font-size:20px;
  line-height:1.25;
}

/* Same accessible four-column table on desktop and mobile. */
.nsdm-cd__table-wrap{
  overflow:hidden;
  border:1px solid var(--nsdm-line);
  border-radius:13px;
  background:#fff;
}
.nsdm-cd__table{
  width:100%;
  min-width:0;
  table-layout:fixed;
  border-collapse:collapse;
  margin:0;
}
.nsdm-cd__col-sl{width:7%}
.nsdm-cd__col-code{width:15%}
.nsdm-cd__col-name{width:60%}
.nsdm-cd__col-duration{width:18%}
.nsdm-cd__table th{
  padding:12px 13px;
  background:var(--part-accent);
  color:#fff;
  text-align:left;
  font-size:13px;
  font-weight:850;
  line-height:1.25;
}
.nsdm-cd__table th:first-child,
.nsdm-cd__table th:last-child{text-align:center}
.nsdm-cd__table td{
  min-width:0;
  padding:9px 12px;
  border-top:1px solid var(--nsdm-line);
  color:#111827;
  font-size:14px;
  font-weight:600;
  line-height:1.3;
  vertical-align:middle;
  overflow-wrap:anywhere;
}
.nsdm-cd__table td:not(:last-child),
.nsdm-cd__table th:not(:last-child){border-right:1px solid var(--nsdm-line)}
.nsdm-cd__table tbody tr{transition:background-color .14s ease}
.nsdm-cd__table tbody tr:nth-child(even){background:var(--part-row-alt)}
.nsdm-cd__table tbody tr:hover,
.nsdm-cd__table tbody tr:focus-within{background:var(--part-soft)}
.nsdm-cd__table td:first-child,
.nsdm-cd__table td:last-child{text-align:center}
.nsdm-cd__row-sl{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  min-height:28px;
  padding:3px 6px;
  border-radius:8px;
  background:var(--part-soft);
  color:#111827;
  font-size:12px;
  font-weight:700;
}
.nsdm-cd__code{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:100%;
  min-height:31px;
  padding:5px 9px;
  border-radius:999px;
  background:var(--part-code);
  color:#111827;
  font-size:12px;
  font-weight:700;
  white-space:normal;
  overflow-wrap:anywhere;
}
.nsdm-cd__name{
  display:block;
  min-width:0;
  color:#111827!important;
  font-size:15px;
  font-weight:700;
  line-height:1.3;
  text-decoration:none!important;
  text-underline-offset:3px;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  transition:color .14s ease;
}
.nsdm-cd__table tbody tr:hover .nsdm-cd__name,
.nsdm-cd__table tbody tr:focus-within .nsdm-cd__name,
.nsdm-cd__name:hover,
.nsdm-cd__name:focus{
  color:var(--part-accent)!important;
  text-decoration:underline!important;
}
.nsdm-cd__name:focus-visible{
  outline:2px solid var(--part-accent);
  outline-offset:2px;
  border-radius:3px;
}
.nsdm-cd__duration{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:100%;
  min-height:31px;
  padding:5px 9px;
  border-radius:999px;
  background:var(--part-soft);
  color:#111827;
  font-size:12px;
  font-weight:700;
  line-height:1.2;
  text-align:center;
  white-space:normal;
}

.nsdm-cd__empty{
  padding:36px;
  border:1px dashed #bcc8d9;
  border-radius:16px;
  background:var(--nsdm-soft);
  text-align:center;
}
.nsdm-cd__empty strong{font-size:20px}

/* Long-page paint and instant same-page anchor support. */
body.nsdm-cd-live-page,
body.nsdm-cd-live-page #page,
body.nsdm-cd-live-page #main,
body.nsdm-cd-live-page #content,
body.nsdm-cd-live-page #primary,
body.nsdm-cd-live-page article,
body.nsdm-cd-live-page .entry-content{background:#fff!important}
body.nsdm-cd-live-page{scroll-behavior:auto!important}

.nsdm-cd__jump-loader{
  position:fixed;
  z-index:999999;
  left:50%;
  bottom:24px;
  display:flex;
  align-items:center;
  gap:9px;
  min-height:43px;
  max-width:calc(100vw - 30px);
  padding:9px 15px;
  border-radius:999px;
  background:rgba(11,40,94,.96);
  color:#fff;
  box-shadow:0 11px 30px rgba(11,40,94,.25);
  font-size:13px;
  font-weight:800;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(-50%,12px);
  transition:opacity .14s ease,transform .14s ease,visibility .14s ease;
}
.nsdm-cd__jump-loader.is-visible{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nsdm-cd__jump-spinner{
  width:17px;
  height:17px;
  flex:0 0 17px;
  border:2px solid rgba(255,255,255,.4);
  border-top-color:#fff;
  border-radius:50%;
  animation:nsdm-cd-spin .7s linear infinite;
}
@keyframes nsdm-cd-spin{to{transform:rotate(360deg)}}

/* Keep floating utilities clear of course links on this long page. */
body.nsdm-cd-live-page .scrollup,
body.nsdm-cd-live-page #scroll-up,
body.nsdm-cd-live-page .scroll-to-top{right:18px!important;bottom:92px!important}
body.nsdm-cd-live-page .ht-ctc-chat,
body.nsdm-cd-live-page .ht_ctc_chat_greetings_box{right:18px!important;bottom:18px!important}

@media(max-width:760px){
  .nsdm-cd{width:calc(100% - 16px);margin:16px auto}
  .nsdm-cd__hero{display:block;padding:22px 18px;border-radius:15px}
  .nsdm-cd__hero h2{font-size:29px}
  .nsdm-cd__hero p{font-size:14px}
  .nsdm-cd__total-badge{min-height:39px;margin-top:14px;padding:7px 13px;font-size:13px}
  .nsdm-cd__part-nav{gap:7px;margin:14px 0 20px}
  .nsdm-cd__part-link{display:block;padding:9px 8px;text-align:center}
  .nsdm-cd__part-link strong{min-width:30px;height:24px;margin:5px auto 0;font-size:11px}
  .nsdm-cd__summary-section,.nsdm-cd__part-section{padding:10px;border-radius:14px}
  .nsdm-cd__summary-heading,.nsdm-cd__part-heading,.nsdm-cd__category-heading{align-items:flex-start}
  .nsdm-cd__summary-heading,.nsdm-cd__part-heading{padding:12px}
  .nsdm-cd__summary-heading h3,.nsdm-cd__part-heading h3{font-size:19px}
  .nsdm-cd__summary-meta,.nsdm-cd__category-meta{gap:8px}
  .nsdm-cd__summary-meta strong,.nsdm-cd__category-meta strong,.nsdm-cd__part-heading>strong{min-height:30px;padding:5px 9px;font-size:11px}
  .nsdm-cd__summary-meta a,.nsdm-cd__category-meta a{font-size:11px;white-space:normal;text-align:right}
  .nsdm-cd__summary-col-sl{width:9%}
  .nsdm-cd__summary-col-category{width:57%}
  .nsdm-cd__summary-col-count{width:14%}
  .nsdm-cd__summary-col-details{width:20%}
  .nsdm-cd__summary-table th{padding:9px 5px;font-size:10px;overflow-wrap:anywhere}
  .nsdm-cd__summary-table td{padding:8px 5px;font-size:11px;font-weight:600}
  .nsdm-cd__category-list{gap:18px}
  .nsdm-cd__category-section{contain-intrinsic-size:auto 500px}
  .nsdm-cd__category-heading{padding:11px 12px}
  .nsdm-cd__category-heading h4{font-size:18px}

  /* Mobile keeps the same visible four-column table and never scrolls sideways. */
  .nsdm-cd__col-sl{width:10%}
  .nsdm-cd__col-code{width:23%}
  .nsdm-cd__col-name{width:45%}
  .nsdm-cd__col-duration{width:22%}
  .nsdm-cd__table th{padding:9px 6px;font-size:11px}
  .nsdm-cd__table td{padding:9px 6px;font-size:12px;font-weight:600;vertical-align:top}
  .nsdm-cd__row-sl,.nsdm-cd__code,.nsdm-cd__duration{min-height:28px;padding:4px 5px;font-size:10px}
  .nsdm-cd__name{font-size:13px;line-height:1.35}
  .nsdm-cd__jump-loader{bottom:14px;font-size:12px}
  body.nsdm-cd-live-page .scrollup,
  body.nsdm-cd-live-page #scroll-up,
  body.nsdm-cd-live-page .scroll-to-top{right:10px!important;bottom:82px!important;transform:scale(.84);transform-origin:right bottom}
  body.nsdm-cd-live-page .ht-ctc-chat{right:10px!important;bottom:12px!important;transform:scale(.86);transform-origin:right bottom}
}

@media(max-width:380px){
  .nsdm-cd__summary-heading,.nsdm-cd__part-heading,.nsdm-cd__category-heading{display:block}
  .nsdm-cd__summary-meta,.nsdm-cd__category-meta{justify-content:space-between;margin-top:10px}
  .nsdm-cd__table th{font-size:10px}
  .nsdm-cd__name{font-size:12px}
}

@media(prefers-reduced-motion:reduce){
  .nsdm-cd__jump-loader{transition:none}
  .nsdm-cd__jump-spinner{animation-duration:1.2s}
}
