﻿.sortable-table__button {
	align-items: center;
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	display: flex;
	font: inherit;
	font-weight: bold;
	gap: 0.4em;
	justify-content: space-between;
	padding: 0;
	text-align: inherit;
	width: 100%;
}

.sortable-table__button::after {
	content: "\2195";
	font-size: 0.85em;
	opacity: 0.45;
}

.sortable-table th[aria-sort="ascending"] .sortable-table__button::after {
	content: "\2191";
	opacity: 1;
}

.sortable-table th[aria-sort="descending"] .sortable-table__button::after {
	content: "\2193";
	opacity: 1;
}

.sortable-table__button:focus {
	outline: 2px solid #337ab7;
	outline-offset: -2px;
}

.sortable-table th.text-right .sortable-table__button {
	justify-content: flex-end;
}

:root {
	--theme-bg: #fff;
	--theme-surface: #fff;
	--theme-raised: #f5f5f5;
	--theme-hover: #f5f5f5;
	--theme-stripe: #f9f9f9;
	--theme-text: #333;
	--theme-muted: #777;
	--theme-border: #ddd;
	--theme-input-border: #ccc;
	--theme-link: #337ab7;
	--theme-link-hover: #23527c;
	--theme-focus: #337ab7;
	--theme-info: #d9edf7;
	--theme-success: #dff0d8;
	--theme-warning: #fcf8e3;
	--theme-danger: #f2dede;
	--theme-navbar: #f8f8f8;
	--theme-code-bg: #f9f2f4;
	--theme-code-text: #c7254e;
	--theme-info-text: #31708f;
	--theme-success-text: #3c763d;
	--theme-warning-text: #8a6d3b;
	--theme-danger-text: #a94442;
	color-scheme: light;
}

:root[data-theme="light"] {
	color-scheme: light;
}

:root[data-theme="dark"] {
	--theme-bg: #14171b;
	--theme-surface: #1c2127;
	--theme-raised: #272e36;
	--theme-hover: #303943;
	--theme-stripe: #262c33;
	--theme-text: #e7ebef;
	--theme-muted: #b2bdc8;
	--theme-border: #45505c;
	--theme-input-border: #697786;
	--theme-link: #91c9ff;
	--theme-link-hover: #c0e1ff;
	--theme-focus: #abd6ff;
	--theme-info: #19384b;
	--theme-success: #1c3c31;
	--theme-warning: #4b3b1b;
	--theme-danger: #4b292d;
	--theme-navbar: #1c2127;
	--theme-code-bg: #303038;
	--theme-code-text: #f5b7c8;
	--theme-info-text: #96d7f4;
	--theme-success-text: #9de7b6;
	--theme-warning-text: #f4d28d;
	--theme-danger-text: #ffadb3;
	--theme-marked: #253e55;
	--theme-unbilled: #214637;
	--theme-table-section-border: #697786;
	--theme-sql-bg: #272e36;
	--theme-period-border: #45505c;
	color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--theme-bg: #14171b;
		--theme-surface: #1c2127;
		--theme-raised: #272e36;
		--theme-hover: #303943;
		--theme-stripe: #262c33;
		--theme-text: #e7ebef;
		--theme-muted: #b2bdc8;
		--theme-border: #45505c;
		--theme-input-border: #697786;
		--theme-link: #91c9ff;
		--theme-link-hover: #c0e1ff;
		--theme-focus: #abd6ff;
		--theme-info: #19384b;
		--theme-success: #1c3c31;
		--theme-warning: #4b3b1b;
		--theme-danger: #4b292d;
		--theme-navbar: #1c2127;
		--theme-code-bg: #303038;
		--theme-code-text: #f5b7c8;
		--theme-info-text: #96d7f4;
		--theme-success-text: #9de7b6;
		--theme-warning-text: #f4d28d;
		--theme-danger-text: #ffadb3;
		--theme-marked: #253e55;
		--theme-unbilled: #214637;
		--theme-table-section-border: #697786;
		--theme-sql-bg: #272e36;
		--theme-period-border: #45505c;
		color-scheme: dark;
	}
}

body {
	background-color: var(--theme-bg);
	color: var(--theme-text);
}

a,
.btn-link {
	color: var(--theme-link);
}

a:hover,
a:focus,
.btn-link:hover,
.btn-link:focus {
	color: var(--theme-link-hover);
}

.text-muted,
.help-block,
.form-control::placeholder {
	color: var(--theme-muted);
}

hr,
fieldset,
.page-header {
	border-color: var(--theme-border);
}

.theme-control {
	align-items: center;
	background: var(--theme-surface);
	border-bottom: 1px solid var(--theme-border);
	color: var(--theme-text);
	display: flex;
	gap: 0.6em;
	justify-content: flex-end;
	min-height: 40px;
	padding: 4px 12px;
}

.theme-control label {
	font-weight: normal;
	margin: 0;
}

.theme-control select {
	width: auto;
}

.user-status {
	align-items: center;
	border-bottom: 1px solid var(--theme-border);
	display: flex;
	flex-wrap: wrap;
	gap: 0.25em 1em;
	justify-content: space-between;
}

.user-status__account {
	flex: 1 1 auto;
}

.user-status .theme-control {
	background: transparent;
	border: 0;
	color: inherit;
	flex: 0 0 auto;
	font-size: inherit;
	min-height: 0;
	padding: 2px 0;
}

.user-status .theme-control select {
	font-size: inherit;
	height: 24px;
	line-height: 20px;
	padding: 1px 6px;
}

