/* NeviLex Insights — navy palette to match nevilex.com */
.nvxi {
	--nvxi-ink: #0E2A4A;
	--nvxi-text: #22344a;
	--nvxi-muted: #6b7a8c;
	--nvxi-line: #dfe5ec;
	--nvxi-soft: #f3f6fa;
	--nvxi-accent: #2F6DB5;
	--nvxi-ok: #2c7a4b;
	--nvxi-off: #a33a3a;
	font-family: "MV Typewriter", "Faruma", "MV Faseyha", sans-serif;
	color: var(--nvxi-text);
	margin: 1.5em 0;
	line-height: 1.7;
}
.nvxi *, .nvxi *::before, .nvxi *::after { box-sizing: border-box; }
.nvxi a { color: var(--nvxi-accent); text-decoration: none; }
.nvxi a:hover { text-decoration: underline; }
.nvxi bdi[dir="ltr"], .nvxi .nvxi-axis, .nvxi .nvxi-val { font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
.nvxi-muted { color: var(--nvxi-muted); font-size: .88em; }
.nvxi-kicker { font-size: .95em; font-weight: 700; color: var(--nvxi-ink); margin: 0 0 .6em; display: flex; align-items: center; gap: .5em; flex-wrap: wrap; }
.nvxi-title { font-size: 1.15em; font-weight: 700; color: var(--nvxi-ink); }
.nvxi figcaption { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .3em 1em; margin-bottom: .5em; }
.nvxi-pill { display: inline-block; font-size: .78em; font-weight: 600; padding: .05em .7em; border-radius: 99px; background: var(--nvxi-soft); color: var(--nvxi-ink); }
.nvxi-pill.is-on { background: #e4f1ea; color: var(--nvxi-ok); }
.nvxi-pill.is-off { background: #f7e6e6; color: var(--nvxi-off); }

/* legend */
.nvxi-legend { list-style: none; margin: .3em 0 .8em; padding: 0; display: flex; flex-wrap: wrap; gap: .3em 1.1em; font-size: .9em; }
.nvxi-legend li { display: inline-flex; align-items: center; gap: .4em; }
.nvxi-legend-sm { font-size: .8em; margin-top: 1em; }
.nvxi-swatch { width: .8em; height: .8em; border-radius: 3px; display: inline-block; flex: none; }

/* svg text */
.nvxi svg { display: block; width: 100%; height: auto; overflow: visible; }
.nvxi .nvxi-axis { font-size: 12px; fill: var(--nvxi-muted); }
.nvxi .nvxi-val { font-size: 11px; fill: var(--nvxi-ink); font-weight: 600; }
.nvxi .nvxi-grid { stroke: var(--nvxi-line); stroke-width: 1; }
.nvxi .nvxi-grid.is-base { stroke: #b9c3cf; }

/* chart */
.nvxi-chart-box { background: #fff; border: 1px solid var(--nvxi-line); border-radius: 10px; padding: 14px 10px 4px; }
.nvxi-chart rect { transition: opacity .15s; }
.nvxi-chart svg:hover rect { opacity: .75; }
.nvxi-chart svg rect:hover { opacity: 1; }

/* appeal path */
.nvxi-appeal { background: var(--nvxi-soft); border: 1px solid var(--nvxi-line); border-radius: 10px; padding: 14px 16px; }
.nvxi-appeal-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px; }
.nvxi-step > a, .nvxi-step > div { display: flex; flex-direction: column; gap: 2px; min-width: 150px; height: 100%; padding: 8px 12px; border-radius: 8px; background: #fff; border: 1px solid var(--nvxi-line); color: var(--nvxi-text); }
.nvxi-step > a:hover { border-color: var(--nvxi-accent); text-decoration: none; box-shadow: 0 2px 8px rgba(14,42,74,.08); }
.nvxi-step.is-current > div { background: var(--nvxi-ink); border-color: var(--nvxi-ink); color: #fff; }
.nvxi-step.is-current .nvxi-step-year, .nvxi-step.is-current .nvxi-step-court { color: #c9d8ec; }
.nvxi-step.is-missing > div { border-style: dashed; background: transparent; }
.nvxi-step-court { font-size: .82em; color: var(--nvxi-muted); }
.nvxi-step-num { font-weight: 700; font-size: .98em; }
.nvxi-step-year { font-size: .8em; color: var(--nvxi-muted); }
.nvxi-step-here { font-size: .75em; font-weight: 700; color: #fff; opacity: .85; }
.nvxi-step-note { font-size: .75em; color: var(--nvxi-muted); }
.nvxi-arrow { align-self: center; color: var(--nvxi-muted); font-size: 1.2em; padding: 0 2px; }

/* law timeline */
.nvxi-tl { background: var(--nvxi-soft); border: 1px solid var(--nvxi-line); border-radius: 10px; padding: 14px 16px; }
.nvxi-tl-box { margin: 0 0 .6em; }
.nvxi .nvxi-tl-base { stroke: var(--nvxi-line); stroke-width: 6; stroke-linecap: round; }
.nvxi .nvxi-tl-live { stroke: var(--nvxi-accent); stroke-width: 6; stroke-linecap: round; }
.nvxi .nvxi-tl-live.is-open { stroke-dasharray: none; }
.nvxi .nvxi-tl-dot { stroke: #fff; stroke-width: 2.5; fill: var(--nvxi-ink); }
.nvxi .nvxi-tl-dot.is-amend { fill: #C9852C; }
.nvxi .nvxi-tl-dot.is-repeal { fill: var(--nvxi-off); }
.nvxi .nvxi-tl-dot.is-start { fill: var(--nvxi-ok); }
.nvxi-tl-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: .92em; }
.nvxi-tl-list li { display: flex; align-items: center; gap: .7em; }
.nvxi-tl-mark { width: 10px; height: 10px; border-radius: 50%; background: var(--nvxi-ink); flex: none; }
.nvxi-tl-list .is-amend .nvxi-tl-mark { background: #C9852C; }
.nvxi-tl-list .is-repeal .nvxi-tl-mark { background: var(--nvxi-off); }
.nvxi-tl-list .is-start .nvxi-tl-mark { background: var(--nvxi-ok); }
.nvxi-tl-date { color: var(--nvxi-muted); min-width: 6.5em; font-size: .9em; }

/* cited by */
.nvxi-cited { border-top: 1px solid var(--nvxi-line); padding-top: 1em; }
.nvxi-cited ol, .nvxi-case-list ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 6px; }
.nvxi-cited li a, .nvxi-case-list li a { display: flex; flex-wrap: wrap; gap: .2em .7em; align-items: baseline; padding: 6px 10px; border: 1px solid var(--nvxi-line); border-radius: 7px; background: #fff; color: var(--nvxi-text); font-size: .9em; }
.nvxi-cited li a:hover, .nvxi-case-list li a:hover { border-color: var(--nvxi-accent); text-decoration: none; }
.nvxi-cite { font-weight: 700; color: var(--nvxi-ink); }
.nvxi-cited .nvxi-more { display: none; }
.nvxi-cited:has(.nvxi-more-toggle[open]) .nvxi-more { display: block; }
.nvxi-more-toggle { margin-top: .6em; }
.nvxi-more-toggle summary { cursor: pointer; color: var(--nvxi-accent); font-size: .9em; list-style: none; }
.nvxi-more-toggle[open] summary { display: none; }
.nvxi-count-pill { display: inline-flex; align-items: center; gap: .3em; font-size: .78em; padding: 0 .6em; border-radius: 99px; background: #e8eff8; color: var(--nvxi-ink, #0E2A4A); white-space: nowrap; }

/* judges */
.nvxi-judge-grid { list-style: none; margin: 1em 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.nvxi-judge-grid a { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border: 1px solid var(--nvxi-line); border-radius: 8px; background: #fff; color: var(--nvxi-text); height: 100%; }
.nvxi-judge-grid a:hover { border-color: var(--nvxi-accent); text-decoration: none; box-shadow: 0 2px 8px rgba(14,42,74,.08); }
.nvxi-judge-name { font-weight: 700; color: var(--nvxi-ink); }
.nvxi-judge-n { font-size: .82em; color: var(--nvxi-muted); }
.nvxi-stack { display: flex; height: 6px; border-radius: 3px; overflow: hidden; background: var(--nvxi-line); margin-top: auto; }
.nvxi-stack span { display: block; height: 100%; }
.nvxi-judge-head h2 { margin: 0; color: var(--nvxi-ink); }
.nvxi-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; margin: 1em 0; }
.nvxi-card { border: 1px solid var(--nvxi-line); border-radius: 10px; padding: 12px 14px; background: #fff; }
.nvxi-card h3 { margin: 0 0 .6em; font-size: 1em; color: var(--nvxi-ink); }
.nvxi-case-list { margin-top: 12px; }
.nvxi-hbars { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: .88em; }
.nvxi-hbars li { display: grid; grid-template-columns: minmax(0, 11em) 1fr auto; gap: 8px; align-items: center; }
.nvxi-hbar-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nvxi-hbar-track { height: 10px; background: var(--nvxi-soft); border-radius: 5px; overflow: hidden; }
.nvxi-hbar { display: block; height: 100%; background: var(--nvxi-accent); border-radius: 5px; }
.nvxi-hbar-n { color: var(--nvxi-muted); font-size: .9em; min-width: 2.5em; text-align: left; }
.nvxi .nvxi-col { fill: var(--nvxi-accent); }

/* subject map */
.nvxi-tree-box { border-radius: 10px; overflow: hidden; }
.nvxi .nvxi-tree-head { font-family: "MV Typewriter", "Faruma", sans-serif; font-size: 17px; font-weight: 700; fill: #fff; }
.nvxi .nvxi-tree-head.is-sm { font-size: 13px; }
.nvxi .nvxi-tree-n { font-family: system-ui, sans-serif; font-size: 14px; fill: rgba(255,255,255,.75); font-weight: 400; }
.nvxi .nvxi-tree-kid { fill: rgba(255,255,255,.14); stroke: rgba(255,255,255,.28); stroke-width: 1; transition: fill .15s; }
.nvxi a:hover .nvxi-tree-kid { fill: rgba(255,255,255,.3); }
.nvxi .nvxi-tree-label { font-family: "MV Typewriter", "Faruma", sans-serif; fill: #fff; }
.nvxi .nvxi-tree-label.is-n { font-family: system-ui, sans-serif; fill: rgba(255,255,255,.72); }
.nvxi-tree .nvxi-legend a { color: var(--nvxi-text); }

@media (max-width: 640px) {
	.nvxi-step > a, .nvxi-step > div { min-width: 0; }
	.nvxi-appeal-list { flex-direction: column; }
	.nvxi-arrow { transform: rotate(-90deg); align-self: flex-start; margin-inline-start: 1.2em; }
	.nvxi-hbars li { grid-template-columns: minmax(0, 8em) 1fr auto; }
	.nvxi-chart-box { overflow-x: auto; }
	.nvxi-chart-svg { min-width: 620px; }
}
.nvxi .nvxi-tree-kid.is-rest { fill: rgba(255,255,255,.05); stroke-dasharray: 3 3; }
.nvxi .nvxi-tree-head.is-n, .nvxi .nvxi-tree-label.is-n { font-family: system-ui, sans-serif; fill: rgba(255,255,255,.75); }
