:root {
  color-scheme: light;
  --ink: #111111;
  --ink-soft: #5a5a5a;
  --muted: #111111;
  --line: #111111;
  --panel: #FFFFFF;
  --wash: #FFFFFF;
  --black: #111111;
  --white: #FFFFFF;
  --red: #BF0A30;
  --yellow: #FEAE00;
  --blue: #143674;
  --accent: var(--branch-accent);
  --accent-dark: var(--branch-accent);
  --warning: var(--yellow);
  --warning-bg: var(--white);
  --branch-accent: var(--blue);
  --branch-focus: var(--yellow);
  --branch-alert: var(--red);
  --branch-soft: rgba(20, 54, 116, 0.08);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
  color: var(--ink);
  background:
    radial-gradient(circle at 65% -20%, rgba(20, 54, 116, 0.08), transparent 55%),
    radial-gradient(circle at -5% 120%, rgba(254, 174, 0, 0.06), transparent 45%),
    var(--wash);
}

body.theme-judicial {
  --branch-accent: var(--red);
  --branch-focus: var(--yellow);
  --branch-alert: var(--blue);
  --branch-soft: rgba(191, 10, 48, 0.1);
}

body.theme-legislative {
  --branch-accent: var(--blue);
  --branch-focus: var(--red);
  --branch-alert: var(--yellow);
  --branch-soft: rgba(20, 54, 116, 0.09);
}

body.theme-executive {
  --branch-accent: var(--yellow);
  --branch-focus: var(--blue);
  --branch-alert: var(--red);
  --branch-soft: rgba(254, 174, 0, 0.12);
}

a {
  color: var(--accent);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible {
  outline: 3px solid var(--warning);
  outline-offset: 3px;
}

.skip-link {
  background: var(--accent-dark);
  color: var(--white);
  left: 12px;
  padding: 10px 12px;
  position: absolute;
  top: -48px;
  z-index: 10;
}

.skip-link:focus {
  top: 12px;
}

.wrap {
  width: min(1120px, calc(100% - 32px));
  margin: 0 auto;
}

.site-header {
  background: linear-gradient(180deg, #ffffff, #fafafe);
  border-bottom: 1px solid var(--line);
  box-shadow: inset 0 1px #ffffff, 0 1px 12px rgba(17, 17, 17, 0.08);
}

.header-grid {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 0;
}

.brand {
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  text-decoration: none;
}

.brand-wordmark {
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 0;
  align-items: stretch;
  line-height: 1;
  padding: 0.02rem;
  border-radius: 0.72rem;
  box-shadow: 0 10px 24px rgba(17, 17, 17, 0.12), inset 0 0 0 1px rgba(255, 255, 255, 0.45);
  overflow: hidden;
  text-transform: uppercase;
  font-family: "Inter", "Segoe UI", "SF Pro Text", system-ui, sans-serif;
  white-space: nowrap;
  letter-spacing: 0.02em;
  background: linear-gradient(180deg, #ffffff, #f3f3f7);
}

.brand-segment {
  display: inline-block;
  position: relative;
  padding: 0.11rem 0.34rem 0.14rem;
  letter-spacing: 0.035em;
  font-weight: 760;
  text-rendering: optimizeLegibility;
  line-height: 1;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  border-bottom: 1px solid rgba(17, 17, 17, 0.2);
}

.brand-segment + .brand-segment {
  margin-left: -1px;
}

.brand-live {
  border-radius: 0.62rem 0 0 0.62rem;
}

.brand-legal {
  border-radius: 0 0.62rem 0.62rem 0;
}

.brand-live,
.brand-die {
  background: linear-gradient(180deg, #d41134, var(--red));
  color: var(--white);
  border-right: 1px solid #8f0821;
}

.brand-free,
.brand-legal {
  background: linear-gradient(180deg, #20408a, var(--blue));
  color: var(--white);
  border-left: 1px solid rgba(255, 255, 255, 0.28);
  border-right: 1px solid #0c2854;
}

.brand-or {
  background: linear-gradient(180deg, #ffea9f, var(--yellow));
  color: var(--ink);
  border-left: 1px solid rgba(17, 17, 17, 0.35);
  border-right: 1px solid #9a6f00;
}

nav {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  align-items: flex-start;
}

nav a,
.nav-menu > summary {
  color: var(--red);
  font-weight: 650;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  padding-bottom: 4px;
  transition: border-color 120ms ease, color 120ms ease;
}

nav a:hover,
nav a:focus-visible,
.nav-menu > summary:hover,
.nav-menu > summary:focus-visible {
  color: #8f0821;
  border-bottom-color: #8f0821;
}

.nav-menu {
  position: relative;
}

.nav-menu > summary {
  cursor: pointer;
  list-style: none;
}

.nav-menu > summary::-webkit-details-marker {
  display: none;
}

.nav-menu > summary::after {
  content: "v";
  margin-left: 5px;
  font-size: .75em;
}

.nav-menu[open] > summary::after {
  content: "^";
}

.nav-menu-panel {
  position: absolute;
  z-index: 20;
  top: calc(100% + 8px);
  left: 0;
  min-width: 220px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--white);
  box-shadow: 0 12px 30px rgba(17, 24, 39, 0.14);
  display: grid;
  gap: 8px;
}

.nav-menu-panel a {
  display: block;
  padding: 6px 4px;
  border-bottom-width: 1px;
}

.disclaimer-banner {
  background: var(--ink);
  color: var(--white);
  font-size: .92rem;
}

.disclaimer-banner .wrap {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  padding: 10px 0;
}

.page {
  padding: 28px 0 44px;
}

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 460px);
  gap: 24px;
  align-items: end;
  margin-bottom: 24px;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  font-size: clamp(2rem, 3vw, 3.3rem);
  line-height: 1.05;
  margin-bottom: 12px;
}

h2 {
  font-size: 1.25rem;
}

.panel,
.document {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 5px 18px rgba(17, 17, 17, 0.05);
  padding: 22px;
  margin-bottom: 20px;
}

.flush {
  margin-top: 20px;
  margin-bottom: 0;
}

.inline-disclaimer,
.warning {
  border-left: 1px solid var(--ink);
  background: #ffffff;
  padding: 10px 12px;
  color: var(--ink-soft);
}

.inline-disclaimer a,
.warning a {
  color: var(--branch-accent);
}

.inline-disclaimer strong,
.warning strong {
  color: var(--ink);
}

.source-note {
  color: var(--ink-soft);
}

.bill-status-banner {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 4px solid var(--branch-accent);
  border-radius: 6px;
  color: var(--ink);
  display: inline-block;
  font-size: 1rem;
  margin: 0 0 14px;
  padding: 8px 12px;
}

.bill-status-banner strong {
  color: var(--ink);
}

.nhlap-help-band {
  margin: 0 0 18px;
}

.nhlap-help {
  border-left: 4px solid var(--branch-accent);
  margin-bottom: 0;
}

.nhlap-help h2 {
  margin-bottom: 8px;
}

.nhlap-help-note {
  font-size: 0.95rem;
}

.nhlap-help-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-bottom: 0;
}

.nhlap-help-actions > a:first-child {
  font-weight: 700;
}

.metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}

.metrics article {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: inset 0 1px 0 rgba(17, 17, 17, 0.04);
  padding: 16px;
}

.metrics strong {
  display: block;
  font-size: 1.6rem;
  color: var(--branch-accent);
}

.metrics span,
.record-list span,
.result-list span,
.muted {
  color: var(--muted);
}

.metrics a {
  color: inherit;
  display: block;
  text-decoration: none;
}

.metrics a:hover span {
  color: var(--branch-focus);
  text-decoration: underline;
}

.searchbar label {
  font-weight: 700;
}

.searchbar .search-row,
.filter-form {
  margin-bottom: 12px;
}

.searchbar .search-row {
  display: flex;
  gap: 8px;
  align-items: end;
}

input,
select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px 10px;
  font: inherit;
  background: var(--white);
}

.filter-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(140px, 1fr));
  gap: 12px;
  margin: 12px 0;
}

.filter-grid label,
.search-row label {
  display: grid;
  gap: 6px;
  font-size: .9rem;
  font-weight: 700;
}

.court-rules-page h1 {
  margin-bottom: 10px;
}

.court-rules-search {
  display: grid;
  gap: 8px;
  margin: 20px 0;
}

.court-rules-search label {
  font-weight: 800;
}

.court-rule-groups {
  display: grid;
  gap: 12px;
}

.court-rule-group,
.court-rule-set,
.court-rule-section,
.court-rule-item {
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel);
}

.court-rule-set,
.court-rule-section,
.court-rule-item {
  margin-top: 12px;
}

.court-rule-set {
  border-left: 4px solid var(--branch-accent);
}

.court-rule-section {
  border-left: 4px solid var(--branch-focus);
}

.court-rule-item {
  border-color: rgba(17, 17, 17, .45);
  border-left: 4px solid var(--line);
}

.court-rule-group > summary,
.court-rule-set > summary,
.court-rule-section > summary,
.court-rule-item > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  list-style: none;
  min-height: 48px;
  padding: 10px 12px 10px 48px;
  position: relative;
  cursor: pointer;
  font-weight: 800;
  transition: background-color .16s ease, box-shadow .16s ease;
}

.court-rule-group > summary::-webkit-details-marker,
.court-rule-set > summary::-webkit-details-marker,
.court-rule-section > summary::-webkit-details-marker,
.court-rule-item > summary::-webkit-details-marker {
  display: none;
}

.court-rule-group > summary::before,
.court-rule-set > summary::before,
.court-rule-section > summary::before,
.court-rule-item > summary::before {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--branch-accent);
  content: "";
  height: 26px;
  left: 12px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: background-color .16s ease, border-color .16s ease;
  width: 26px;
}

.court-rule-group > summary::after,
.court-rule-set > summary::after,
.court-rule-section > summary::after,
.court-rule-item > summary::after {
  border-bottom: 2px solid currentColor;
  border-right: 2px solid currentColor;
  color: var(--branch-accent);
  content: "";
  height: 8px;
  left: 20px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%) rotate(-45deg);
  transform-origin: 60% 60%;
  transition: transform .18s ease, color .16s ease;
  width: 8px;
}

.court-rule-group[open] > summary::before,
.court-rule-set[open] > summary::before,
.court-rule-section[open] > summary::before,
.court-rule-item[open] > summary::before {
  background: var(--branch-accent);
  border-color: var(--branch-accent);
}

.court-rule-group[open] > summary::after,
.court-rule-set[open] > summary::after,
.court-rule-section[open] > summary::after,
.court-rule-item[open] > summary::after {
  color: var(--white);
  transform: translateY(-58%) rotate(45deg);
}

