/* Regulatory intelligence catalogue. Loaded after site.css on /regulatory/ pages. No JavaScript. */

/* Legal force: from strongest (filled, dark) to weakest (dashed). */
.ri-force {
  display: inline-flex; align-items: center; gap: .35rem;
  font-family: var(--mono); font-size: .72rem; letter-spacing: .02em; line-height: 1.3;
  padding: .12rem .45rem; border: 1px solid var(--rule); white-space: nowrap; color: var(--ink); background: var(--card);
}
.ri-force-key { font-weight: 500; }
.ri-force-l1 { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.ri-force-l2 { border-color: var(--ink); color: var(--ink); }
.ri-force-l2 .ri-force-key { border-right: 1px solid var(--ink); padding-right: .3rem; }
.ri-force-g1 { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
.ri-force-g2 { border-color: var(--accent); border-style: dashed; color: var(--accent); }
.ri-force-s { color: var(--muted); border-color: var(--muted); }
.ri-force-p { border-style: dashed; border-color: var(--error); color: var(--error); }
thead .ri-force { text-transform: none; letter-spacing: 0; }

.ri-status { display: inline-block; margin-top: .3rem; font-size: .75rem; color: var(--muted); }
.ri-status-in_force { color: var(--ok); }
.ri-status-adopted { color: var(--accent); }
.ri-status-draft { color: var(--error); }
.ri-status-superseded, .ri-status-repealed { text-decoration: line-through; }

/* Component relevance strip and cells */
.ri-strip { display: inline-flex; gap: 2px; }
.ri-cell {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.2rem; height: 1.2rem; flex: none;
  font-family: var(--mono); font-size: .62rem; font-weight: 500;
  border: 1px solid var(--rule); color: transparent; background: transparent;
}
.ri-l-d { background: var(--accent); border-color: var(--accent); color: var(--paper); }
.ri-l-i { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
.ri-l-c { border-style: dashed; border-color: var(--muted); color: var(--muted); }

/* Coverage matrix */
.ri-matrix th, .ri-matrix td { white-space: nowrap; }
.ri-matrix td.num { text-align: center; font-family: var(--mono); }
.ri-matrix tbody th { font-weight: 500; }
.ri-sub { display: block; font-size: .78rem; color: var(--muted); font-weight: 400; white-space: normal; }
.ri-matrix .ri-sub { max-width: 22rem; }

.ri-legend { border: 1px solid var(--rule); background: var(--card); padding: .75rem 1rem; }
.ri-legend summary { cursor: pointer; font-weight: 500; }
.ri-legend-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-top: 1rem; }
.ri-legend h3 { font-size: 1rem; margin: 0 0 .5rem; }
.ri-legend dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .45rem .9rem; margin: 0 0 1rem; font-size: .88rem; }
.ri-legend dt { display: flex; align-items: center; gap: .4rem; }
.ri-legend dd { margin: 0; color: var(--muted); }
.ri-comp-list { margin: 0; padding-left: 1.2rem; font-size: .88rem; display: grid; gap: .2rem; }

/* Filters */
.ri-filter-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .9rem 1rem; margin-bottom: 1rem; }
.ri-filter-grid .ri-wide { grid-column: span 2; }
.ri-filters select, .ri-filters input, .ri-edit select, .ri-edit input, .ri-edit textarea {
  width: 100%; min-width: 0; font: inherit; font-size: .92rem; color: var(--ink);
  background: var(--paper); border: 1px solid var(--rule); padding: .45rem .55rem; border-radius: 0;
}
.ri-filters select[disabled], .ri-filters input[disabled] { opacity: .5; cursor: not-allowed; }
.ri-results-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: .75rem; }
.ri-results-head h2 { margin: 0; font-size: 1.3rem; }

/* Results table */
.ri-table td { vertical-align: top; }
.ri-doc { min-width: 18rem; }
.ri-code { display: block; font-family: var(--mono); font-size: .72rem; color: var(--muted); letter-spacing: .03em; }
.ri-title { font-weight: 500; color: var(--ink); }
.ri-title:hover { color: var(--accent); }
.nowrap { white-space: nowrap; }

/* Detail */
.ri-detail-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 2rem; align-items: start; }
.ri-main h2 { font-size: 1.15rem; margin: 1.5rem 0 .5rem; }
.ri-main h2:first-child { margin-top: 0; }
.ri-main p { margin: 0 0 .75rem; max-width: 70ch; }
.ri-points { margin: 0; padding-left: 1.2rem; display: grid; gap: .4rem; max-width: 70ch; }
.ri-comp-table tr.ri-none th, .ri-comp-table tr.ri-none td { color: var(--muted); }
.ri-comp-table td { vertical-align: middle; }
.ri-comp-table td:nth-child(2) { white-space: nowrap; }
.ri-side { display: grid; gap: 1rem; border: 1px solid var(--rule); background: var(--card); padding: .5rem; }
.ri-side .kv th { width: 38%; font-size: .82rem; }
.ri-side .kv td { font-size: .88rem; }
.ri-side-h { font-size: 1rem; margin: .5rem .75rem 0; }
.ri-related { padding: 0 .75rem; display: grid; gap: .6rem; font-size: .9rem; }
.ri-side-form { padding: 0 .75rem .5rem; }
.ri-detail .locked strong { color: var(--ink); }

/* Edit form */
.ri-row-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ri-fieldset { border: 1px solid var(--rule); padding: .75rem 1rem 1rem; margin: 0; min-width: 0; }
.ri-fieldset legend { font-weight: 500; font-size: .92rem; padding: 0 .3rem; }
.ri-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); gap: .35rem 1rem; }
.ri-edit textarea { resize: vertical; }
.ri-danger { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-top: 1rem; }

@media (max-width: 880px) {
  .ri-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ri-detail-grid, .ri-legend-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .ri-filter-grid, .ri-row-3 { grid-template-columns: minmax(0, 1fr); }
  .ri-filter-grid .ri-wide { grid-column: auto; }
  .ri-legend dl { grid-template-columns: minmax(0, 1fr); }
  .ri-doc { min-width: 14rem; }
}
@media print {
  .ri-filters, .ri-results-head .row-actions { display: none; }
}

/* Column widths: body text breaks anywhere (site.css), so keep short columns readable. */
.ri-table th, .ri-matrix th { overflow-wrap: normal; }
.ri-table .ri-mkts { min-width: 8.5rem; overflow-wrap: normal; }
.ri-table .ri-src { min-width: 7rem; overflow-wrap: normal; }
.ri-table td:nth-child(2) { white-space: nowrap; }
