/* Contraband is a registry of independent categories, not a comparison matrix. */
.contraband-notice {
  margin-bottom: 20px;
  padding: 14px 18px;
  border: 1px solid rgba(242, 195, 90, .24);
  border-left: 3px solid var(--doc-accent);
  background: rgba(242, 195, 90, .045);
}
.contraband-notice__label { color: var(--doc-accent); font: 12px/1.6 var(--mono); letter-spacing: .08em; }
.doc-page .contraband-notice p { margin: 6px 0 0; }
.contraband-controls[hidden], .contraband-category[hidden], .doc-page .contraband-list li[hidden], .contraband-empty[hidden] { display: none; }
.contraband-controls { display: grid; gap: 10px; margin: 0 0 20px; }
.contraband-search { display: grid; gap: 8px; color: var(--muted); font: 12px/1.6 var(--mono); letter-spacing: .04em; }
.contraband-search input {
  width: 100%; min-width: 0; padding: 13px 15px;
  border: 1px solid var(--line); border-radius: 3px;
  color: var(--text); background: rgba(0, 0, 0, .4); font: 16px/1.5 var(--sans);
}
.contraband-search input::placeholder { color: var(--muted); opacity: .8; }
.contraband-filters { display: flex; gap: 8px; flex-wrap: wrap; }
.contraband-filters button, .contraband-reset {
  padding: 9px 12px; border: 1px solid var(--line); border-radius: 3px;
  color: var(--muted); background: rgba(0, 0, 0, .25);
  cursor: pointer; font: 12px/1.6 var(--mono);
}
.contraband-filters button:hover, .contraband-reset:hover { border-color: var(--doc-accent); color: var(--text); }
.contraband-filters button[aria-pressed="true"] { color: var(--doc-accent); border-color: var(--doc-accent); background: var(--doc-accent-soft); }
.contraband-filter-count { padding-left: 8px; opacity: .7; }
.doc-page .contraband-body .contraband-status { margin: 0; color: var(--muted); font: 12px/1.6 var(--mono); }
.contraband-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); gap: 18px; align-items: start; }
.contraband-category { min-width: 0; border: 1px solid var(--line); border-top: 2px solid var(--registry-accent); border-radius: 4px; background: rgba(0, 0, 0, .22); --registry-accent: #f2c35a; }
.contraband-category--light { --registry-accent: #98c7bb; }
.contraband-category--combat { --registry-accent: #ed8d85; }
.contraband-category__head { padding: 18px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, rgba(242, 195, 90, .055), transparent); }
.contraband-category__meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; color: var(--registry-accent); font: 11px/1.6 var(--mono); letter-spacing: .06em; }
.doc-page .contraband-category h3 { margin: 14px 0 12px; padding: 0; border: 0; color: var(--registry-accent); font: 600 17px/1.5 var(--mono); letter-spacing: .03em; text-transform: uppercase; overflow-wrap: normal; }
.doc-page .contraband-category__head p { margin: 0; color: var(--muted); font-size: calc(var(--reading-size) - 2px); line-height: 1.7; }
.contraband-origin { display: block; margin-top: 12px; color: var(--muted); font: 11px/1.6 var(--mono); }
.doc-page .contraband-list { list-style: none; padding: 0; margin: 0; counter-reset: registry-entry; }
.doc-page .contraband-list li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; margin: 0; padding: 14px 16px; border-bottom: 1px solid var(--line); font-size: calc(var(--reading-size) - 1px); line-height: 1.7; overflow-wrap: break-word; }
.contraband-list li::before { counter-increment: registry-entry; content: counter(registry-entry, decimal-leading-zero); padding-top: 3px; color: var(--registry-accent); opacity: .5; font: 10px/2 var(--mono); }
.contraband-list li:last-child { border-bottom: 0; }
.contraband-list li:nth-child(even) { background: rgba(255, 255, 255, .015); }
.contraband-list li:hover { background: rgba(242, 195, 90, .035); }
.contraband-empty { padding: 24px; border: 1px dashed var(--line); }
.doc-page .contraband-empty p { margin-top: 0; }
.contraband-controls input:focus-visible, .contraband-controls button:focus-visible { outline-color: var(--doc-accent); }
/* The code and modifiers use the same archive vocabulary as the registry. */
.doc-page--law .paper__head::before { content: "CASE FILE / LEGAL REGISTER"; }
.doc-page--law .paper__head::after { height: 1px; width: 60px; border: 0; background: var(--doc-accent); opacity: .4; }
.law-registry-controls[hidden], .law-registry-empty[hidden], [data-law-group][hidden], [data-law-entry][hidden] { display: none; }
.law-registry-controls { display: grid; gap: 12px; margin-bottom: 24px; }
.law-search { display: grid; gap: 8px; color: var(--muted); font: 12px/1.6 var(--mono); letter-spacing: .04em; }
.law-search input { width: 100%; min-width: 0; padding: 13px 15px; border: 1px solid var(--line); border-radius: 3px; color: var(--text); background: rgba(0, 0, 0, .4); font: 16px/1.5 var(--sans); }
.law-search input::placeholder { color: var(--muted); opacity: .8; }
.law-registry-actions, .law-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.law-registry-actions { justify-content: space-between; }
.law-filters button, .law-expand, .law-reset { padding: 9px 12px; border: 1px solid var(--line); border-radius: 3px; color: var(--muted); background: rgba(0, 0, 0, .25); cursor: pointer; font: 12px/1.6 var(--mono); }
.law-filters button[aria-pressed="true"] { color: var(--doc-accent); border-color: var(--doc-accent); background: var(--doc-accent-soft); }
.law-filters button:hover, .law-expand:hover, .law-reset:hover { border-color: var(--doc-accent); color: var(--text); }
.doc-page .law-registry-body .law-registry-status { margin: 0; color: var(--muted); font: 12px/1.6 var(--mono); }
.law-summary-grid, .law-modifier-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); align-items: start; gap: 18px; }
.law-category, .law-modifier-group { min-width: 0; --law-accent: #f2c35a; border: 1px solid var(--line); border-top: 2px solid var(--law-accent); border-radius: 4px; background: rgba(0, 0, 0, .22); }
.severity-1, .modifier-mitigating { --law-accent: #98c7bb; }
.severity-2 { --law-accent: #7dcfc8; }
.severity-4 { --law-accent: #efa46a; }
.severity-5, .modifier-aggravating { --law-accent: #ed8d85; }
.law-category-head, .law-modifier-group-head { padding: 18px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, rgba(242, 195, 90, .055), transparent); }
.law-category-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; justify-content: space-between; color: var(--law-accent); font: 11px/1.6 var(--mono); letter-spacing: .05em; }
.doc-page .law-category-head h3, .doc-page .law-modifier-group-head h3 { margin: 12px 0 16px; padding: 0; border: 0; color: var(--law-accent); font: 600 18px/1.5 var(--mono); letter-spacing: .03em; overflow-wrap: break-word; }
.law-field-label { color: var(--muted); font: 10px/1.6 var(--mono); letter-spacing: .06em; }
.doc-page .law-sanctions ul { padding: 0; margin: 10px 0 0; list-style: none; }
.doc-page .law-sanctions li { margin: 0; padding-left: 13px; position: relative; color: var(--text); font: 14px/1.7 var(--sans); }
.law-sanctions li::before { content: "·"; position: absolute; left: 0; color: var(--law-accent); }
.doc-page .law-summary-list { margin: 0; padding: 0; list-style: none; }
.doc-page .law-summary-list li { margin: 0; border-bottom: 1px solid var(--line); }
.law-summary-list li:last-child { border-bottom: 0; }
.doc-page .law-summary-list .law-summary-link { display: grid; grid-template-columns: 40px minmax(0, 1fr) 14px; gap: 10px; align-items: baseline; padding: 14px; color: var(--text); text-decoration: none; font-size: calc(var(--reading-size) - 1px); line-height: 1.65; overflow-wrap: break-word; }
.law-summary-link:hover { background: rgba(242, 195, 90, .05); }
.law-code { color: var(--law-accent); font: 600 13px/1.6 var(--mono); letter-spacing: .04em; white-space: nowrap; }
.law-link-arrow { color: var(--law-accent); opacity: .65; }
.law-full-groups { display: grid; gap: 24px; }
.law-category--full .law-category-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 20px; }
.law-category--full .law-category-head h3 { margin-bottom: 0; }
.law-article { scroll-margin-top: 16px; border-bottom: 1px solid var(--line); }
.law-article:last-child { border-bottom: 0; }
.law-article > summary { display: grid; grid-template-columns: 48px minmax(0, 1fr) 16px; gap: 12px; align-items: baseline; list-style: none; padding: 18px; cursor: pointer; }
.law-article > summary::-webkit-details-marker { display: none; }
.law-article > summary:hover { background: rgba(242, 195, 90, .04); }
.law-article-title { color: var(--text); font: 600 var(--reading-size)/1.6 var(--sans); overflow-wrap: break-word; }
.law-disclosure { color: var(--law-accent); font: 18px var(--mono); }
.law-article[open] > summary { border-bottom: 1px solid var(--line); background: rgba(242, 195, 90, .035); }
.law-article[open] .law-disclosure { font-size: 0; }
.law-article[open] .law-disclosure::after { content: "−"; font-size: 18px; }
.law-article-body { padding: 20px 24px; max-width: 84ch; }
.doc-page .law-article-body h4 { margin: 22px 0 10px; color: var(--law-accent); font: 600 12px/1.7 var(--mono); letter-spacing: .05em; text-transform: uppercase; }
.doc-page .law-article-body ul { margin: 0; padding-left: 22px; }
.doc-page .law-article-body li { margin: 0; font-size: calc(var(--reading-size) - 1px); line-height: 1.8; }
.doc-page .law-article-body li + li { margin-top: 8px; }
.law-conditions { border-left: 2px solid var(--law-accent); padding: 0 0 0 16px; }
.law-related { display: flex; flex-wrap: wrap; gap: 10px 18px; padding-top: 20px; font: 12px/1.7 var(--mono); }
.doc-page .law-related a { color: var(--law-accent); }
.law-modifier { padding: 18px; border-bottom: 1px solid var(--line); scroll-margin-top: 16px; }
.law-modifier:last-child { border-bottom: 0; }
.law-modifier > header { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; align-items: baseline; }
.doc-page .law-modifier h4 { margin: 0; font: 600 var(--reading-size)/1.5 var(--sans); color: var(--text); }
.law-modifier dl { margin: 16px 0 0; }
.law-modifier dt { margin: 16px 0 6px; color: var(--law-accent); font: 11px/1.7 var(--mono); letter-spacing: .05em; text-transform: uppercase; }
.law-modifier dd { margin: 0; font-size: calc(var(--reading-size) - 1px); line-height: 1.8; overflow-wrap: break-word; }
.law-modifier-effect { padding: 12px; border-left: 2px solid var(--law-accent); background: rgba(242, 195, 90, .035); }
.law-registry-empty { padding: 24px; border: 1px dashed var(--line); }
.doc-page .law-registry-body :is(input, button, summary, a):focus-visible { outline-color: var(--doc-accent); }
@media (max-width: 600px) {
  .doc-page .contraband-body { padding: 16px; }
  .contraband-filters button { flex: 1 1 calc(50% - 8px); text-align: left; }
  .contraband-category__head { padding: 16px; }
  .law-category--full .law-category-head { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .doc-page .law-registry-body { padding: 16px; }
  .law-article > summary { grid-template-columns: 36px minmax(0, 1fr) 14px; gap: 8px; padding: 16px; }
  .law-article-body { padding: 16px; }
}
@media print {
  .contraband-controls { display: none; }
  .contraband-grid { display: block; }
  .contraband-category { margin: 20px 0; }
  .contraband-category[hidden] { display: block; }
  .doc-page .contraband-list li[hidden] { display: grid; }
  .contraband-category__head { break-inside: avoid; }
  .contraband-list li { break-inside: avoid; }
  .law-registry-controls, .law-registry-empty { display: none; }
  .law-summary-grid, .law-modifier-grid { display: block; }
  .law-category, .law-modifier-group { margin-bottom: 20px; }
  [data-law-group][hidden], [data-law-entry][hidden] { display: block; }
  .law-article::details-content { display: block; content-visibility: visible; }
  .law-article-body { break-inside: avoid; }
}
