@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-logo {
		margin: 0;
		padding-block: 1.4rem;
		font-weight: bold;
		font-size: 1.5rem;
		text-align: center;
		max-width: 200px;
		align-content: space-around;
	}

	.site-logo img {
		width: 100%;
	}

	.header,
	.main {
		max-width: 960px;
		margin-inline: auto;
	}

	.header {
		position: relative;
		display: flex;
	}

	.main {
		padding-block-end: 1.5rem;
		max-width: 620px;
	}

	.tel-icon {
		margin-block: 2rem;
		padding-block-start: 1.7rem;
	}

	.tel-icon svg {
		width: 1.4rem;
		fill: var(--clr-accent-400);
	}

	#burger-menu-toggle {
		display: none;
	}

	.burger-menu {
		margin: 2rem;
		padding-block-start: 1.7rem;
		z-index: 101;
	}

	.burger-menu__inner {
		position: relative;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		width: 30px;
		height: 25px;
		cursor: pointer;
	}

	.burger-menu__inner span {
		height: 2px;
		width: 100%;
		background: var(--clr-accent-400);
		position: absolute;
		transition: 0.3s;
	}

	.burger-menu__inner span:nth-child(1) {
		top: 0px;
	}

	.burger-menu__inner span:nth-child(2) {
		top: 50%;
		transform: translateY(-50%);
	}

	.burger-menu__inner span:nth-child(3) {
		bottom: 0px;
	}

	#burger-menu-toggle:checked ~ .burger-menu .burger-menu__inner span:nth-child(1) {
		top: 50%;
		transform: translateY(-50%) rotate(45deg);
	}

	#burger-menu-toggle:checked ~ .burger-menu .burger-menu__inner span:nth-child(2) {
		opacity: 0;
	}

	#burger-menu-toggle:checked ~ .burger-menu .burger-menu__inner span:nth-child(3) {
		position: absolute;
		top: 50%;
		transform: translateY(-50%) rotate(-45deg);
	}

	.nav {
		position: fixed;
		width: 100vw;
		height: 100vh;
		background: var(--clr-accent-400);
		z-index: 100;
		top: -100vh;
		left: 0;
		padding: 2rem 10rem;
		overflow: auto;
		transition: top 0.3s;
	}

	#burger-menu-toggle:checked ~ .burger-menu .burger-menu__inner span {
		background: var(--clr-white-400);
	}

	#burger-menu-toggle:checked ~ .nav {
		top: 0;
	}

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

	.nav ul:not(:last-child) {
		border-bottom: 1px solid var(--clr-accent-400);
	}

	.nav li {
		list-style: none;
	}

	.nav p,
	.nav a,
	.nav button {
		display: block;
		margin: 0;
		padding-block: 0.7rem;
		padding-inline: 1rem;
		color: var(--clr-white-400);
		font-size: 2.5rem;
		font-family: Passion One,sans-serif;
		font-weight: 400;
		text-decoration: none;
	}

	.cols-halves {
		display: grid;
		gap: 1rem;
	}

	.cols-thirds {
		display: grid;
		gap: 1rem;
	}

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

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

	.dialog__hide {
		position: sticky;
		top: -0.5rem;
		display: flex;
		align-items: center;
		gap: 1rem;
		margin-block-start: -0.5rem;
		padding: 0px 1rem;
		font-size: 2rem;
		text-decoration: none;
		color: var(--clr-white-400);
		float: right;
		background: var(--clr-accent-400);
		border-radius: var(--border-radius);
	}

	.dialog__hide-text {
		font-size: 1.2rem;
	}

	.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;
	}

	.time-select {
		display: flex;
		gap: 0.5rem;
		align-items: center;
	}

	.time-select p {
		margin: 0;
	}

	@media screen and (min-width: 400px) {
		.site-logo {
			max-width: 277px;
		}

		.header {
			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);
		}
	}
}

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