/* {{{ general */

body {
	font-family: sans-serif;
	max-width: 38rem;
	margin: 0 auto;
	background: white;
	color: black;
}

a {
	color: #00e;
}

a:active {
	color: #a00;
}

a:visited {
	color: #551a8b;
}

[v-cloak] {
	display: none;
}

.view {
	display: none;
}

.view.active {
	display: block;
}

/* }}} */
/* {{{ .fadeIn, .fadeOut */

.fadeOut {
	animation: fadeOut 100ms 1;
	animation-fill-mode: forwards;
}

.fadeIn {
	animation: fadeIn 100ms 1;
	animation-fill-mode: forwards;
}

@keyframes fadeOut {
	0% {
		opacity: 1;
	}

	100% {
		opacity: 0;
	}
}

@keyframes fadeIn {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

/* }}} */
/* {{{ #loading */

#loading[v-cloak] {
	display: block;
}

#loading:not([v-cloak]) {
	display: none;
}

#loading p {
	text-align: center;
	font-weight: bold;
	font-size: 120%;
}

/* }}} */
/* {{{ #header */

#header {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	color: white;
	background: black;
	margin: 0 0 1rem 0;
	padding: 0.7rem 0.5rem;
}

#header h1 {
	font-family: monospace;
	margin: 0;
	padding: 0;
	font-size: 1.1rem;
	white-space: nowrap;
}

#header h1 a, #header h1 a:active, #header h1 a:visited {
	color: white;
	text-decoration: none;
}

#header h1 > span:before {
	content: '(o,o) ';
	color: #ffbe26;
}

#header h1:hover > span:before {
	content: '(-,-) ';
}

#header h1:before {
	content: '> ';
	color: gray;
}

#header h1:after {
	content: ' _';
	color: gray;
}

#header h1 .at {
	color: gray;
}

#header .menu {
	flex: 1;
	text-align: right;
	font-size: 0.9rem;
	white-space: nowrap;
}

#header .menu a, #header .menu a:active, #header .menu a:visited {
	color: #aaa;
}

#header .menu .active {
	font-weight: bold;
}

#header .menu .active, #header .menu .active:active, #header .menu .active:visited {
	color: #eee;
	text-decoration: none;
}

@media screen and (max-width: 29rem) {
	#header .menu {
		margin-top: 0.5rem;
	}
}

/* }}} */
/* {{{ #footer */

#footer {
	display: flex;
	justify-content: space-between;
	margin-top: 1rem;
	padding: 0.5rem 0.5rem 0.7rem 0.5rem;
	color: white;
	background: black;
}

#footer p {
	margin: 0;
}

#footer a, #footer a:visited {
	color: #bbb;
}

#footer .top-link {
	text-align: right;
}

/* }}} */
/* {{{ #roller */

#roller {
	margin: 0 0.6rem;
	/*padding-top: 3rem;*/
}

#roller form {
	width: 100%;
	display: flex;
}

#roller form button {
	margin-left: 1ex;
	font-size: 1.2rem;
}

#roller form .field-wrap {
	flex: 1;
}

#roller form label {
	visibility: hidden;
	width: 0;
	height: 0;
}

#roller form input {
	width: 100%;
	font-size: 1.5rem;
	border: 1px solid gray;
}

#roller form input.error {
	border-color: red;
}

#roller form input:focus.error {
	outline: 1px solid red;
}

#roller .error-message {
	color: red;
	font-weight: bold;
	font-size: 0.8rem;
	margin-bottom: 0.5rem;
}

#roller .block {
	border: 1px solid black;
	margin: 1.5rem 0;
}

#roller .block h2 {
	padding: 0.2rem 0.5rem;
	margin: 0 0 0.5rem 0;
	font-size: 1rem;
	background: black;
	color: white;
}

#roller .block button {
	cursor: pointer;
}

#roller .block button:focus {
	outline: none;
}

