.cfd-shell.nl-shell {
  --cfd-rule: rgba(180, 160, 200, 0.35);
  max-width: 52rem;
  margin: 0 auto;
  color: inherit;
  line-height: 1.55;
}
.nl-shell h1, .nl-shell h2, .nl-shell h3 {
  font-family: "Cinzel Decorative", "Palatino Linotype", Georgia, serif;
  text-shadow: none;
}
.cfd-mast { text-align: center; border-top: 3px solid var(--cfd-rule); border-bottom: 1px solid var(--cfd-rule); padding: 0.6rem 0 0.85rem; margin-bottom: 1.25rem; }
.cfd-mast h1 { font-size: 2rem; letter-spacing: 0.02em; margin: 0.2rem 0; }
.cfd-kicker, .cfd-dateline { font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.72; margin: 0; }
.cfd-muted, .cfd-hint { opacity: 0.8; font-size: 0.92rem; }
.cfd-tools { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1rem; }
.cfd-flash { border: 1px solid var(--cfd-rule); padding: 0.55rem 0.75rem; margin: 0.75rem 0; }
.cfd-input, .cfd-btn, .nl-shell select.cfd-input {
  font: inherit; color: inherit; background: transparent;
  border: 1px solid var(--cfd-rule); padding: 0.35rem 0.55rem;
}
.nl-shell a.cfd-btn, .cfd-btn {
  cursor: pointer; text-decoration: none; display: inline-block;
  color: inherit; letter-spacing: 0.04em; padding: 0.4rem 0.85rem;
}
.cfd-btn-ghost { opacity: 0.85; }
.cfd-btn-danger { border-color: rgba(180, 80, 80, 0.55); }
.cfd-form label { display: block; margin: 0.55rem 0; }
.cfd-check { display: block; margin: 0.35rem 0; }
.nl-intro { margin: 0 0 1.25rem; opacity: 0.9; }
.nl-boards { display: grid; gap: 1.25rem; }
.nl-board { border-top: 1px solid var(--cfd-rule); padding-top: 0.75rem; }
.nl-board h2 { font-size: 1.15rem; margin: 0 0 0.5rem; }
.nl-rank { list-style: none; margin: 0; padding: 0; }
.nl-rank li {
  display: flex; flex-wrap: wrap; gap: 0.35rem 0.75rem;
  align-items: baseline; padding: 0.35rem 0;
  border-bottom: 1px solid rgba(180, 160, 200, 0.18);
}
.nl-rank .nl-pos { opacity: 0.65; min-width: 1.5rem; }
.nl-rank .nl-name { font-weight: 600; flex: 1 1 auto; }
.nl-rank .nl-meta { opacity: 0.75; font-size: 0.9rem; }
.nl-period { margin-bottom: 1rem; }
.nl-recent { margin-top: 1.5rem; }
.nl-recent ul { margin: 0; padding-left: 1.1rem; }
.nl-recent li { margin: 0.35rem 0; }
.nl-profile { margin: 1.25rem 0; padding: 0.75rem; border: 1px solid var(--cfd-rule); }
.nl-admin table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.nl-admin th, .nl-admin td { text-align: left; padding: 0.35rem 0.4rem; border-bottom: 1px solid var(--cfd-rule); vertical-align: top; }
