/* ITEP corporate tax avoidance: table section, details modal, and headline number wheels.
   Colors follow the ITEP palette used in the scrolly piece. Scoped to .corptax-wrapper,
   .corptax-modal (the modal is moved to <body>) and .ct-wheel. */

.corptax-wrapper,
.corptax-modal {
	--ct-ink: #122B4E;
	--ct-muted: #5B6B7E;
	--ct-line: #DDE2E8;
	--ct-accent: #9B2F2B;
	--ct-hover: #F4F6FA;
}

/* ---------- Section ---------- */
.corptax-kicker {
	color: var(--ct-accent);
	letter-spacing: 0.08em;
}

.corptax-panel {
	background: #fff;
	border: 1px solid var(--ct-line);
	border-radius: 0.75rem;
	box-shadow: 0 0.25rem 1rem rgba(18, 43, 78, 0.08);
	padding: 1rem;
}

@media (min-width: 992px) {
	.corptax-panel {
		padding: 1.5rem;
	}
}

.corptax-hint {
	font-size: 0.85rem;
	color: var(--ct-muted);
}

.corptax-wrapper .form-control:focus,
.corptax-wrapper .form-select:focus {
	border-color: var(--ct-ink);
	box-shadow: 0 0 0 0.2rem rgba(18, 43, 78, 0.15);
}

/* ---------- Table ---------- */
.corptax-table {
	--bs-table-bg: transparent;
	margin: 0;
}

.corptax-table thead th {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ct-muted);
	border-bottom: 2px solid var(--ct-ink);
	white-space: nowrap;
	background: #fff;
}

.corptax-table tbody td {
	padding: 0.85rem 0.75rem;
	border-color: var(--ct-line);
	vertical-align: middle;
}

.corptax-sort {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	font-weight: 700;
	letter-spacing: inherit;
	text-transform: inherit;
	color: inherit;
	cursor: pointer;
}

.corptax-sort:hover,
th[aria-sort="ascending"] .corptax-sort,
th[aria-sort="descending"] .corptax-sort {
	color: var(--ct-ink);
}

.corptax-row {
	transition: background-color 0.15s;
}

.corptax-row--click {
	cursor: pointer;
}

.corptax-row--click:hover,
.corptax-row--click:focus-within {
	background: var(--ct-hover);
}

.corptax-row--click:hover td:first-child,
.corptax-row--click:focus-within td:first-child {
	box-shadow: inset 3px 0 0 var(--ct-accent);
}

.corptax-name {
	background: none;
	border: 0;
	padding: 0;
	font-weight: 700;
	text-align: left;
	color: var(--ct-ink);
}

.corptax-row--click:hover .corptax-name {
	text-decoration: underline;
}

.corptax-go {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	border: 1px solid var(--ct-line);
	border-radius: 50%;
	color: var(--ct-muted);
	font-size: 1.1rem;
	line-height: 1;
	transition: background-color 0.15s, color 0.15s, transform 0.15s;
}

.corptax-row--click:hover .corptax-go,
.corptax-row--click:focus-within .corptax-go {
	background: var(--ct-ink);
	border-color: var(--ct-ink);
	color: #fff;
	transform: translateX(2px);
}

/* ---------- Rate pill and meter ---------- */
.corptax-pill {
	display: inline-block;
	min-width: 3.6rem;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	font-size: 0.9rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	text-align: center;
}

.corptax-pill--zero { background: #9B2F2B; color: #fff; }
.corptax-pill--lt7 { background: #F3D9D7; color: #6E1F1C; }
.corptax-pill--mid { background: #E3EAF3; color: var(--ct-ink); }
.corptax-pill--gt21 { background: var(--ct-line); color: var(--ct-ink); }

/* ---------- Details modal ---------- */
.corptax-modal .modal-content {
	border: 0;
	border-radius: 0.75rem;
	overflow: hidden;
}

.corptax-modal .modal-header {
	align-items: flex-start;
	background: var(--ct-ink);
	color: #fff;
	border: 0;
	padding: 1.25rem 1.5rem;
}

.corptax-modal .btn-close {
	filter: invert(1) grayscale(100%) brightness(200%);
}

.corptax-modal .corptax-sub {
	color: #C9D3E3;
	font-size: 0.9rem;
}

.corptax-modal .modal-body {
	padding: 1.5rem;
}

.corptax-stat {
	height: 100%;
	padding: 0.9rem 1rem;
	background: var(--ct-hover);
	border: 1px solid var(--ct-line);
	border-radius: 0.5rem;
}

.corptax-stat-label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ct-muted);
}

.corptax-stat-value {
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--ct-ink);
}

