/* root */
:root {	
	--button-background: #222222;
	--button-background-focus: #222222;
	--button-background-hover: #3f3f3f;
	--button-background-active: #000000;
	--button-color: #fff;
	
	--button-brand-background: #B21F3D;
	
	--button-background-disabled: #f2f2f2;
	--button-color-disabled: #c1c1c1;
	
	--button-grey-background: #E6E6E6;
	--button-grey-color: #171717;
	
	--border-color: #E5E5E5;
	--border-radius: .25rem;
}

/* html */
html {
	scroll-behavior: smooth;
}

[id] {
	scroll-margin-top: calc(65px + 1rem);
}

/* body */
body {
	font-size: 16px;
	font-family: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	margin: 0;
	padding: 0;
	
	line-height: 1.43;
	color: #222222;
	background-color: #fff;
}

/* button */
button,
.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	border-radius: .25rem;
	height: 48px;
	padding: 0 1rem;
	font-size: 1rem;
	text-decoration: none;
	outline: none;
	border: none;
	cursor: pointer;
	text-decoration: none;
	background: var(--button-background);
	color: var(--button-color);
}
@media (focus: focus) {
	button:focus,
	.button:focus {
		background: var(--button-background-focus);
	}
}
@media (hover: hover) {
	button:hover,
	.button:hover {
		background: var(--button-background-hover);
	}
}
@media (active: active) {
	button:active,
	.button:active {
		background: var(--button-background-active);
	}
}
button.brand,
.button.brand {
	background: var(--button-brand-background);
}
button.grey,
.button.grey {
	background: var(--button-grey-background);
	color: var(--button-grey-color);
}

/* a links */
a {
	color: inherit;
	text-decoration: underline;
}
@media (hover: hover) {
	a:hover {
		text-decoration: none;
	}
}

/* table */
.table_responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
	margin-bottom: 1rem;
}
table {
	width: 100%;
	border-collapse: collapse;
	margin: 1rem 0;
}

table thead {
	background: #f9f9f9;
}

table th,
table td {
	padding: 8px 10px;
	text-align: left;
	border-bottom: 1px solid #eee;
}

table th {
	font-weight: 600;
	color: #444;
}

table tr:hover {
	background: #fafafa;
}

table input[type="text"] {
	width: 100%;
	outline: 0;
	border: 1px solid #2d2f29;
	border-radius: .25rem;
	height: 30px;
	padding: .25rem .5rem;
}

table input[readonly] {
	background-color: #f5f5f5;
	color: #666;
	cursor: not-allowed;
}

/* form */
form {
	display: flex;
	flex-direction: column;
	gap: .75rem;
}

/* input */
input,
select {
    box-sizing: border-box;
    height: 48px;
    width: 100%;
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
	font-size: 1rem;
	padding: 0 .5rem;
}
input:focus,
select:focus {
    outline: 0;
    border-color: var(--border-color);
    box-shadow: 0 0 0 2px var(--border-color);
}
input::placeholder,
textarea::placeholder {
    opacity: .75;
	font-size: .925rem;
}
input[type="checkbox"] {
    width: 18px;
    height: 18px;
}
input[type="radio"] {
	display: none;
}
input[type="radio"] + label {
	border: 1px solid var(--border-color);
	border-radius: var(--border-radius);
}
input[type="radio"]:hover + label {
	cursor: pointer;
	background: #dcdfe4;
}
input[type="radio"]:checked + label {
    background: #1a2b49;
	color: #fff;
}

/* form_group */
.form_groups {
    display: grid;
    gap: 1rem;
}

.form_groups .form_row {
    display: flex;
    gap: 1rem;
}

.form_groups .form_row .form_field {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

/* label */
label {
	font-size: .825rem;
	display: flex;
	align-items: center;
	gap: .5rem;
}