*,
*::before,
*::after {
	box-sizing: border-box;
}

:root {
	--color-bg: #303336;
	--color-surface: #35373A;
	--color-text: #C9C6B1;
	--color-text-muted: #717262;
	--color-border: #4a4d50;
	--color-border-light: rgba(255, 255, 255, 0.08);
	--color-border-dark: rgba(0, 0, 0, 0.25);
	--color-primary: #78A19A;
	--color-primary-hover: #5d8880;
	--emboss: inset 0 1px 0 var(--color-border-light), 0 1px 2px var(--color-border-dark);
	--emboss-strong: inset 0 1px 0 rgba(255,255,255,0.12), 0 1px 3px rgba(0,0,0,0.35);
	--color-danger: #dc3545;
	--color-danger-hover: #c82333;
	--radius: 6px;
	--min-tap: 44px;
}

html, body {
	margin: 0;
	padding: 0;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
		Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: var(--color-text);
	background-color: var(--color-bg);
	-webkit-text-size-adjust: 100%;
}

a {
	color: var(--color-primary);
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

button {
	cursor: pointer;
	font: inherit;
	min-height: var(--min-tap);
}

input {
	font: inherit;
	min-height: var(--min-tap);
}

.loading-screen {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100vh;
	color: var(--color-text-muted);
	font-size: 0.875rem;
}

@keyframes spin {
	to { transform: rotate(360deg); }
}

.spinner {
	display: inline-block;
	width: 1.25rem;
	height: 1.25rem;
	border: 2px solid var(--color-border);
	border-top-color: var(--color-primary);
	border-radius: 50%;
	animation: spin 0.6s linear infinite;
	margin-right: 0.5rem;
	vertical-align: middle;
}