/* }}} */
/* {{{ #lastRoll */

#lastRoll .total {
	font-size: 3.4rem;
	font-weight: bold;
	text-align: center;
}

#lastRoll .flags {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

#lastRoll .flag {
	display: flex;
	align-items: center;
	height: 1.2rem;
	margin: 0.5rem;
}

#lastRoll .flag svg, #lastRoll .flag img {
	width: 1.2rem;
	height: 1.2rem;
}

#lastRoll .flag span {
	margin-left: 0.3ex;
}

#lastRoll .details button {
	display: flex;
	align-items: center;
	border: none;
	margin: 0;
	padding: 0.1rem 0.2rem;
	background: #ddd;
	font-size: 1.2rem;
	line-height: 1.2rem;
	width: 100%;
	cursor: pointer;
	height: 2rem;
}

#lastRoll .details button span {
	display: inline-block;
	height: 1.2rem;
}

#lastRoll .details button svg, #lastRoll .details button img {
	width: 1.2rem;
	height: 1.2rem;
	margin-right: 0.25rem;
}

#lastRoll .details p {
	font-size: 1rem;
	margin: 0.2rem;
}

/* }}} */
/* {{{ #history */

#history table {
	width: 100%;
	border-collapse: collapse;
	border-bottom: 1px solid #ccc;
}

#history .roll {
	border-top: 1px solid #ccc;
}

#history th, #history td {
	text-align: left;
	padding: 0.2rem;
}

#history td.actions {
	text-align: right;
}

#history svg, #history img {
	display: inline-block;
	width: 1.2rem;
	height: 1.2rem;
}

#history .toggleDetails {
	width: 1rem;
}

#history .toggleDetails button {
	border: none;
	background: transparent;
	margin: 0;
	padding: 0;
	vertical-align: middle;
}

#history .details p {
	font-size: 0.8rem;
	margin: 0.2rem 0;
}

/* }}} */
/* {{{ #batch */

#batch form, #batch form input, #batch form button {
	font-size: 1rem;
}

#batch form {
	text-align: center;
	margin-bottom: 1rem;
}

#batch form input {
	width: 3rem;
}

#batch form button {
	margin-left: 1rem;
}

#batch .errorMessage {
	color: red;
	font-weight: bold;
	font-size: 0.8rem;
	margin-bottom: 0.5rem;
	text-align: center;
}

#batch .whatIsThis {
	max-width: 30rem;
	margin: 1rem auto;
}

#batch .lastRoll {
	font-weight: bold;
	font-size: 1.5rem;
	text-align: center;
	margin: 0.5rem 0;
}

/* }}} */
/* {{{ #results */

#results {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

#results .roll {
	margin: 0.5rem 0.4rem;
	line-height: 1.2rem;
	display: flex;
	align-items: center;
}

#results .roll span, #results .roll button {
	display: block;
}

#results .roll .label {
	width: 2rem;
	text-align: right;
	margin-right: 0.3rem;
	color: gray;
}

#results .roll .value {
	width: 1rem;
	text-align: right;
}

#results .roll.removed .value {
	text-decoration: line-through;
	color: gray;
}

#results .roll button {
	border: none;
	background: transparent;
	text-align: center;
	cursor: pointer;
	color: #444;
	width: 1rem;
	height: 1rem;
	margin: 0 0 0 0.4rem;
	padding: 0;
}

#results .roll svg, #results .roll img {
	width: 1rem;
	height: 1rem;
}

#results .roll.removed button {
	visibilit: hidden;
}

/* }}} */
/* {{{ #help */

#help {
	margin: 0 0.6rem;
}

/* }}} */
/* {{{ print media */

@media print {
	form,
	.roll .label,
	.roll button,
	header,
	footer {
		display: none !important;
	}

	.roll .value {
		box-sizing: content-box;
		border: 1px solid gray;
		padding: 0.1rem 0.3rem;
	}
}

/* }}} */