.court-rule-group > summary:hover,
.court-rule-group > summary:focus-visible,
.court-rule-set > summary:hover,
.court-rule-set > summary:focus-visible,
.court-rule-section > summary:hover,
.court-rule-section > summary:focus-visible,
.court-rule-item > summary:hover,
.court-rule-item > summary:focus-visible {
  background: color-mix(in srgb, var(--branch-soft) 58%, var(--panel));
  box-shadow: inset 3px 0 0 var(--branch-accent);
  outline: none;
}

.court-rule-group > summary {
  background: var(--branch-soft);
}

.court-rule-set > summary {
  font-size: 1.02rem;
}

.court-rule-section > summary {
  background: rgba(17, 17, 17, .025);
}

.court-rule-item > summary {
  align-items: start;
  line-height: 1.25;
}

.court-rule-set > summary,
.court-rule-section > summary {
  border-bottom: 1px solid transparent;
}

.court-rule-group[open] > summary,
.court-rule-set[open] > summary,
.court-rule-section[open] > summary,
.court-rule-item[open] > summary {
  border-bottom: 1px solid var(--line);
}

.court-rule-group summary span:last-child,
.court-rule-set summary span:last-child,
.court-rule-section summary span:last-child {
  color: var(--muted);
  flex: 0 0 auto;
  font-size: .86rem;
  font-weight: 700;
}

.court-rule-group-body,
.court-rule-set-meta,
.court-rule-list,
.court-rule-text {
  padding: 12px;
}

.court-rule-set-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  justify-content: space-between;
  padding-bottom: 0;
  color: var(--muted);
  font-size: .92rem;
  font-weight: 700;
}

.court-rule-set-meta a {
  font-weight: 800;
}

.court-rule-text {
  font-family: inherit;
  font-size: .98rem;
  line-height: 1.58;
  overflow-wrap: anywhere;
}

.court-rule-text * {
  font-family: inherit;
  font-size: inherit;
}

.court-rule-body {
  display: grid;
  gap: 10px;
}

.court-rule-text p,
.court-rule-text ul,
.court-rule-text ol,
.court-rule-text table,
.court-rule-text blockquote {
  margin: 0 0 12px;
}

.court-rule-text p {
  text-indent: 0;
}

.court-rule-text ol,
.court-rule-text ul {
  padding-left: 28px;
}

.court-rule-text li + li {
  margin-top: 6px;
}

.court-rule-comments {
  border-top: 2px solid var(--line);
  background: rgba(17, 17, 17, .035);
  margin-top: 18px;
  padding: 14px 16px;
}

.court-rule-comments h4 {
  color: var(--ink);
  font-size: .88rem;
  letter-spacing: .04em;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.court-rule-comments p:first-of-type {
  font-weight: 800;
}

.court-rule-comments p,
.court-rule-comments li {
  color: var(--ink-soft);
}

.court-rule-text table {
  border-collapse: collapse;
  display: block;
  max-width: 100%;
  overflow-x: auto;
}

.court-rule-text th,
.court-rule-text td {
  border: 1px solid var(--line);
  padding: 6px 8px;
  text-align: left;
  vertical-align: top;
}

button,
.actions a {
  border: 0;
  border-radius: 6px;
  background: var(--accent);
  color: var(--white);
  font: inherit;
  font-weight: 700;
  padding: 9px 13px;
  text-decoration: none;
  cursor: pointer;
}

button:hover,
.actions a:hover {
  background: var(--accent-dark);
  filter: brightness(0.92);
}

.record-list,
.result-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.record-list li,
.result-list li {
  border-top: 1px solid var(--line);
  padding: 12px 0;
}

.record-list li:first-child,
.result-list li:first-child {
  border-top: 0;
}

.reporter-shelf-grid {
  align-items: start;
  display: grid;
  gap: 28px;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
}

.reporter-shelf-column h2:first-child {
  margin-top: 0;
}

.reporter-volume-shelf {
  min-width: 0;
}

.reporter-shelf {
  display: grid;
  gap: 10px;
  margin-bottom: 24px;
}

.reporter-range,
.reporter-year,
.reporter-volume {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0;
}

.reporter-range > summary,
.reporter-year > summary,
.reporter-volume > summary {
  color: var(--branch-accent);
  cursor: pointer;
  font-weight: 800;
  list-style-position: inside;
  padding: 10px 12px;
}

.reporter-year > summary,
.reporter-volume > summary {
  font-weight: 700;
}

.reporter-range > summary a,
.reporter-year > summary a,
.reporter-volume > summary a {
  color: var(--branch-accent);
}

.reporter-year-stack {
  display: grid;
  gap: 8px;
  padding: 0 12px 12px;
}

.reporter-link-list {
  display: grid;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0 12px 12px;
}

.reporter-link-list li {
  display: grid;
  gap: 2px;
}

.reporter-link-list span {
  color: var(--muted);
  font-size: .9rem;
}

.reporter-year-list a,
.reporter-year-list strong {
  font-weight: 700;
}

.reporter-case-list {
  display: block;
  margin: 0;
  padding: 0 12px 12px 34px;
}

.reporter-case-list li {
  display: list-item;
  line-height: 1.25;
  min-width: 0;
}

.reporter-case-list li + li {
  margin-top: 5px;
}

.reporter-case-list a {
  font-size: .92rem;
  font-weight: 500;
  overflow-wrap: anywhere;
}

.reporter-empty-list {
  color: var(--muted);
  font-size: .92rem;
  margin: 0;
  padding: 0 12px 12px 34px;
}

.justice-profile-header {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

.attorney-profile-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  gap: 22px;
  align-items: start;
}

.justice-photo {
  display: grid;
  gap: 8px;
}

.justice-photo img,
.justice-photo-placeholder {
  width: 180px;
  aspect-ratio: 1;
  border: 1px solid var(--line);
  border-radius: 8px;
  object-fit: cover;
  background: var(--branch-soft);
}

.justice-photo-placeholder {
  display: grid;
  place-items: center;
  color: var(--branch-accent);
  font-size: 4rem;
  font-weight: 800;
}

.justice-photo span {
  color: var(--muted);
  font-size: .88rem;
}

.justice-profile-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(110px, 1fr));
  gap: 10px;
  margin: 16px 0;
}

.attorney-profile-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(120px, 1fr));
  gap: 10px;
  margin: 0;
}

.justice-appointment-facts {
  display: grid;
  gap: 6px;
  margin: 14px 0;
}

.justice-appointment-facts div {
  display: grid;
  grid-template-columns: minmax(96px, max-content) minmax(0, 1fr);
  gap: 10px;
  align-items: baseline;
}

.justice-appointment-facts dt {
  color: var(--muted);
  font-size: .85rem;
}

.justice-appointment-facts dd {
  margin: 0;
}

.justice-profile-stats div {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
}

.attorney-profile-stats div {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
}

.justice-profile-stats dt {
  color: var(--muted);
  font-size: .85rem;
}

.attorney-profile-stats dt {
  color: var(--muted);
  font-size: .85rem;
}

.justice-profile-stats dd {
  margin: 0;
  color: var(--branch-accent);
  font-size: 1.45rem;
  font-weight: 800;
}

.attorney-profile-stats dd {
  margin: 0;
  color: var(--branch-accent);
  font-size: 1.45rem;
  font-weight: 800;
}

.attorney-profile-stats .attorney-wins-stat {
  border-color: color-mix(in srgb, var(--blue) 68%, var(--line));
}

.attorney-profile-stats .attorney-wins-stat dd {
  color: var(--blue);
}

.profile-outcome-panel {
  margin-top: 18px;
}

.profile-outcome-summary {
  display: grid;
  gap: 12px;
}

.profile-outcome-heading h2 {
  margin: 0 0 4px;
}

.profile-outcome-heading p {
  margin: 0;
}

.profile-outcome-bar {
  display: flex;
  width: 100%;
  min-height: 18px;
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
  background: color-mix(in srgb, var(--paper) 72%, var(--branch-soft));
}

.profile-outcome-segment {
  min-width: 7px;
}

.profile-outcome-won {
  background: #2F7D59;
}

.profile-outcome-lost {
  background: #B84A4A;
}

.profile-outcome-mixed {
  background: #9B6B1F;
}

.profile-outcome-no-order {
  background: #586A7A;
}

.profile-outcome-unscored {
  background: #8A7893;
}

.profile-outcome-counts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
  margin: 0;
}

.profile-outcome-counts div {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
}

.profile-outcome-counts dt {
  display: flex;
  gap: 7px;
  align-items: center;
  color: var(--muted);
  font-size: .85rem;
}

.profile-outcome-counts dd {
  margin: 3px 0 0;
  color: var(--branch-accent);
  font-size: 1.4rem;
  font-weight: 800;
}

.profile-outcome-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex: 0 0 9px;
}

.profile-outcome-note {
  margin: 0;
  font-size: .9rem;
}

.legislator-official-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  margin: 0 0 18px;
}

.legislator-official-grid div {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
}

.legislator-official-grid dt {
  color: var(--muted);
  font-size: .85rem;
}

.legislator-official-grid dd {
  margin: 0;
}

.legislator-official-list li {
  align-items: baseline;
}

.legislator-bio-sections {
  display: grid;
  gap: 14px;
}

.legislator-bio-sections h4 {
  margin: 0 0 4px;
}

.legislator-bio-sections p {
  margin: 0;
}

.justice-profile-layout {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}

.attorney-profile-layout {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}

.justice-outline {
  position: sticky;
  top: 16px;
}

.attorney-outline {
  position: sticky;
  top: 16px;
}

.justice-outline h2 {
  margin-bottom: 12px;
}

.attorney-outline h2 {
  margin-bottom: 12px;
}

.justice-outline nav {
  display: grid;
  gap: 8px;
}

.attorney-outline nav {
  display: grid;
  gap: 8px;
}

.justice-outline a {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px 10px;
  color: var(--ink);
  text-decoration: none;
}

.attorney-outline a {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px 10px;
  color: var(--ink);
  text-decoration: none;
}

.justice-outline a:hover,
.justice-outline a:focus-visible {
  border-color: var(--branch-accent);
  color: var(--branch-accent);
}

.attorney-outline a:hover,
.attorney-outline a:focus-visible {
  border-color: var(--branch-accent);
  color: var(--branch-accent);
}

.justice-outline span {
  color: var(--muted);
  font-weight: 700;
}

.attorney-outline span {
  color: var(--muted);
  font-weight: 700;
}

.justice-profile-records {
  min-width: 0;
}

.attorney-profile-records {
  min-width: 0;
}

.attorney-list strong,
.attorney-case-list strong {
  overflow-wrap: anywhere;
}

.attorney-aliases {
  margin-top: 4px;
}

details.attorney-case-group {
  border: 1px solid var(--line);
  border-radius: 8px;
  margin-top: 10px;
  overflow: hidden;
  background: color-mix(in srgb, var(--paper) 92%, var(--branch-soft));
}

