* {
	box-sizing: border-box;
}

body {
	padding: 0;
	margin: 0;
}

input,
button,
.btn {
	border: 1px solid #aaa;
	padding: 0.3em 0.75em;
	font-family: inherit;
	font-size: inherit;
	line-height: 1.8;
	border-radius: 0.3em;
	min-width: 0;
}

button,
.btn {
	display: inline-block;
	text-align: center;
	border-color: #26c;
	background: #26c;
	color: #fff;
	cursor: pointer;
}
button:hover,
.btn:hover {
	border-color: #25a;
	background: #25a;
}
button:focus,
.btn:focus,
.toggle :focus + .btn {
	box-shadow: 0 0 0 .2rem rgba(38,143,255,.5);
}
button:active,
.btn:active {
	border-color: #2b4d80;
	background: #2b4d80;
}
button:disabled,
.toggle :disabled + .btn {
	border-color: #777;
	background: #777;
	color: #ccc;
	cursor: default;
}

.toggle .btn::before {
	content: "";
	display: inline-block;
	vertical-align: text-top;
	margin-right: 0.5em;
	width: 1em;
	height: 1em;
	border-radius: 50%;
	background-color: #ccc;
}

.toggle :checked + .btn::before {
	background-color: #c12;
}

.toggle input {
	position: absolute;
	clip-path: inset(50%);
}
