@layer components {
	.skip-nav-link {
		position: absolute;
		top: 0;
		left: 0;
		padding: 1rem;
		background: var(--clr-white-400);
		transform: translateY(-150%);
		transition: transform 300ms ease-in;
	}

	.skip-nav-link:focus {
		transform: translateY(0);
	}

	.site-title {
		margin: 0;
		padding-block: 0.6rem;
		font-weight: bold;
		font-size: 1.5rem;
		text-align: center;
	}

	.site-title img {
		width: 300px;
	}

	.header,
	.main,
	.footer {
		margin-inline: auto;
	}

	.header {
		padding: 16px 32px;
		margin: 0 -1rem;
		background-color: var(--tbp-brown);
		color: var(--tbp-white);
	}

	.header__inner {
		margin: 0 auto;
		width: 100%;
		max-width: 1200px;

		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.main {
		max-width: 960px;
		padding: 16px 0 32px;
	}

	.footer {
		text-align: center;
		padding: 16px 32px;
		margin: 0 -1rem;
		display: flex;
		flex-direction: column;
		align-items: center;
		background-color: var(--tbp-grey);
		color: var(--tbp-black);
	}

	.nav ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.5rem;
		margin: 0;
		padding: 0;
	}

	.nav li {
		list-style: none;
	}

	.nav a,
	.nav button {
		display: block;
		padding-block: 1rem;
		padding-inline: 1rem;
		color: inherit;
	}

	.cols-single,
	.cols-halves,
	.cols-thirds,
	.cols-fourths {
		display: grid;
		gap: 1rem;
	}

	details .warning-box {
		margin-block-start: 1rem;
	}

	details fieldset {
		margin-block-start: 0.5rem;
	}

	.top-bar ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		padding: 0;
		list-style: none;
		gap: 1rem;
	}

	.data-table {
		width: 100%;
		margin-block-start: 1rem;
	}

	.data-table tr:hover {
		background: var(--clr-accent-100);
	}

	.data-table th {
		border-bottom: 1px solid var(--clr-black-100);
	}

	.data-table td td {
		padding: 0.1rem 0.5rem;
	}

	.data-table td td:first-child {
		padding-inline-start: 0;
	}

	.data-table td tr:first-child td {
		padding-block-start: 0;
	}

	.data-table td td:last-child {
		padding-inline-end: 0;
	}

	.data-table td tr:last-child td {
		padding-block-end: 0;
	}

	.data-table .data-table__empty td {
		text-align: center;
		font-style: italic;
	}

	.data-table .data-table__highlight {
		background: var(--clr-highlight-100);
	}

	.data-table .data-table__highlight:hover {
		background: var(--clr-highlight-400);
	}

	.data-table__sort {
		display: inline-block;
		padding-inline-start: 0.3rem;
		font-size: 0.8rem;
		text-decoration: none;
		color: var(--clr-black-100);
	}

	.data-table__sort--active {
		color: var(--clr-accent-400);
	}

	.metrics td {
		padding: 0.1rem 0.3rem;
	}

	.totp__qrcode {
		font-family: monospace;
		font-size: 1.2rem;
		text-align: center;
	}

	.totp__qrcode img {
		display: inline-block;
	}

	.tbp__text {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		justify-content: start;
		gap: 8px;
	}
	.tbp__text__label {
		font-weight: 600;
		font-size: 18px;
	}
	.tbp__text__value {
		height: 40px;
		border: 1.5px solid var(--tbp-grey);
		border-radius: 6px;
		padding: 8px 10px;
		font-size: 16px;
		font-weight: 400;
	}

	.tbp__form-section {
		display: flex;
		flex-direction: column;
		padding: 32px 0;
		border-top: 1px solid var(--tbp-dark-grey);
	}
	.tbp__form-section > div {
		padding-top: 1rem;
		break-inside: avoid;
	}
	@media print {
		.tbp__form-section {
			padding: 32px 0 0 0;
			border: none;
		}
	}

	@media screen and (min-width: 400px) {
		.header__inner {
			flex-direction: row;
		}

		.nav {
			margin-inline-start: auto;
		}

		.top-bar ul {
			justify-content: flex-start;
		}

		.cols-halves {
			grid-template-columns: repeat(2, 1fr);
		}

		.cols-thirds {
			grid-template-columns: repeat(3, 1fr);
		}

		.cols-fourths {
			grid-template-columns: repeat(4, 1fr);
		}
	}

	@media print {
		body {
			padding: 0;
			margin: 0;
		}

		.header,
		.main,
		.footer {
			max-width: unset;
			padding: 1cm 1.5cm 1.5cm;
			margin-inline: auto;
		}

		.header {
			padding: 1cm 1.5cm;
			background-color: var(--tbp-white);
			color: var(--tbp-blue);
		}
		.header__inner {
			display: flex;
			flex-direction: column;
			align-items: start;
		}

		.main {
			padding: 0;
		}

		.footer {
			text-align: center;
			background-color: var(--tbp-blue);
			color: var(--tbp-white);
		}

		.nav,
		.top-bar {
			display: none;
		}

		.cols-single,
		.cols-halves,
		.cols-thirds,
		.cols-fourths {
			display: grid;
			gap: 1rem;
		}

		.cols-single {
			grid-template-columns: 1fr;
		}

		.cols-halves {
			grid-template-columns: repeat(2, 1fr);
		}

		.cols-thirds {
			grid-template-columns: repeat(3, 1fr);
		}

		.cols-fourths {
			grid-template-columns: repeat(4, 1fr);
		}

		.tbp__text {
			display: flex;
			flex-direction: column;
			align-items: stretch;
			justify-content: start;
			gap: 4px;
		}

		.tbp__text__label {
			font-weight: 600;
			font-size: 16px;
		}

		.tbp__text__value {
			height: 35px;
			border: 1.5px solid var(--tbp-grey);
			border-radius: 4px;
			padding: 8px 10px;
			font-size: 13px;
			font-weight: 400;
		}

		.tbp__form-section {
			padding: 1cm 1.5cm 1.5cm;
			break-inside: avoid;
		}
	}
}

@layer utility {
	.center {
		max-width: 550px;
		margin-inline: auto;
	}
}