details.attorney-case-group:first-child {
  margin-top: 0;
}

summary.attorney-case-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 14px;
  align-items: center;
  padding: 12px 14px;
  cursor: pointer;
  list-style: none;
  transition: background-color .15s ease, border-color .15s ease;
}

summary.attorney-case-heading::-webkit-details-marker {
  display: none;
}

summary.attorney-case-heading::after {
  content: "";
  width: 9px;
  height: 9px;
  border-right: 2px solid var(--branch-accent);
  border-bottom: 2px solid var(--branch-accent);
  transform: rotate(45deg);
  transform-origin: 55% 55%;
  transition: transform .15s ease;
}

details.attorney-case-group[open] > summary.attorney-case-heading {
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--branch-soft) 38%, var(--paper));
}

details.attorney-case-group[open] > summary.attorney-case-heading::after {
  transform: rotate(225deg);
}

summary.attorney-case-heading:hover,
summary.attorney-case-heading:focus-visible {
  background: color-mix(in srgb, var(--branch-soft) 46%, var(--paper));
}

summary.attorney-case-heading strong {
  min-width: 0;
}

summary.attorney-case-heading span {
  color: var(--muted);
  font-size: .92rem;
  grid-column: 1;
}

.attorney-case-records {
  margin: 0;
  padding: 10px 18px 12px 34px;
}

.attorney-case-records li {
  border: 0;
  padding: 4px 0;
}

.attorney-case-action {
  color: var(--muted);
  display: block;
}

.floating-return-top {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 20;
  border: 1px solid color-mix(in srgb, var(--branch-accent) 70%, var(--line));
  border-radius: 999px;
  padding: 9px 13px;
  background: var(--branch-accent);
  color: var(--paper);
  box-shadow: var(--shadow);
  font-weight: 800;
  text-decoration: none;
}

.floating-return-top:hover,
.floating-return-top:focus-visible {
  background: var(--ink);
  color: var(--paper);
}

.justice-seat-map {
  border-top: 1px solid var(--line);
  margin-top: 18px;
  padding-top: 18px;
}

.justice-seat-scroll {
  overflow-x: auto;
  padding-bottom: 10px;
  scrollbar-color: var(--branch-accent) var(--branch-soft);
}

.justice-seat-canvas {
  min-width: max(100%, var(--justice-timeline-min-width, 100%));
}

.justice-seat-timeline {
  display: grid;
  gap: 12px;
  margin: 12px 0 18px;
}

.justice-seat-eras,
.justice-seat-axis {
  display: grid;
  grid-template-columns: 165px minmax(0, 1fr);
  gap: 14px;
  align-items: end;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 800;
  margin-top: 12px;
  text-transform: uppercase;
}

.justice-seat-eras-label,
.justice-seat-axis-label {
  position: sticky;
  left: 0;
  z-index: 4;
  background: var(--panel);
  color: var(--ink);
  text-align: left;
}

.justice-seat-eras {
  align-items: stretch;
  margin-top: 12px;
}

.justice-seat-eras-track {
  position: relative;
  min-height: 54px;
}

.justice-seat-era {
  --era-color: #52616B;
  box-sizing: border-box;
  position: absolute;
  top: 0;
  bottom: 0;
  display: grid;
  align-content: center;
  gap: 2px;
  border: 1px solid rgba(82, 97, 107, .35);
  border-left: 4px solid var(--era-color);
  border-radius: 6px;
  background: rgba(82, 97, 107, .08);
  color: var(--ink);
  padding: 7px 10px;
  overflow: hidden;
}

.justice-seat-era.is-break-era {
  --era-color: #8A4F12;
  background: rgba(138, 79, 18, .09);
}

.justice-seat-era.is-current-era {
  --era-color: var(--branch-accent);
  background: rgba(20, 54, 116, .08);
}

.justice-seat-era strong,
.justice-seat-era small {
  display: block;
  line-height: 1.05;
  white-space: nowrap;
}

.justice-seat-era strong {
  color: var(--era-color);
  font-size: .74rem;
  font-weight: 850;
}

.justice-seat-era small {
  color: var(--muted);
  font-size: .64rem;
  font-weight: 650;
  text-transform: none;
}

.justice-seat-axis-track {
  position: relative;
  min-height: 34px;
  border-bottom: 1px solid var(--line);
}

.justice-seat-axis-track span {
  position: absolute;
  bottom: 10px;
  display: block;
  transform: translateX(-50%);
  white-space: nowrap;
}

.justice-seat-axis-track span::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  height: 10px;
  border-left: 1px solid var(--line);
}

.justice-seat-axis-mark.is-year {
  bottom: 0;
  width: 1px;
  height: 10px;
  color: transparent;
  font-size: 0;
}

.justice-seat-axis-mark.is-year::after {
  bottom: 0;
  height: 6px;
  border-left-color: rgba(50, 60, 72, .28);
}

.justice-seat-axis-mark.is-decade {
  color: var(--ink);
}

.justice-seat-axis-mark.is-decade::after {
  border-left-color: rgba(15, 23, 42, .58);
}

.justice-seat-milestones {
  display: grid;
  grid-template-columns: 165px minmax(0, 1fr);
  gap: 14px;
  margin: 12px 0 14px;
  min-height: 106px;
}

.justice-seat-milestones-label {
  position: sticky;
  left: 0;
  z-index: 4;
  align-self: start;
  background: var(--panel);
  color: var(--ink);
  font-size: .82rem;
  font-weight: 800;
  text-transform: uppercase;
}

.justice-seat-milestones-track {
  position: relative;
  min-height: 106px;
  border-bottom: 1px solid var(--line);
}

.justice-seat-milestone {
  --milestone-color: #52616B;
  position: absolute;
  top: 0;
  width: 260px;
  border-left: 2px solid var(--milestone-color);
  padding: 2px 8px 8px;
  transform: translateX(-1px);
}

.justice-seat-milestone.is-origin {
  transform: none;
}

.justice-seat-milestone.is-break {
  --milestone-color: #8A4F12;
  width: 280px;
  border-left: 0;
  border-right: 2px solid var(--milestone-color);
  padding-left: 0;
  padding-right: 8px;
  text-align: right;
  transform: translateX(-100%);
}

.justice-seat-milestone.is-reorganization {
  --milestone-color: var(--branch-accent);
  width: 280px;
  border-left: 0;
  border-right: 3px solid var(--milestone-color);
  padding-left: 0;
  padding-right: 8px;
  text-align: right;
  transform: translateX(-100%);
}

.justice-seat-milestone strong,
.justice-seat-milestone span,
.justice-seat-milestone small {
  display: block;
  line-height: 1.12;
}

.justice-seat-milestone strong {
  color: var(--milestone-color);
  font-size: .74rem;
  font-weight: 850;
  text-transform: uppercase;
}

.justice-seat-milestone span {
  color: var(--ink);
  font-size: .84rem;
  font-weight: 800;
}

.justice-seat-milestone small {
  color: var(--muted);
  font-size: .68rem;
  font-weight: 650;
}

.justice-seat-row {
  --seat-color: var(--branch-accent);
  --seat-soft: var(--branch-soft);
  display: grid;
  grid-template-columns: 165px minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  border-left: 6px solid var(--seat-color);
  padding: 8px 0 8px 12px;
}

.justice-seat-label {
  display: grid;
  gap: 2px;
  min-width: 0;
  position: sticky;
  left: 0;
  z-index: 3;
  background: var(--panel);
  box-shadow: 12px 0 18px -18px rgba(15, 23, 42, .6);
}

.justice-seat-label strong {
  color: var(--seat-color);
}

.justice-seat-label a,
.justice-seat-label span {
  color: var(--muted);
  font-size: .9rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.justice-seat-label a:hover,
.justice-seat-label a:focus-visible {
  color: var(--seat-color);
}

.justice-seat-track {
  min-height: var(--track-min-height, 118px);
  position: relative;
  background: transparent;
}

.justice-seat-track::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 48px;
  border-top: 1px solid var(--seat-color);
  opacity: .34;
}

.justice-seat-break {
  position: absolute;
  top: 0;
  bottom: 0;
  border-left: 1px dashed rgba(50, 60, 72, .35);
  transform: translateX(-1px);
  z-index: 0;
}

.justice-seat-year-mark {
  position: absolute;
  top: 0;
  bottom: 0;
  border-left: 1px solid rgba(50, 60, 72, .12);
  transform: translateX(-1px);
  z-index: 0;
}

.justice-seat-year-mark.is-decade {
  border-left-color: rgba(50, 60, 72, .24);
}

.justice-seat-break.is-break {
  border-left: 2px solid rgba(138, 79, 18, .7);
}

.justice-seat-break.is-reorganization {
  border-left: 4px solid rgba(20, 54, 116, .72);
  z-index: 1;
}

.justice-seat-block {
  display: grid;
  gap: 2px;
  border: 1px solid var(--seat-color);
  border-left-width: 5px;
  border-radius: 8px;
  background:
    linear-gradient(90deg, var(--seat-soft), rgba(255, 255, 255, .9) 68%),
    var(--panel);
  box-shadow: 0 5px 14px rgba(15, 23, 42, .06);
  padding: 7px 8px 12px;
  position: absolute;
  top: var(--block-top, 16px);
  z-index: 1;
  min-height: 72px;
  min-width: var(--block-min-width, 0);
  overflow: hidden;
  isolation: isolate;
  container-type: inline-size;
}

.justice-seat-block.is-current {
  border-color: var(--seat-color);
  box-shadow: inset 0 0 0 1px var(--seat-color), 0 5px 14px rgba(15, 23, 42, .06);
}

.justice-seat-block.is-selected {
  background:
    linear-gradient(90deg, var(--seat-soft), rgba(255, 255, 255, .76) 72%),
    var(--panel);
}

.justice-seat-block.is-era,
.justice-seat-block.is-event {
  border-left-width: 5px;
}

.justice-seat-block.is-event {
  background:
    linear-gradient(90deg, rgba(255, 255, 255, .98), var(--seat-soft)),
    var(--panel);
  box-shadow: 0 7px 18px rgba(15, 23, 42, .08);
}

.justice-seat-block.is-callout {
  --callout-width: 145px;
  border: 0;
  border-left: 2px solid var(--seat-color);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  min-height: 64px;
  min-width: 0;
  overflow: visible;
  padding: 0;
  z-index: 2;
}

.justice-seat-block.is-callout a,
.justice-seat-block.is-callout span,
.justice-seat-block.is-callout small {
  display: block;
  box-sizing: border-box;
  width: var(--callout-width);
  background: var(--panel);
  border-color: var(--seat-color);
  border-style: solid;
  border-width: 0 1px;
  padding-left: 7px;
  padding-right: 7px;
}