.form-control,
input:not([type]),
input[type="date"],
input[type="datetime-local"],
input[type="number"],
input[type="search"],
input[type="text"],
textarea,
select {
	background-color: var(--theme-surface);
	border-color: var(--theme-input-border);
	color: var(--theme-text);
}

.form-control:focus,
input:focus,
textarea:focus,
select:focus,
.btn:focus,
a:focus,
.sortable-table__button:focus {
	border-color: var(--theme-focus);
	outline-color: var(--theme-focus);
}

.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
	background-color: var(--theme-raised);
}

.table,
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tbody > tr > td,
.table > tfoot > tr > td,
.table-bordered,
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > td {
	border-color: var(--theme-border);
}

.table .table {
	background-color: transparent;
}

.table-striped > tbody > tr:nth-of-type(odd) {
	background-color: var(--theme-stripe);
}

.table-hover > tbody > tr:hover,
.table > tbody > tr.active > td,
.table > tbody > tr > td.active {
	background-color: var(--theme-hover);
}

.panel,
.panel-default,
.dropdown-menu,
.modal-content,
.popover,
.thumbnail,
.list-group-item,
.pagination > li > a,
.pagination > li > span,
.btn-default {
	background-color: var(--theme-surface);
	border-color: var(--theme-border);
	color: var(--theme-text);
}

.well,
.panel,
.navbar-default,
.dropdown-menu,
.modal-content,
.breadcrumb,
.list-group-item,
.pagination > li > a,
.pagination > li > span,
.btn-default {
	box-shadow: none;
}

.well,
.breadcrumb {
	background-color: var(--theme-raised);
	border-color: var(--theme-border);
	color: var(--theme-text);
}

.navbar-default {
	background-color: var(--theme-navbar);
	border-color: var(--theme-border);
}

.input-group-addon,
.progress {
	background-color: var(--theme-raised);
	border-color: var(--theme-border);
	color: var(--theme-text);
}

.modal-header,
.modal-footer,
.table-responsive {
	border-color: var(--theme-border);
}

.close {
	color: var(--theme-text);
	opacity: 0.75;
}

.close:hover,
.close:focus {
	color: var(--theme-text);
	opacity: 1;
}

.navbar-default .navbar-toggle,
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
	background-color: var(--theme-raised);
	border-color: var(--theme-border);
}

.navbar-default .navbar-toggle .icon-bar {
	background-color: var(--theme-muted);
}

pre {
	background-color: var(--theme-raised);
	border-color: var(--theme-border);
	color: var(--theme-text);
}

code {
	background-color: var(--theme-code-bg);
	color: var(--theme-code-text);
}

.panel-default > .panel-heading,
.popover-title,
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus,
.list-group-item:hover,
.btn-default:hover,
.btn-default:focus,
.pagination > li > a:hover,
.pagination > li > a:focus {
	background-color: var(--theme-raised);
	color: var(--theme-text);
}

.dropdown-menu > li > a,
.navbar-default .navbar-nav > li > a,
.navbar-default .navbar-brand {
	color: var(--theme-text);
}

.nav-tabs > li > a {
	color: var(--theme-link);
}

.nav-tabs,
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
	border-color: var(--theme-border);
}

.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus,
.nav-tabs > li > a:hover,
.nav-pills > li > a:hover {
	background-color: var(--theme-raised);
	color: var(--theme-text);
}

.navbar-default .navbar-collapse {
	background-color: var(--theme-surface);
	border-color: var(--theme-border);
}

.alert-info,
.bg-info,
.table > tbody > tr.info > td {
	background-color: var(--theme-info);
}

.alert-success,
.bg-success,
.table > tbody > tr.success > td {
	background-color: var(--theme-success);
}

.alert-warning,
.bg-warning,
.table > tbody > tr.warning > td {
	background-color: var(--theme-warning);
}

.alert-danger,
.bg-danger,
.table > tbody > tr.danger > td {
	background-color: var(--theme-danger);
}

.alert,
.alert a,
.bg-info,
.bg-success,
.bg-warning,
.bg-danger {
	color: var(--theme-text);
}

.alert {
	border-color: var(--theme-border);
}

.text-info {
	color: var(--theme-info-text);
}

.text-success,
.has-success .help-block,
.has-success .control-label {
	color: var(--theme-success-text);
}

.text-warning,
.has-warning .help-block,
.has-warning .control-label {
	color: var(--theme-warning-text);
}

.text-danger,
.has-error .help-block,
.has-error .control-label {
	color: var(--theme-danger-text);
}

@media print {
	:root,
	:root[data-theme="dark"],
	:root:not([data-theme="light"]) {
		--theme-bg: #fff;
		--theme-surface: #fff;
		--theme-raised: #f5f5f5;
		--theme-hover: #f5f5f5;
		--theme-stripe: #f9f9f9;
		--theme-text: #333;
		--theme-muted: #777;
		--theme-border: #ddd;
		--theme-input-border: #ccc;
		--theme-link: #337ab7;
		--theme-link-hover: #23527c;
		--theme-focus: #337ab7;
		--theme-info: #d9edf7;
		--theme-success: #dff0d8;
		--theme-warning: #fcf8e3;
		--theme-danger: #f2dede;
		--theme-navbar: #f8f8f8;
		--theme-code-bg: #f9f2f4;
		--theme-code-text: #c7254e;
		--theme-info-text: #31708f;
		--theme-success-text: #3c763d;
		--theme-warning-text: #8a6d3b;
		--theme-danger-text: #a94442;
		--theme-marked: #ddf;
		--theme-unbilled: lightgreen;
		--theme-table-section-border: black;
		--theme-sql-bg: #eee;
		--theme-period-border: lightgray;
		color-scheme: light;
	}

	.theme-control {
		display: none;
	}
}
