.nt-hero{ padding-block: var(--sp-7); }
.nt-hero h1{ margin-block: var(--sp-3) var(--sp-3); }
.nt-hero p.lead{ margin-bottom: var(--sp-5); }
.nt-hero-grid{
  display:grid; grid-template-columns: minmax(0, 1fr) minmax(0, 560px);
  gap: var(--sp-7); align-items:center;
}
.nt-hero .closed-banner{ margin:0; box-shadow: var(--sh-1); }
.nt-sec{ padding-top: var(--sp-7); }
@media (max-width:1080px){ .nt-hero-grid{ grid-template-columns: 1fr; gap: var(--sp-5); } }
@media (max-width:760px){
  .nt-hero{ padding-block: var(--sp-6); }
  .nt-sec{ padding-top: var(--sp-5); }
}

.nt-panel{ --nt-no: 80px; --nt-dt: 120px; padding: var(--sp-6) var(--sp-7); }

.nt-board-head,
.nt-row a{
  display:grid; grid-template-columns: var(--nt-no) minmax(0, 1fr) var(--nt-dt);
  align-items:center; column-gap: var(--sp-5);
}
.nt-board-head{
  padding-block: var(--sp-2);
  border-bottom: 1px solid var(--n-300);
  font-size: var(--fs-xs); font-weight:800; color: var(--n-600);
}
.nt-no, .nt-dt{ text-align:center; }

.nt-rows{ list-style:none; margin:0; padding:0; }
.nt-row{ border-bottom: 1px solid var(--n-200); }
.nt-row a{ padding-block: var(--sp-4); color:inherit; transition: background .15s var(--ease); }
.nt-row a:hover,
.nt-row a:focus-visible{ background: var(--n-100); }
.nt-row a:hover .nt-tt{ color: var(--o-700); text-decoration:underline; text-underline-offset:4px; }