.justice-seat-block.is-callout a,
.justice-seat-block.is-callout span {
  border-top-width: 1px;
  border-left-width: 5px;
  border-radius: 7px 7px 0 0;
  color: var(--ink);
  font-size: .68rem;
  line-height: 1.05;
  padding-top: 6px;
  padding-bottom: 2px;
}

.justice-seat-block.is-callout small {
  border-bottom-width: 1px;
  border-left-width: 5px;
  border-radius: 0 0 7px 7px;
  font-size: .56rem;
  line-height: 1;
  padding-bottom: 7px;
}

.justice-seat-block.is-callout-left a,
.justice-seat-block.is-callout-left span,
.justice-seat-block.is-callout-left small {
  transform: translateX(calc(-100% - 8px));
}

.justice-seat-row a,
.justice-seat-row span {
  color: var(--ink);
  font-size: .86rem;
  font-weight: 700;
  line-height: 1.1;
  overflow-wrap: anywhere;
  position: relative;
  z-index: 1;
}

.justice-seat-row small {
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.1;
  position: relative;
  z-index: 1;
}

.justice-seat-block.is-narrow {
  padding-left: 6px;
  padding-right: 6px;
}

.justice-seat-block.is-narrow a,
.justice-seat-block.is-narrow span {
  font-size: .74rem;
  line-height: 1.05;
}

.justice-seat-block.is-narrow small {
  font-size: .64rem;
}

.justice-seat-block.is-tiny,
.justice-seat-block.is-hairline {
  border-left-width: 3px;
  gap: 1px;
  padding: 5px 4px 9px;
}

.justice-seat-block.is-tiny a,
.justice-seat-block.is-tiny span,
.justice-seat-block.is-hairline a,
.justice-seat-block.is-hairline span {
  font-size: .62rem;
  line-height: 1;
}

.justice-seat-block.is-tiny small,
.justice-seat-block.is-hairline small {
  font-size: .54rem;
  line-height: 1;
}

@container (max-width: 78px) {
  .justice-seat-block a,
  .justice-seat-block span {
    font-size: .68rem;
    line-height: 1.02;
  }

  .justice-seat-block small {
    font-size: .58rem;
    line-height: 1;
  }
}

@container (max-width: 48px) {
  .justice-seat-block {
    padding-left: 4px;
    padding-right: 4px;
  }

  .justice-seat-block a,
  .justice-seat-block span {
    font-size: .58rem;
  }

  .justice-seat-block small {
    font-size: .5rem;
  }
}

.justice-chief-span {
  position: absolute;
  top: 0;
  bottom: 0;
  height: auto;
  background: var(--seat-color);
  border-radius: 0;
  opacity: .24;
  pointer-events: none;
  z-index: 0;
}

.justice-seat-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0;
}

.justice-seat-badge {
  --seat-color: var(--branch-accent);
  --seat-soft: var(--branch-soft);
  display: inline-block;
  border: 1px solid var(--seat-color);
  border-radius: 999px;
  background: var(--seat-soft);
  color: var(--seat-color);
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.2;
  margin-right: 6px;
  padding: 2px 7px;
  white-space: nowrap;
}

.justice-seat-1 {
  --seat-color: #BF0A30;
  --seat-text: #BF0A30;
  --seat-soft: rgba(191, 10, 48, .14);
}

.justice-seat-2 {
  --seat-color: #FEAE00;
  --seat-text: #8A5A00;
  --seat-soft: rgba(254, 174, 0, .2);
}

.justice-seat-3 {
  --seat-color: #0B6B43;
  --seat-text: #0B6B43;
  --seat-soft: rgba(11, 107, 67, .14);
}

.justice-seat-4 {
  --seat-color: #143674;
  --seat-text: #143674;
  --seat-soft: rgba(20, 54, 116, .14);
}

.justice-seat-5 {
  --seat-color: #6D3A8A;
  --seat-text: #6D3A8A;
  --seat-soft: rgba(109, 58, 138, .14);
}

.justice-historical-row {
  --seat-color: #52616B;
  --seat-text: #52616B;
  --seat-soft: rgba(82, 97, 107, .14);
}

.justice-transition-row {
  --seat-color: #8A4F12;
  --seat-text: #8A4F12;
  --seat-soft: rgba(138, 79, 18, .15);
}

.justice-vertical-timeline {
  border-top: 1px solid var(--line);
  margin-top: 18px;
  padding-top: 18px;
}

.justice-vertical-era {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.justice-vertical-era-header {
  display: grid;
  gap: 4px;
  border-left: 5px solid #52616B;
  padding-left: 12px;
}

.justice-vertical-era.is-break-era .justice-vertical-era-header {
  border-left-color: #8A4F12;
}

.justice-vertical-era.is-current-era .justice-vertical-era-header {
  border-left-color: var(--branch-accent);
}

.justice-vertical-era-header span {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 850;
  letter-spacing: 0;
  text-transform: uppercase;
}

.justice-vertical-era-header h3 {
  margin: 0;
}

.justice-vertical-era-header p {
  margin: 0;
  max-width: 82ch;
  color: var(--muted);
}

.justice-vertical-duration {
  --timeline-label-row-height: 36px;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 10px;
  min-width: 0;
}

.justice-vertical-axis {
  border-right: 2px solid var(--line);
  display: grid;
  grid-template-rows: var(--timeline-label-row-height) var(--section-height);
  min-height: calc(var(--timeline-label-row-height) + var(--section-height));
}

.justice-vertical-axis-spacer {
  min-height: var(--timeline-label-row-height);
}

.justice-vertical-axis-track {
  min-height: var(--section-height);
  position: relative;
}

.justice-vertical-year-mark {
  position: absolute;
  right: -6px;
  left: 0;
  min-height: 1px;
}

.justice-vertical-year-mark::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 10px;
  border-top: 1px solid var(--line);
}

.justice-vertical-year-mark.is-boundary::before,
.justice-vertical-year-mark.is-decade::before,
.justice-vertical-year-mark.is-present-day::before {
  width: 18px;
  border-top-width: 2px;
}

.justice-vertical-year-mark strong {
  display: inline-block;
  max-width: 76px;
  color: var(--ink);
  font-size: .76rem;
  font-weight: 850;
  line-height: 1;
  overflow-wrap: anywhere;
  transform: translateY(-50%);
}

.justice-vertical-year-mark.is-year strong {
  display: none;
}

.justice-vertical-year-mark.is-present-day strong {
  color: var(--branch-accent);
  font-size: .7rem;
  text-transform: uppercase;
  transform: none;
}

.justice-vertical-track-scroll {
  min-width: 0;
  overflow-x: visible;
  padding-bottom: 4px;
}

.justice-vertical-track-grid {
  display: grid;
  grid-template-columns: repeat(var(--track-count), minmax(0, 1fr));
  gap: 7px;
  min-width: 0;
}

.justice-vertical-duration-grid {
  min-height: var(--section-height);
}

.justice-vertical-track-label-row {
  position: sticky;
  top: 0;
  z-index: 6;
  height: var(--timeline-label-row-height);
  margin-bottom: 0;
  background: rgba(255, 255, 255, .96);
}

.justice-vertical-duration-track {
  border-top: 4px solid var(--seat-color, var(--branch-accent));
  min-height: var(--section-height);
  min-width: 0;
  position: relative;
  background:
    linear-gradient(90deg, transparent calc(50% - 1px), var(--seat-soft, var(--branch-soft)) calc(50% - 1px), var(--seat-soft, var(--branch-soft)) calc(50% + 1px), transparent calc(50% + 1px)),
    linear-gradient(90deg, rgba(255, 255, 255, .88), var(--seat-soft, var(--branch-soft)), rgba(255, 255, 255, .88));
}

.justice-vertical-era.has-present-buffer .justice-vertical-duration-track {
  background:
    linear-gradient(to bottom, rgba(255, 255, 255, .96) 0, rgba(255, 255, 255, .96) 72px, transparent 72px),
    linear-gradient(90deg, transparent calc(50% - 1px), var(--seat-soft, var(--branch-soft)) calc(50% - 1px), var(--seat-soft, var(--branch-soft)) calc(50% + 1px), transparent calc(50% + 1px)),
    linear-gradient(90deg, rgba(255, 255, 255, .88), var(--seat-soft, var(--branch-soft)), rgba(255, 255, 255, .88));
}