/* ---------- Headline number wheels ---------- */
.ct-wheel {
	display: inline-block;
	width: 1ch;
	height: 1em;
	overflow: hidden;
	vertical-align: top;
}

.ct-strip {
	display: block;
	will-change: transform;
	transition: filter 0.4s;
}

.ct-strip > span {
	display: block;
	height: 1em;
	line-height: 1;
	text-align: center;
}

.ct-rolling .ct-strip {
	filter: blur(1.5px);
}

.ct-static {
	white-space: pre;
}

/* ---------- Scrollbars only when needed ---------- */
/* .table-responsive makes overflow-y compute to "auto", which can show an empty vertical
   scrollbar; the table never needs one, so only horizontal scrolling is left on. */
.corptax-wrapper .table-responsive {
	overflow-x: auto;
	overflow-y: hidden;
}

.corptax-modal .modal-body {
	overflow-x: hidden;
}

.corptax-modal .modal-footer {
	border-top: 1px solid var(--ct-line);
	padding: 1rem 1.5rem;
}

/* ---------- Top Five cards ---------- */
.corptax-top5-card {
	border: 1px solid #DDE2E8;
	border-radius: 0.5rem;
}

.corptax-top5-stats {
	background: #F4F6FA;
	border: 1px solid #DDE2E8;
	border-radius: 0.5rem;
	padding: 0.85rem 1rem;
}

.corptax-top5-stats > div + div {
	border-left: 1px solid #DDE2E8;
	padding-left: 1rem;
}

.corptax-top5-label {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #5B6B7E;
}

.corptax-top5-value {
	margin-top: 0.15rem;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.15;
	color: #122B4E;
}

.corptax-top5-value.red {
	color: #9B2F2B;
}

.corptax-breaks li {
	padding: 0.6rem 0;
	border-bottom: 1px solid #DDE2E8;
}

.corptax-breaks li:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

/* ---------- Details modal: rate and statutory-rate bar ---------- */
.corptax-stat-value--rate {
	color: var(--ct-accent);
}

.corptax-ratebar-track {
	position: relative;
	height: 14px;
	margin: 0.75rem 11px 0.5rem;
	background: var(--ct-line);
	border-radius: 7px;
}

.corptax-ratebar-fill {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	background: var(--ct-accent);
	border-radius: 7px;
}

.corptax-ratebar-dot {
	position: absolute;
	top: 50%;
	box-sizing: border-box;
	width: 22px;
	height: 22px;
	background: #fff;
	border: 5px solid var(--ct-ink);
	border-radius: 50%;
	transform: translate(-50%, -50%);
}

.corptax-ratebar-scale {
	display: flex;
	justify-content: space-between;
	font-size: 0.8rem;
	color: var(--ct-muted);
}

.corptax-section {
	border-top: 1px solid var(--ct-line);
}

/* ---------- Top Five cards: 2 x 2 stats ---------- */
.corptax-top5-stats--grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
}

.corptax-top5-stats--grid > div + div {
	border-left: 0;
	padding-left: 0;
}

.corptax-top5-stats--grid > div:nth-child(even) {
	border-left: 1px solid #DDE2E8;
}

.corptax-top5-stats--grid > div:nth-child(n+3) {
	border-top: 1px solid #DDE2E8;
	margin-top: 0.85rem;
	padding-top: 0.85rem;
}

.corptax-top5-stats--grid .corptax-top5-value {
	font-size: 1.5rem;
}

.corptax-top5-stats--grid > .corptax-top5-stats__wide {
	grid-column: 1 / -1;
	border-left: 0;
}