.nt-row .nt-no{ font-size: var(--fs-sm); color: var(--n-600); }
.nt-tx{ min-width:0; }
.nt-row .nt-tt{
  display:block; font-size: var(--fs-md); font-weight:750; color: var(--n-900); line-height:1.5;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.nt-row .nt-sum{
  display:block; margin-top:2px; font-size: var(--fs-sm); color: var(--n-600); line-height:1.6;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.nt-row .nt-dt{ font-size: var(--fs-sm); color: var(--n-600); font-variant-numeric: tabular-nums; }

.nt-row.is-pin a{ background: var(--o-50); }
.nt-row.is-pin a:hover{ background: var(--o-100); }
.nt-tag{
  display:inline-block; padding: 3px 10px; border-radius: var(--r-full);
  background: var(--n-0); border:1px solid var(--o-300); color: var(--o-700);
  font-size: var(--fs-xs); font-weight:850; line-height:1.5; white-space:nowrap;
}

.nt-pager{ display:flex; flex-wrap:wrap; justify-content:center; gap: var(--sp-2); margin-top: var(--sp-6); }
.nt-pg{
  min-width:40px; height:40px; padding: 0 var(--sp-2);
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--n-300); border-radius: var(--r-full); background: var(--n-0);
  font-size: var(--fs-sm); font-weight:700; color: var(--n-800);
}
.nt-pg:hover{ border-color: var(--o-300); color: var(--o-700); }
.nt-pg.is-now{ background: var(--o-500); border-color: var(--o-500); color:#fff; }

.nt-post, .nt-sibs, .nt-actions, .nt-missing{ max-width: 760px; margin-inline:0; }
.nt-post-head{ padding-bottom: var(--sp-5); margin-bottom: var(--sp-6); border-bottom: 1px solid var(--n-300); }
.nt-post-title{
  font-size: var(--fs-xl); font-weight:900; line-height:1.3; color: var(--n-900); word-break: keep-all;
  overflow-wrap: break-word; overflow-wrap: anywhere;
}
.nt-post-meta{
  display:flex; align-items:center; gap: var(--sp-2); margin-top: var(--sp-3);
  font-size: var(--fs-sm); color: var(--n-600); font-variant-numeric: tabular-nums;
}

.nt-body{
  font-size: var(--fs-base); line-height:1.85; color: var(--n-800); word-break: keep-all;
  overflow-wrap: break-word; overflow-wrap: anywhere;
}
.nt-body p{ margin: 0 0 var(--sp-2); }
.nt-body a{ color: var(--o-700); font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.nt-body b{ color: var(--n-900); font-weight:800; }
.nt-body .nt-h3{ font-size: var(--fs-lg); font-weight:900; color: var(--n-900); margin: var(--sp-6) 0 var(--sp-3); }
.nt-body .nt-h4{ font-size: var(--fs-md); font-weight:850; color: var(--n-900); margin: var(--sp-4) 0 var(--sp-2); }
.nt-body > :first-child{ margin-top:0; }
.nt-center{ text-align:center; }
.nt-list{ margin: 0 0 var(--sp-2); padding-left: 1.2em; list-style: disc; }
.nt-list li{ margin-bottom: var(--sp-1); }
.nt-mark{ background: var(--o-50); box-shadow: inset 0 -3px 0 var(--o-200); color: var(--o-700); font-weight:800; padding: 0 4px; border-radius: 4px; }
.nt-gap{ height: var(--sp-3); }
.nt-img{ margin: var(--sp-4) 0; text-align:center; }
.nt-img img{
  display:inline-block; width:auto; max-width: min(100%, 720px); max-height: min(80vh, 720px);
  height:auto; border-radius: var(--r-md);
}
.nt-img figcaption{ margin-top: var(--sp-2); font-size: var(--fs-xs); color: var(--n-600); }

.nt-sibs{ list-style:none; margin-top: var(--sp-7); padding:0; border-top: 1px solid var(--n-300); }
.nt-sibs li{
  display:grid; grid-template-columns: 72px minmax(0, 1fr) auto;
  align-items:center; column-gap: var(--sp-4);
  padding-block: var(--sp-4); border-bottom: 1px solid var(--n-200);
}
.nt-sib-label{ font-size: var(--fs-sm); font-weight:800; color: var(--n-600); }
.nt-sibs a{
  font-size: var(--fs-base); font-weight:700; color: var(--n-900);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.nt-sibs a:hover{ color: var(--o-700); text-decoration:underline; text-underline-offset:4px; }
.nt-sibs .nt-dt{ font-size: var(--fs-sm); color: var(--n-600); font-variant-numeric: tabular-nums; }

.nt-actions{ display:flex; justify-content:flex-start; margin-top: var(--sp-6); }
.nt-actions .btn{ min-width: 160px; }

.nt-missing{ padding-block: var(--sp-6); text-align:left; color: var(--n-600); }
.nt-missing b{ color: var(--n-900); font-size: var(--fs-md); }
.nt-empty{ padding: var(--sp-6); text-align:center; color: var(--n-600); }

@media (max-width: 720px){
  .nt-panel{ padding: var(--sp-4) var(--sp-5); }
  .nt-board-head{ display:none; }
  .nt-row a{
    display:flex; flex-wrap:wrap; align-items:flex-start; gap: var(--sp-1) var(--sp-2);
    padding: var(--sp-4) var(--sp-1);
  }
  .nt-row:last-child{ border-bottom:0; }
  .nt-row .nt-no{ display:none; margin-top:1px; }
  .nt-row.is-pin .nt-no{ display:inline-flex; }
  .nt-tx{ flex:1 1 0; }
  .nt-row .nt-tt{ white-space:normal; font-size: var(--fs-base); overflow-wrap: break-word; overflow-wrap: anywhere; }
  .nt-row .nt-sum{
    white-space:normal; overflow-wrap: break-word; overflow-wrap: anywhere;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  }
  .nt-row .nt-dt{ width:100%; text-align:left; font-size: var(--fs-xs); }

  .nt-sibs li{ grid-template-columns: 64px minmax(0, 1fr); column-gap: var(--sp-3); }
  .nt-sibs .nt-dt{ display:none; }
  .nt-actions{ justify-content:center; }
  .nt-missing{ text-align:center; }
}