.justice-vertical-track-gridlines {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

.justice-vertical-track-gridline {
  position: absolute;
  right: 0;
  left: 0;
  border-top: 1px solid rgba(15, 23, 42, .055);
}

.justice-vertical-track-gridline.is-decade,
.justice-vertical-track-gridline.is-boundary,
.justice-vertical-track-gridline.is-present-day {
  border-top-color: var(--line);
  border-top-width: 2px;
}

.justice-vertical-track-gridline.is-present-day {
  border-top-color: rgba(23, 105, 170, .3);
}

.justice-vertical-track-label {
  align-items: center;
  border-top: 4px solid var(--seat-color, var(--branch-accent));
  border-bottom: 1px solid var(--seat-soft, var(--branch-soft));
  background: rgba(255, 255, 255, .96);
  color: var(--seat-text, var(--seat-color, var(--branch-accent)));
  display: flex;
  font-size: .72rem;
  font-weight: 850;
  height: var(--timeline-label-row-height);
  line-height: 1.1;
  min-height: 0;
  padding: 6px 5px;
  text-transform: uppercase;
}

.justice-vertical-track-label span {
  display: block;
  overflow-wrap: anywhere;
}

.justice-vertical-card {
  border: 1px solid var(--line);
  border-left: 5px solid var(--seat-color, var(--branch-accent));
  border-radius: 8px;
  background:
    linear-gradient(90deg, var(--seat-soft, var(--branch-soft)), rgba(255, 255, 255, .94) 74%),
    var(--panel);
  box-shadow: 0 4px 12px rgba(15, 23, 42, .05);
  display: grid;
  gap: 4px;
  padding: 8px 9px;
  position: relative;
  z-index: 1;
}

.justice-vertical-duration-block {
  position: absolute;
  right: 3px;
  left: 3px;
  min-height: 26px;
  overflow: hidden;
}

.justice-vertical-duration-block.is-top-boundary {
  z-index: 5;
  min-height: 48px;
}

.justice-vertical-chief-marker {
  position: absolute;
  right: 0;
  left: 0;
  border-top: 1px solid var(--seat-color, var(--branch-accent));
  border-bottom: 1px solid var(--seat-color, var(--branch-accent));
  background: var(--seat-color, var(--branch-accent));
  opacity: .26;
  pointer-events: none;
  z-index: 0;
}

.justice-vertical-card.is-current {
  box-shadow: inset 0 0 0 1px var(--seat-color, var(--branch-accent)), 0 4px 12px rgba(15, 23, 42, .05);
}

.justice-vertical-card-head {
  display: grid;
  gap: 2px;
  position: relative;
  z-index: 1;
}

.justice-vertical-card-head a,
.justice-vertical-card-head span {
  color: var(--ink);
  font-size: .9rem;
  font-weight: 800;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.justice-vertical-card-head small {
  color: var(--seat-text, var(--seat-color, var(--branch-accent)));
  font-size: .68rem;
  font-weight: 850;
  line-height: 1.1;
  text-transform: uppercase;
}

.justice-name-compact {
  display: none;
}

.justice-vertical-card p {
  margin: 0;
  color: var(--muted);
  font-size: .7rem;
  font-weight: 650;
  line-height: 1.1;
  position: relative;
  z-index: 1;
}

.justice-vertical-chief {
  color: var(--ink) !important;
}

.justice-vertical-duration-block.is-brief p,
.justice-vertical-duration-block.is-short p,
.justice-vertical-duration-block.is-short small {
  display: none;
}

.justice-vertical-duration-block.is-brief .justice-name-full,
.justice-vertical-duration-block.is-short .justice-name-full {
  display: none;
}

.justice-vertical-duration-block.is-brief .justice-name-compact,
.justice-vertical-duration-block.is-short .justice-name-compact {
  display: inline;
}

.justice-vertical-duration-block.is-brief .justice-vertical-card-head a,
.justice-vertical-duration-block.is-brief .justice-vertical-card-head span,
.justice-vertical-duration-block.is-short .justice-vertical-card-head a,
.justice-vertical-duration-block.is-short .justice-vertical-card-head span {
  font-size: .78rem;
}

@media (max-width: 720px) {
  .justice-vertical-duration {
    --timeline-label-row-height: 34px;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 6px;
  }

  .justice-vertical-year-mark strong {
    max-width: 38px;
    font-size: .64rem;
  }

  .justice-vertical-track-grid {
    gap: 4px;
    grid-template-columns: repeat(var(--track-count), minmax(0, 1fr));
  }

  .justice-vertical-card {
    border-left-width: 3px;
    padding: 6px 5px;
  }

  .justice-vertical-card-head a,
  .justice-vertical-card-head span {
    font-size: .68rem;
  }

  .justice-vertical-card p {
    font-size: .6rem;
  }

  .justice-vertical-track-label {
    font-size: .58rem;
    min-height: 0;
    padding: 5px 2px;
  }

  .justice-vertical-duration-block {
    right: 2px;
    left: 2px;
  }

  .justice-vertical-duration-block.is-top-boundary {
    min-height: 54px;
  }

  .justice-vertical-duration-block .justice-name-full {
    display: none;
  }

  .justice-vertical-duration-block .justice-name-compact {
    display: inline;
  }
}

@media (max-width: 500px) {
  .justice-vertical-duration {
    --timeline-label-row-height: 32px;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 4px;
  }

  .justice-vertical-track-grid {
    gap: 3px;
    grid-template-columns: repeat(var(--track-count), minmax(0, 1fr));
  }

  .justice-vertical-year-mark strong {
    max-width: 30px;
    font-size: .58rem;
  }

  .justice-vertical-card-head a,
  .justice-vertical-card-head span {
    font-size: .58rem;
  }

  .justice-vertical-card-head small,
  .justice-vertical-card p {
    display: none;
  }

  .justice-vertical-card {
    border-left-width: 2px;
    padding: 4px 3px;
  }

  .justice-vertical-track-label {
    font-size: .5rem;
    padding-right: 1px;
    padding-left: 1px;
  }
}

.impact-badge {
  display: inline-block;
  margin-left: 6px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 2px 8px;
  color: var(--muted);
  background: var(--surface);
  font-size: 12px;
  font-weight: 650;
}

.impact-badge--effective {
  border-color: var(--branch-accent);
  color: var(--branch-accent);
}

.impact-badge--killed {
  border-color: var(--branch-focus);
  color: var(--branch-focus);
}

.impact-badge--pending {
  border-color: var(--branch-alert);
  color: var(--branch-alert);
}

.bill-chip-list,
.bill-topic-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: .65rem 0 1rem;
}

.bill-chip-list {
  list-style: none;
  padding: 0;
}

.bill-chip-list li,
.bill-topic-chip {
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--ink);
  display: inline-flex;
  gap: 6px;
  min-height: 32px;
  padding: 5px 10px;
  text-decoration: none;
}

.bill-chip-list small {
  color: var(--muted);
}

.bill-topic-chip {
  font-size: .9rem;
}

.bill-argument-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.bill-impact-list p,
.legislator-topic-group p {
  margin: .35rem 0 0;
}

.legislator-topic-group {
  border-top: 1px dashed var(--line);
  margin-top: .9rem;
  padding-top: .9rem;
}

.legislator-topic-group:first-of-type {
  border-top: 0;
  margin-top: .4rem;
  padding-top: 0;
}

.legislator-bill-view {
  margin-top: 18px;
}

.legislator-bill-view:first-of-type {
  margin-top: 0;
}

.legislator-bill-view h3 {
  margin-bottom: 10px;
}

details.legislator-topic-group > summary.attorney-case-heading {
  padding: 9px 14px;
}

details.legislator-topic-group[open] > summary.attorney-case-heading {
  background: color-mix(in srgb, var(--branch-soft) 24%, var(--paper));
}

details.legislator-topic-group[open] > summary.attorney-case-heading::after {
  transform: rotate(225deg);
}

.citation-group-list,
.citation-sub-list {
  margin-left: 18px;
}

.citation-group-list > li,
.citation-sub-list > li {
  border-top: 1px dashed var(--line);
}

.citation-group-list > li:first-child,
.citation-sub-list > li:first-child {
  border-top: 0;
}

.citation-pin-details {
  margin-top: 8px;
}

.citation-pin-details summary {
  cursor: pointer;
  font-size: 0.92rem;
  color: var(--branch-focus);
  font-weight: 650;
}

.citation-pin-table {
  width: 100%;
  margin-top: 8px;
  border-collapse: collapse;
}

.citation-pin-table th,
.citation-pin-table td {
  border: 1px solid var(--line);
  padding: 7px 8px;
  vertical-align: top;
}

.citation-pin-table th {
  background: var(--surface);
  text-align: left;
  color: var(--muted);
  font-weight: 650;
}

.citation-pin-table td.citation-pin-code {
  white-space: nowrap;
  font-family: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.citation-pin-table td:last-child {
  width: 100%;
}

.record-list a,
.result-list a {
  font-weight: 700;
  color: var(--branch-focus);
}

.citation-type-group {
  border-top: 1px solid var(--line);
  margin-top: 14px;
  padding-top: 14px;
}

.citation-type-group h3,
.citation-type-group h4 {
  color: var(--branch-accent);
  font-size: .95rem;
  margin: 0 0 6px;
}

.case-material {
  border-top: 1px solid var(--line);
  margin-top: 24px;
  padding-top: 18px;
}

.case-material h2 {
  margin-bottom: 4px;
}

.case-material-heading {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  justify-content: space-between;
}

.case-material-heading a,
.record-extra-details a {
  color: var(--branch-focus);
  font-weight: 700;
}

.case-material-note {
  color: var(--ink-soft);
  font-size: .94rem;
  margin-bottom: 10px;
}

.case-full-citation {
  color: var(--ink-soft);
  font-size: 1rem;
  font-weight: 700;
  margin: -4px 0 14px;
}

.case-records-heading {
  color: var(--ink);
  font-size: 1.16rem;
  margin: 22px 0 8px;
}

.case-decision-row {
  margin: 4px 0 14px;
}

.case-decision-badge {
  align-items: center;
  background: color-mix(in srgb, var(--surface) 88%, white);
  border: 1px solid var(--line);
  border-radius: 999px;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.03);
  color: var(--ink);
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  max-width: 100%;
  padding: 5px 10px;
}

.case-decision-badge strong {
  color: var(--ink-soft);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.2;
}

.case-decision-badge span {
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.25;
}

.case-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
}

.case-timeline-table {
  border-collapse: collapse;
  font-size: .94rem;
  width: 100%;
}

.case-timeline-table th,
.case-timeline-table td {
  border-top: 1px dashed var(--line);
  padding: 10px 8px;
  text-align: left;
  vertical-align: top;
}

.case-timeline-table thead th {
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: .78rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.case-timeline-table tbody tr:first-child > td {
  border-top-style: solid;
}

.case-timeline-table a,
.case-timeline-item > a,
.case-material-title {
  color: var(--branch-focus);
  font-weight: 700;
}

.case-material-date {
  color: var(--ink);
  min-width: 8.5rem;
  white-space: nowrap;
  width: 10rem;
}

.case-material-record {
  min-width: 16rem;
}

.case-material-kind {
  color: var(--muted);
  min-width: 8rem;
}

.case-material-party {
  color: var(--ink-soft);
  min-width: 9rem;
}

.case-material-status {
  color: var(--ink-soft);
  display: block;
  margin-top: 2px;
}

.case-material-pdf {
  min-width: 7rem;
}

.case-material-pdf a {
  display: inline-block;
  margin: 0 8px 4px 0;
}

.case-material-current-row {
  background: var(--branch-soft);
}

.case-material-lower-court-summary > td {
  background: color-mix(in srgb, var(--branch-soft) 58%, white);
}

.case-material-lower-court-group > summary {
  color: var(--branch-accent);
  cursor: pointer;
  font-weight: 700;
}

.case-timeline-subtable {
  font-size: .92rem;
  margin-top: 10px;
}

.case-timeline-subtable thead th,
.case-timeline-subtable th,
.case-timeline-subtable td {
  border-top-color: color-mix(in srgb, var(--line) 75%, white);
}

.case-timeline-item {
  border-top: 1px dashed var(--line);
  padding: 10px 0;
}

.case-timeline-item:first-child {
  border-top: 0;
}

.case-material-meta {
  color: var(--muted);
  display: block;
  font-size: .9rem;
  margin-top: 2px;
}

.case-material-current {
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--ink-soft);
  display: inline-block;
  font-size: .78rem;
  font-weight: 700;
  margin-left: 6px;
  padding: 1px 6px;
  vertical-align: 1px;
}

.case-timeline details summary {
  cursor: pointer;
}

.case-material-dropdown {
  border-top: 1px dashed var(--line);
  padding-top: 10px;
}

.case-material-dropdown > summary,
.record-extra-details > summary {
  color: var(--branch-accent);
  cursor: pointer;
  font-weight: 700;
}

.case-material-details {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.case-material-details a {
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--branch-focus);
  font-size: .9rem;
  font-weight: 700;
  padding: 5px 8px;
  text-decoration: none;
}

.case-material-details a:hover {
  background: var(--branch-soft);
}

@media (max-width: 720px) {
  .case-timeline-table,
  .case-timeline-table thead,
  .case-timeline-table tbody,
  .case-timeline-table tr,
  .case-timeline-table th,
  .case-timeline-table td {
    display: block;
  }

  .case-timeline-table thead {
    position: absolute;
    transform: translateY(-9999px);
  }

  .case-timeline-table tr {
    border-top: 1px dashed var(--line);
    padding: 8px 0;
  }

  .case-timeline-table tbody tr:first-child {
    border-top: 1px solid var(--line);
  }

  .case-timeline-table th,
  .case-timeline-table td {
    border-top: 0;
    padding: 3px 0;
  }

  .case-material-date,
  .case-material-record,
  .case-material-kind,
  .case-material-party,
  .case-material-pdf {
    min-width: 0;
    white-space: normal;
    width: auto;
  }

  .case-material-date {
    color: var(--ink-soft);
    font-size: .88rem;
    font-weight: 700;
  }

  .case-material-pdf {
    margin-top: 4px;
  }
}

.pdf-viewer-page {
  background: transparent;
  border: 0;
  box-shadow: none;
  margin-bottom: 0;
  padding: 0;
}

.pdf-viewer-header {
  margin-bottom: 14px;
}

.pdf-viewer-frame {
  background: var(--white);
  border: 1px solid var(--line);
  display: block;
  height: min(84vh, 920px);
  min-height: 620px;
  width: 100%;
}

.pdf-record-float {
  background: var(--branch-accent);
  border: 1px solid var(--line);
  border-radius: 6px;
  bottom: 18px;
  box-shadow: 0 8px 24px rgba(17, 17, 17, .22);
  color: var(--white);
  font-weight: 800;
  max-width: min(260px, calc(100vw - 36px));
  overflow-wrap: anywhere;
  padding: 10px 12px;
  position: fixed;
  right: 18px;
  text-decoration: none;
  z-index: 30;
}

.pdf-record-float:hover {
  background: var(--branch-alert);
  color: var(--white);
}

@media (max-width: 720px) {
  .pdf-viewer-frame {
    height: 78vh;
    min-height: 520px;
  }

  .pdf-record-float {
    bottom: 12px;
    left: 12px;
    max-width: none;
    right: 12px;
    text-align: center;
  }
}

.two-col {
  columns: 2 320px;
}

.metadata {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 16px;
}

.metadata div {
  border-top: 1px solid var(--line);
  padding-top: 8px;
}

.metadata dt {
  color: var(--muted);
  font-size: .85rem;
  font-weight: 700;
}

.metadata dd {
  margin: 0;
}

.record-subtitle {
  color: var(--ink-soft);
  font-size: 1.05rem;
  margin-bottom: 16px;
}

.record-extra-details {
  border-top: 1px dashed var(--line);
  margin: 8px 0 16px;
  padding-top: 10px;
}

.record-extra-details .metadata {
  margin-top: 12px;
}

.record-notes {
  color: var(--ink-soft);
  font-size: .94rem;
  max-width: 82ch;
}

.record-notes p {
  margin-bottom: 8px;
}

.counsel-list {
  display: grid;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.counsel-list strong,
.counsel-list span,
.counsel-list small {
  display: block;
}

.counsel-list small {
  color: var(--muted);
  font-size: .88rem;
}

.actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.document-text {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  overflow: visible;
}

.document-display {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  margin-top: 18px;
  padding: 18px;
}

.document-display h2 {
  border-top: 1px solid rgba(17,17,17,.75);
  font-size: 1rem;
  letter-spacing: 0;
  margin: 1rem 0 .5rem;
  padding-top: 1rem;
}

.document-display h2:first-child {
  border-top: 0;
  margin-top: 0;
  padding-top: 0;
}

.document-display p {
  line-height: 1.65;
  margin: 0 0 1rem;
  max-width: 82ch;
  overflow-wrap: anywhere;
}

.document-block {
  scroll-margin-top: 1rem;
}

.document-block-divider {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 1.25rem 0;
}

.document-block-caption,
.document-block-signature {
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.45;
}

.document-block-numbered_paragraph,
.document-block-numbered_continuation {
  display: grid;
  grid-template-columns: 2.75rem minmax(0, 1fr);
  gap: .65rem;
}

.document-block-numbered_paragraph .document-block-text,
.document-block-numbered_continuation .document-block-text {
  grid-column: 2;
}

.document-block-numbered_continuation {
  margin-top: -.45rem;
}

.document-block-transcript-paragraph {
  display: grid;
  grid-template-columns: 4.75rem minmax(0, 1fr);
  gap: .85rem;
  position: relative;
}

.document-block-transcript-paragraph .document-block-text {
  grid-column: 2;
}

.transcript-gutter {
  grid-column: 1;
  position: relative;
}

.transcript-segment {
  display: inline;
}

.transcript-timestamp {
  color: var(--muted);
  display: block;
  font-size: .85rem;
  font-variant-numeric: tabular-nums;
  line-height: 1.65;
  position: absolute;
  right: 0;
  text-align: right;
  user-select: none;
  width: 4.75rem;
}

.document-marker {
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  text-align: right;
  user-select: none;
}

.document-block-quoted_standard {
  border-left: 3px solid var(--line);
  color: var(--branch-accent);
  margin-left: 2.75rem;
  margin-right: 2.75rem;
  padding-left: 1rem;
  background: var(--branch-soft);
  border-radius: 0 6px 6px 0;
}

.document-display-supreme_court_ebrief {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 4.75rem;
  column-gap: 1rem;
}

.document-display-supreme_court_ebrief .document-block {
  grid-column: 1;
  max-width: 82ch;
}

.document-block-ebrief-section-heading {
  border-top: 0;
  text-align: center;
  text-transform: uppercase;
  white-space: normal;
}

.document-block-ebrief-section-heading.ebrief-section-main,
.document-block-ebrief-section-heading.ebrief-section-appendix {
  margin-top: 1.35rem;
}

.document-block-ebrief-subheading {
  border-top: 0;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.45;
  margin: 1.1rem 0 .55rem;
  text-align: left;
}

.document-block-ebrief-line-group {
  line-height: 1.45;
  margin: 0 0 .75rem;
  white-space: pre-wrap;
}

.document-block-ebrief-line-group.ebrief-section-cover,
.document-block-ebrief-line-group.ebrief-section-toc,
.document-block-ebrief-line-group.ebrief-section-authorities {
  text-align: center;
}

.document-block-ebrief-line-group.ebrief-section-cover {
  line-height: 1.28;
  margin-bottom: .45rem;
}

.document-block-ebrief-line-group.ebrief-section-toc,
.document-block-ebrief-line-group.ebrief-section-authorities {
  text-align: left;
}

.document-block-ebrief-paragraph-row {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr) 4.75rem;
  column-gap: 1rem;
  margin-bottom: 1rem;
  max-width: none;
  row-gap: 0;
  position: relative;
}

.document-block-ebrief-paragraph-row .document-block-ebrief-paragraph {
  grid-column: 1;
  margin-bottom: 0;
  margin-top: 0;
  overflow: visible;
  text-indent: 1.5rem;
}

.document-block-ebrief-paragraph-row.ebrief-paragraph-continued .document-block-ebrief-paragraph {
  text-indent: 0;
}

.document-block-ebrief-block-quote,
.document-block-ebrief-quote-citation {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr) 4.75rem;
  column-gap: 1rem;
  max-width: none;
  position: relative;
}

.document-block-ebrief-block-quote {
  margin: .55rem 0 .65rem;
}

.document-block-ebrief-block-quote p {
  grid-column: 1;
  line-height: 1.45;
  margin: 0 3.25rem;
  text-indent: 0;
}

.document-block-ebrief-quote-citation {
  margin: -.15rem 0 .85rem;
}

.document-block-ebrief-quote-citation p {
  grid-column: 1;
  line-height: 1.5;
  margin: 0;
  text-indent: 0;
}

.document-block-ebrief-toc-line,
.document-block-ebrief-column-header {
  align-items: end;
  display: grid;
  gap: .45rem;
  grid-template-columns: minmax(0, 1fr) minmax(2.5rem, 6rem) max-content;
  line-height: 1.35;
  margin-bottom: .25rem;
}

.document-block-ebrief-column-header {
  color: var(--muted);
  font-size: .88rem;
  font-weight: 700;
  margin-bottom: .45rem;
}

.document-block-ebrief-column-header .ebrief-toc-leader::before {
  content: "";
}

.ebrief-toc-label {
  overflow-wrap: anywhere;
}

.ebrief-toc-leader {
  display: block;
  height: 1em;
  overflow: hidden;
  white-space: nowrap;
}

.ebrief-toc-leader::before {
  color: rgba(17,17,17,.62);
  content: "................................................................................................................................................................................................";
  display: block;
  letter-spacing: .08em;
  line-height: 1;
  transform: translateY(.18em);
}

.ebrief-toc-page,
.ebrief-page-marker {
  font-variant-numeric: tabular-nums;
}

.ebrief-page-marker {
  color: var(--muted);
  display: block;
  font-size: .78rem;
  grid-column: 2;
  height: 0;
  justify-self: end;
  line-height: 1;
  margin: 0;
  min-width: 4.25rem;
  overflow: visible;
  text-align: right;
  transform: translateY(.15rem);
  user-select: none;
  white-space: nowrap;
}

.ebrief-page-marker::after {
  content: attr(data-page);
}

.ebrief-page-marker-inline {
  display: block;
  float: none;
  height: auto;
  line-height: 1.35;
  min-width: 4.25rem;
  position: absolute;
  right: 0;
  top: var(--ebrief-page-marker-top, 0);
  transform: translateY(.1rem);
  width: auto;
}

.ebrief-page-anchor {
  display: inline-block;
  height: 0;
  overflow: hidden;
  width: 0;
}

.ebrief-footnote-ref {
  color: var(--link);
}

.ebrief-footnotes {
  border-top: 1px solid var(--line);
  grid-column: 1 / -1;
  margin: .75rem 0 1.5rem;
  max-width: none;
  padding-top: .75rem;
}

.ebrief-footnotes h2 {
  border-top: 0;
  font-size: .95rem;
  margin: 0 0 .5rem;
  padding-top: 0;
}

.ebrief-footnotes ol {
  margin: 0;
  padding-left: 1.25rem;
}

.ebrief-footnotes p {
  line-height: 1.5;
  margin: 0 0 .65rem;
}

.ebrief-footnotes li.ebrief-footnote-custom {
  list-style: none;
  position: relative;
}

.ebrief-footnote-marker {
  font-weight: 700;
  left: -1.25rem;
  position: absolute;
}

.document-display-supreme_court_ebrief .ebrief-section-appendix {
  background: #eef7fb;
  border-left: 4px solid #5f8fa8;
  color: #213943;
  grid-column: 1 / -1;
  margin: 0;
  max-width: none;
  padding: .45rem .8rem .45rem .9rem;
}

.document-display-supreme_court_ebrief .ebrief-page-marker.ebrief-section-appendix {
  display: block;
  justify-self: stretch;
  min-width: 0;
  text-align: right;
}

.document-display-supreme_court_ebrief .ebrief-section-appendix + .ebrief-section-appendix {
  padding-top: .1rem;
}

.document-display-supreme_court_ebrief .ebrief-section-appendix.ebrief-section-start {
  border-radius: 6px 6px 0 0;
  margin-top: 1rem;
  padding-top: .85rem;
}

.document-display-supreme_court_ebrief .ebrief-section-appendix.ebrief-section-end {
  border-radius: 0 0 6px 6px;
  margin-bottom: 1rem;
  padding-bottom: .85rem;
}

.document-display-bill .document-block-metadata {
  margin-bottom: .55rem;
}

.document-display-bill .document-block-reference {
  color: var(--muted);
  display: inline-block;
  font-size: .9rem;
  margin: 0 .75rem .45rem 0;
}

.document-display-bill .document-block-fiscal_note {
  color: var(--branch-accent);
  display: inline-block;
  font-size: .92rem;
  margin: 0 1rem .45rem 0;
}

.document-display-bill .document-block-table_cell,
.document-display-bill .document-block-form_field {
  color: var(--branch-accent);
  display: inline-block;
  font-size: .92rem;
  margin: 0 1rem .45rem 0;
}

.document-display-bill .document-block-section {
  margin-top: .85rem;
}

.document-block-notice {
  background: var(--white);
  border: 1px solid var(--warning);
  border-radius: 6px;
  color: var(--branch-accent);
  padding: .75rem .85rem;
}

.table-scroll {
  overflow-x: auto;
  width: 100%;
}

.accepted-case-table,
.case-status-table,
.oral-calendar-table {
  border-collapse: collapse;
  font-size: .94rem;
  line-height: 1.35;
  min-width: 760px;
  width: 100%;
}

.accepted-case-table th,
.accepted-case-table td,
.case-status-table th,
.case-status-table td,
.oral-calendar-table th,
.oral-calendar-table td {
  border-bottom: 1px solid rgba(17, 17, 17, .4);
  padding: .55rem .6rem;
  text-align: left;
  vertical-align: top;
}

.accepted-case-table th,
.case-status-table th,
.oral-calendar-table th {
  background: var(--branch-soft);
  font-size: .8rem;
  letter-spacing: 0;
  text-transform: uppercase;
}

.accepted-case-docket,
.case-status-docket,
.oral-calendar-docket {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.accepted-case-title,
.case-status-title,
.oral-calendar-title {
  font-weight: 650;
  min-width: 16rem;
}

.document-block-case-status-summary,
.document-block-oral-calendar-summary {
  align-items: center;
  background: var(--branch-soft);
  border: 1px solid rgba(17, 17, 17, .45);
  border-radius: 6px;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .8rem;
  padding: .65rem .75rem;
}

.case-status-badge {
  border: 1px solid rgba(17, 17, 17, .55);
  border-radius: 999px;
  display: inline-block;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1;
  padding: .22rem .45rem;
}

.case-record-note,
.case-status-note {
  border: 1px solid rgba(61, 72, 52, .4);
  border-radius: 999px;
  color: var(--muted);
  display: inline-block;
  font-size: .74rem;
  font-weight: 650;
  line-height: 1;
  margin-left: .4rem;
  padding: .18rem .42rem;
  white-space: nowrap;
}

.case-status-pending {
  background: var(--white);
  color: var(--branch-accent);
}

.case-status-closed {
  background: var(--ink);
  color: var(--white);
}

.case-status-events summary {
  cursor: pointer;
  font-weight: 650;
}

.case-status-events ol {
  margin: .45rem 0 0;
  padding-left: 1.2rem;
}

.case-status-events li {
  margin-bottom: .25rem;
}

.case-status-events li span {
  font-variant-numeric: tabular-nums;
  font-weight: 650;
}

.oral-calendar-badge {
  border: 1px solid rgba(17, 17, 17, .55);
  border-radius: 999px;
  display: inline-block;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1;
  padding: .22rem .45rem;
  white-space: nowrap;
}

.oral-calendar-oral-argument {
  background: var(--white);
  color: var(--branch-accent);
}

.oral-calendar-submitted-on-briefs {
  background: var(--ink);
  color: var(--white);
}

.oral-calendar-schedule span {
  display: block;
  margin-bottom: .2rem;
}

.oral-annual-schedule-table {
  min-width: 620px;
}

.oral-annual-schedule-table td {
  font-variant-numeric: tabular-nums;
}

.oral-annual-schedule-table td:first-child {
  font-weight: 650;
  width: 9rem;
}

.oral-calendar-details summary {
  color: var(--branch-accent);
  cursor: pointer;
  font-weight: 650;
  white-space: nowrap;
}

.oral-calendar-details ul {
  border-left: 3px solid var(--branch-soft);
  list-style: none;
  margin: .45rem 0 0;
  padding-left: .65rem;
}

.oral-calendar-details li {
  margin-bottom: .25rem;
  max-width: 34rem;
}

.document-display-case_order {
  max-width: 78ch;
}

.document-block-case-order-caption {
  font-weight: 700;
  letter-spacing: 0;
  margin: .4rem 0 1.2rem;
  text-align: center;
  text-transform: uppercase;
}

.document-block-case-order-paragraph {
  margin-bottom: .85rem;
}

.document-block-case-order-signature {
  margin: 1.15rem 0 1rem auto;
  max-width: 18rem;
}

.document-block-case-order-signature span {
  display: block;
}

.document-block-case-order-distribution {
  border-top: 1px solid rgba(17, 17, 17, .45);
  margin-top: 1.2rem;
  padding-top: .75rem;
}

.document-block-case-order-distribution h3 {
  font-size: .95rem;
  margin-bottom: .35rem;
}

.document-block-case-order-distribution ul {
  columns: 2 14rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.document-block-case-order-distribution li {
  break-inside: avoid;
  margin-bottom: .2rem;
}

.document-block-accepted-case-issue {
  border-top: 1px solid rgba(17, 17, 17, .55);
  margin-top: 1.2rem;
  padding-top: 1rem;
}

.document-block-accepted-case-issue h3 {
  font-size: 1rem;
  line-height: 1.3;
  margin-bottom: .65rem;
}

.accepted-case-issue-metadata {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .85rem;
  margin: 0 0 .75rem;
}

.accepted-case-issue-metadata div {
  border: 1px solid rgba(17, 17, 17, .45);
  border-radius: 6px;
  padding: .28rem .45rem;
}

.accepted-case-issue-metadata dt {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
}

.accepted-case-issue-metadata dd {
  margin: 0;
}

.theme-chip {
  display: inline-block;
  border: 1px solid var(--branch-accent);
  border-radius: 999px;
  color: var(--branch-accent);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-top: 12px;
  padding: 0.2rem 0.5rem 0.24rem;
  text-transform: uppercase;
}

.document-display-bill del,
.document-display-bill .bill-deleted {
  color: var(--red);
  text-decoration: line-through;
  text-decoration-thickness: .08em;
}

.document-display-bill ins,
.document-display-bill .bill-inserted {
  color: var(--blue);
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .14em;
}

.bill-underline {
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .14em;
}

mark {
  background: var(--yellow);
  padding: 0 .08em;
}

.opinion-vote-badge {
  border: 1px solid var(--line);
  border-radius: 999px;
  display: inline-block;
  font-size: .8rem;
  font-weight: 700;
  line-height: 1;
  padding: .22rem .45rem;
}

.opinion-vote-dissent,
.opinion-vote-mixed {
  background: linear-gradient(180deg, #f8d6dc, #f4c2cb);
  border-color: rgba(191, 10, 48, 0.85);
  color: var(--red);
}

.opinion-vote-concurrence {
  background: var(--white);
  border-color: var(--warning);
  color: var(--warning);
}

.opinion-vote-unanimous {
  background: linear-gradient(180deg, #d8e4f8, #c4d6f1);
  border-color: rgba(20, 54, 116, 0.85);
  color: var(--blue);
}

.opinion-text {
  display: block;
  margin-top: 18px;
}

.opinion-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 3.5rem;
  column-gap: 14px;
  align-items: start;
  width: 100%;
}

.opinion-row.opinion-row-front_matter,
.opinion-row.opinion-row-heading {
  grid-template-columns: minmax(0, 1fr) 3.5rem;
}

.opinion-row-front_matter .opinion-paragraph,
.opinion-row-heading .opinion-paragraph {
  grid-column: 1;
}

.opinion-pnum {
  display: none;
}

.opinion-source-marker {
  color: var(--muted);
  font-weight: 600;
  margin-right: .35rem;
  white-space: nowrap;
}

.opinion-paragraph {
  column-count: 1;
  columns: auto;
  grid-column: 1;
  line-height: 1.65;
  margin: 0 0 1rem;
  max-width: none;
  overflow-wrap: anywhere;
  position: relative;
  width: 100%;
}

.opinion-row-front_matter .opinion-paragraph,
.opinion-row-heading .opinion-paragraph {
  margin-bottom: .75rem;
}

.opinion-row-front_matter.opinion-indent-1 .opinion-paragraph,
.opinion-row-heading.opinion-indent-1 .opinion-paragraph {
  margin-left: 3.5rem;
}

.opinion-row-front_matter.opinion-indent-2 .opinion-paragraph,
.opinion-row-heading.opinion-indent-2 .opinion-paragraph {
  margin-left: 7rem;
}

.opinion-row-heading .opinion-paragraph,
.opinion-align-center .opinion-paragraph {
  text-align: center;
}

.opinion-row-body .opinion-paragraph {
  text-indent: 1.5rem;
}

.opinion-row-disposition .opinion-paragraph {
  text-indent: 0;
}

.opinion-row-block_quote .opinion-paragraph {
  margin-left: 3.5rem;
  margin-right: 3.5rem;
  text-indent: 0;
  font-size: .96rem;
  line-height: 1.58;
  width: auto;
}

.opinion-embedded-block-quote {
  display: block;
  margin: 0 3.5rem .65rem;
  text-indent: 0;
  font-size: .96rem;
  line-height: 1.58;
}

.opinion-row-continuation .opinion-paragraph {
  text-indent: 0;
}

.opinion-row-block_quote + .opinion-row-continuation .opinion-paragraph {
  margin-top: -.35rem;
}

.opinion-row.opinion-section-dissent {
  background: #fff3f1;
  border-left: 4px solid #bf5a4f;
  border-radius: 0;
  margin: 0;
  padding: .4rem 0 .05rem;
}

.opinion-row:not(.opinion-section-dissent) + .opinion-row.opinion-section-dissent {
  border-radius: 6px 6px 0 0;
  margin-top: 1.25rem;
  padding-top: .85rem;
}

.opinion-row.opinion-section-dissent + .opinion-row.opinion-section-dissent {
  padding-top: .15rem;
}

.opinion-row.opinion-section-dissent:has(+ .opinion-row:not(.opinion-section-dissent)),
.opinion-row.opinion-section-dissent:last-child {
  border-radius: 0 0 6px 6px;
  margin-bottom: 1.25rem;
  padding-bottom: .6rem;
}

.opinion-row.opinion-section-dissent .opinion-pnum {
  display: none;
}

.opinion-row.opinion-section-dissent .opinion-paragraph {
  color: #3b2725;
  margin-bottom: .55rem;
}

.opinion-row-author.opinion-section-dissent {
  padding-top: .85rem;
}

.opinion-row-author.opinion-section-dissent .opinion-paragraph {
  font-weight: 700;
  text-indent: 0;
}

.opinion-row.opinion-section-concurrence {
  background: #fff8df;
  border-left: 4px solid #d2a23a;
  border-radius: 0;
  margin: 0;
  padding: .4rem 0 .05rem;
}

.opinion-row:not(.opinion-section-concurrence) + .opinion-row.opinion-section-concurrence {
  border-radius: 6px 6px 0 0;
  margin-top: 1.25rem;
  padding-top: .85rem;
}

.opinion-row.opinion-section-concurrence + .opinion-row.opinion-section-concurrence {
  padding-top: .15rem;
}

.opinion-row.opinion-section-concurrence:has(+ .opinion-row:not(.opinion-section-concurrence)),
.opinion-row.opinion-section-concurrence:last-child {
  border-radius: 0 0 6px 6px;
  margin-bottom: 1.25rem;
  padding-bottom: .6rem;
}

.opinion-row.opinion-section-concurrence .opinion-pnum {
  display: none;
}

.opinion-row.opinion-section-concurrence .opinion-paragraph {
  color: #3d3218;
  margin-bottom: .55rem;
}

.opinion-row-author.opinion-section-concurrence {
  padding-top: .85rem;
}

.opinion-row-author.opinion-section-concurrence .opinion-paragraph {
  font-weight: 700;
  text-indent: 0;
}

.opinion-page-marker {
  color: var(--muted);
  display: block;
  float: right;
  clear: right;
  font-size: .78rem;
  line-height: 1.4;
  width: 3.25rem;
  min-width: 3.25rem;
  margin: 0 calc(-3.5rem - 14px) 0 .65rem;
  text-align: right;
  text-indent: 0;
  user-select: none;
}

.opinion-page-marker::after {
  content: attr(data-page);
}

.opinion-footnote-ref {
  font-size: .75em;
  line-height: 0;
  position: relative;
  text-decoration: none;
  top: -.45em;
}

.js-opinion-tooltips .opinion-footnote-ref::after,
.js-opinion-tooltips .opinion-footnote-ref:hover::after,
.js-opinion-tooltips .opinion-footnote-ref:focus::after,
.js-opinion-tooltips .opinion-footnote-ref:focus-visible::after {
  display: none !important;
  content: none !important;
  opacity: 0 !important;
}

.opinion-footnote-ref:hover::after,
.opinion-footnote-ref:focus::after {
  background: var(--black);
  border-radius: 6px;
  bottom: 1.45em;
  color: var(--white);
  content: attr(data-footnote);
  display: block;
  font-size: .85rem;
  font-weight: 400;
  left: 50%;
  max-width: min(420px, calc(100vw - 1.5rem));
  min-width: 0;
  line-height: 1.35;
  overflow-wrap: anywhere;
  padding: 10px 12px;
  position: absolute;
  text-align: left;
  text-indent: 0;
  white-space: normal;
  transform: translateX(-50%);
  width: max-content;
  z-index: 5;
}

.opinion-footnote-tooltip {
  background: var(--black);
  border-radius: 6px;
  bottom: auto;
  color: var(--white);
  display: block;
  box-sizing: border-box;
  font-size: .85rem;
  left: 0;
  line-height: 1.35;
  max-width: min(420px, calc(100vw - 1.5rem));
  overflow-wrap: anywhere;
  padding: 10px 12px;
  pointer-events: none;
  position: fixed;
  right: auto;
  text-align: left;
  text-indent: 0;
  top: 0;
  visibility: hidden;
  white-space: normal;
  word-break: break-word;
  width: max-content;
  z-index: 12;
}

.opinion-footnote-tooltip.is-visible {
  visibility: visible;
}

.opinion-footnotes {
  border-top: 1px solid var(--line);
  grid-column: 1 / -1;
  margin: .75rem 0 1.5rem;
  max-width: none;
  padding-top: .75rem;
}

.opinion-footnotes h2 {
  font-size: .95rem;
  margin: 0 0 .5rem;
}

.opinion-footnotes.opinion-footnotes-dissent {
  background: #fff3f1;
  border-left: 4px solid #bf5a4f;
  border-top-color: #bf5a4f;
  color: #3b2725;
  margin-right: 0;
  padding-left: .65rem;
}

.opinion-footnotes.opinion-footnotes-dissent .footnote-backref,
.opinion-footnotes.opinion-footnotes-dissent h2 {
  color: #6f3028;
}

.opinion-footnotes ol {
  margin: 0;
  padding-left: 1.25rem;
}

.opinion-footnotes p {
  line-height: 1.5;
  margin: 0 0 .65rem;
}

.footnote-backref {
  font-size: .8rem;
  margin-left: .25rem;
}

.diagnostics .metadata {
  margin-bottom: 0;
}

.statute-text {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px 18px;
}

.statute-unit {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr) auto;
  gap: 10px;
  border-top: 1px solid rgba(17,17,17,.75);
  padding: 10px 0;
}

.statute-unit:first-child {
  border-top: 0;
}

.statute-marker {
  color: var(--ink);
  font-weight: 750;
  text-align: right;
}

.statute-unit p {
  margin: 0;
  max-width: 78ch;
}

.statute-level-0 {
  grid-template-columns: 0 minmax(0, 1fr) auto;
}

.statute-level-0 p {
  grid-column: 2;
}

.statute-level-0 .subsection-link {
  grid-column: 3;
}

.statute-level-2 {
  padding-left: 2rem;
}

.statute-level-3 {
  padding-left: 4rem;
}

.statute-level-4 {
  padding-left: 6rem;
}

.subsection-link {
  color: var(--muted);
  font-size: .82rem;
  text-decoration: none;
  white-space: nowrap;
}

.pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}

.pagination a,
.pagination span {
  border: 1px solid var(--line);
  border-radius: 6px;
  min-width: 2.4rem;
  padding: 7px 10px;
  text-align: center;
  text-decoration: none;
}

.pagination .pagination-side {
  min-width: 5.8rem;
}

.pagination [aria-disabled="true"] {
  color: var(--muted);
}

.pagination [aria-current="page"] {
  background: var(--accent);
  color: var(--white);
  border-color: var(--accent);
}

.site-footer {
  border-top: 1px solid var(--line);
  padding: 18px 0;
  background: var(--panel);
  color: var(--muted);
}

.site-footer .wrap {
  border-top: 2px solid var(--branch-soft);
}

@media (max-width: 760px) {
  .header-grid,
  .hero,
  .searchbar .search-row {
    display: block;
  }

  nav {
    margin-top: 12px;
  }

  .nav-menu {
    position: static;
  }

  .nav-menu-panel {
    position: static;
    min-width: 0;
    width: 100%;
    margin: 6px 0 0;
    box-shadow: none;
  }

  .metrics,
  .metadata,
  .filter-grid,
  .attorney-profile-stats,
  .justice-profile-stats {
    grid-template-columns: 1fr;
  }

  .attorney-profile-header,
  .justice-profile-header,
  .reporter-shelf-grid {
    grid-template-columns: 1fr;
  }

  .attorney-profile-layout,
  .justice-profile-layout {
    grid-template-columns: 1fr;
  }

  .attorney-outline,
  .justice-outline {
    position: static;
  }

  .justice-seat-eras,
  .justice-seat-axis,
  .justice-seat-milestones {
    grid-template-columns: 102px minmax(0, 1fr);
    gap: 10px;
    font-size: .68rem;
  }

  .justice-seat-row {
    grid-template-columns: 102px minmax(0, 1fr);
    gap: 10px;
    padding-left: 8px;
  }

  .justice-seat-label a,
  .justice-seat-label span {
    font-size: .78rem;
  }

  .justice-seat-block {
    padding-left: 5px;
    padding-right: 5px;
  }

  .document-block-quoted_standard {
    margin-left: 1rem;
    margin-right: 1rem;
  }

  .document-display-supreme_court_ebrief {
    grid-template-columns: minmax(0, 1fr) 2.4rem;
    column-gap: 8px;
  }

  .document-block-ebrief-paragraph-row,
  .document-block-ebrief-block-quote,
  .document-block-ebrief-quote-citation {
    grid-template-columns: minmax(0, 1fr) 2.4rem;
    column-gap: 8px;
  }

  .document-block-ebrief-block-quote p {
    margin-left: 1rem;
    margin-right: 1rem;
  }

  .document-block-ebrief-toc-line,
  .document-block-ebrief-column-header {
    grid-template-columns: minmax(0, 1fr) max-content;
  }

  .ebrief-toc-leader {
    display: none;
  }

  .ebrief-page-marker {
    min-width: 2.4rem;
  }

  .opinion-row {
    grid-template-columns: minmax(0, 1fr) 2.25rem;
    column-gap: 8px;
  }

  .opinion-row-block_quote .opinion-paragraph {
    margin-left: 1rem;
    margin-right: 1rem;
  }

  .opinion-embedded-block-quote {
    margin-left: 1rem;
    margin-right: 1rem;
  }

  .opinion-page-marker {
    min-width: 2.4rem;
    width: 2.4rem;
    margin-right: calc(-2.25rem - 8px);
  }

  .opinion-footnotes {
    grid-column: 1;
    margin-left: 0;
  }

  button {
    width: 100%;
    margin-top: 8px;
  }

  .statute-unit,
  .statute-level-0 {
    grid-template-columns: 3rem minmax(0, 1fr);
  }

  .statute-level-2,
  .statute-level-3,
  .statute-level-4 {
    padding-left: 0;
  }

  .subsection-link {
    grid-column: 2;
  }

  .statute-level-0 p,
  .statute-level-0 .subsection-link {
    grid-column: 2;
  }
}

@media print {
  .site-header,
  .site-footer,
  .actions,
  .subsection-link,
  .filter-form,
  .searchbar,
  .pagination {
    display: none;
  }

  body {
    background: var(--white);
    color: var(--black);
  }

  .wrap,
  .opinion-paragraph {
    width: 100%;
    max-width: none;
  }

  .panel,
  .document,
  .document-text,
  .document-display,
  .statute-text {
    border: 0;
    padding: 0;
  }
}
