/*
	TPsoft.org 2000-2025
	Cascade Style Document

	posledna editacia:
						2025-04-13 00:09  Igor

	01 - GENERAL
	02 - HEADER
	03 - DASHBOARD
	04 - BUG ADD
	05 - ARCHIVE
	06 - API
	07 - ABOUT
	08 - REPORT
	80 - FORM
	99 - LIGHT MODE

*/

/* ----------------------------------------------------
   01 - GENERAL
   */
:root {
	font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
	line-height: 1.5;
	font-weight: 400;

	font-synthesis: none;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;

	--color-bg: #242424;
	--color-bg0: #0d5eaf;
	--color-bg1: #449ef8;
	--color-bg2: #449ef820;
	--color-bgGray: #797979;
	--color-bgOrange: #af6000;
	--color-bgRed: #be0101;
	--color-text0: #fff;
	--color-text1: rgb(11, 11, 104);
	--color-text2: #449ef8;
	--color-text3: #7bb8f5;

	/* color-scheme: light dark; */
	color: var(--color-text0);
	background-color: var(--color-bg);
}

a {
	font-weight: 500;
	color: var(--color-text2);
	text-decoration: inherit;
	transition: all 0.3s;
}
a:hover {
	color: var(--color-text3);
	text-shadow: 1px 1px 5px var(--color-bg1);
}

body {
	margin: 0;
	display: flex;
	flex-direction: column;
	/* place-items: center; */
	min-width: 320px;
	min-height: 100vh;
	font-size: 14px;
}

h1 {
	font-size: 24px;
	line-height: 1.1;
}

button,
.button {
	border-radius: 8px;
	border: 1px solid var(--color-bg0);
	padding: 0.6em 1.2em;
	font-size: 1em;
	font-weight: 500;
	font-family: inherit;
	background-color: var(--color-bg2);
	color: var(--color-text0);
	cursor: pointer;
	transition: all 0.3s;
}
button:hover,
.button:hover {
	border-color: var(--color-bg1);
	background-color: var(--color-bg0);
}
button:focus,
.button:focus,
button:focus-visible,
.button:focus-visible {
	outline: 4px auto -webkit-focus-ring-color;
}

.card {
	padding: 2em;
}

#app {
	/* max-width: 1280px; */
	/* margin: 0 auto; */
	/* padding: 10px; */
	/* text-align: center; */
}

/* ----------------------------------------------------
   02 - HEADER
   */
#header {
	background-color: var(--color-bg0);
	color: var(--color-text0);
	padding: 20px;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: end;
}
#header a,
#header a:visited {
	color: var(--color-text0);
}
#header .logo {
	display: flex;
	flex-direction: row;
	align-items: center;
}
#header .short-bug {
	display: flex;
	flex-direction: row;
	flex-grow: 2;
	/* border: 1px red solid; */
	padding: 0px 20px;
	align-items: center;
	justify-content: center
}
#header .short-bug input {
	width: 80%;
	padding: 5px;
	border: 1px solid #ccc;
	border-radius: 3px;
	background-color: var(--color-bg2);
	color: var(--color-text0);
}
#header .menu {
	display: flex;
	flex-direction: row;
}
#header .menu a,
#header .menu a:visited,
#header button {
	border: 1px solid var(--color-text0);
	padding: 5px 10px;
	border-radius: 5px;
	margin-left: 20px;
	transition: all 0.3s;
}
#header .menu a:hover,
#header button:hover {
	color: var(--color-text1);
	background-color: var(--color-bg1);
}
#header .short-bug button {
	margin: 0px;

	/* height: 30px; */
}
#header h1 {
	display: inline-block;
}
@media (max-width: 1400px) {
	#header {
		flex-wrap: wrap;
	}
	#header .short-bug {
		width: 50%;
		padding: 0px;
		align-items: end;
		justify-content: flex-end;
	}
	#header .menu {
		width: 100%;
		align-items: end;
		justify-content: flex-end;
		padding-top: 20px;
	}
}
@media (max-width: 900px) {
	#header {
		flex-direction: column;
		align-items: center;
	}
	#header .short-bug {
		width: 100%;
		align-items: center;
		justify-content: center
	}
	#header .menu {
		flex-wrap: wrap;
		justify-content: center;
	}
	#header .menu a {
		margin: 5px;
	}
}
@media (max-width: 600px) {
	#header .short-bug {
		flex-direction: column;
	}
}

/* ----------------------------------------------------
   03 - DASHBOARD
   */
#dashboard {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: stretch;
	/* border: 1px red solid; */
	min-height: calc(100vh - 150px);
}
#dashboard > div {
	width: 25%;
}
#dashboard > div:not(:first-child) {
	border-left: 5px var(--color-bg0) dotted;
}
#dashboard > div h2 {
	background-color: var(--color-bg1);
	margin: 0px;
	padding: 5px;
	text-align: center;
}
#dashboard .report {
	margin: 20px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: stretch;
	border-left: 5px var(--color-bg1) solid;
	border-radius: 5px;
	transition: all 0.3s;
}
#dashboard .report .report-header {
	background-color: var(--color-bg0);
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	border-top-right-radius: 5px;
	cursor: grab;
}
#dashboard .report .report-header .report-title {
}
#dashboard .report .report-header h3 {
	margin: 0px;
	padding: 5px 10px;
}
#dashboard .report .report-description {
	padding: 10px;
	text-align: justify;
	white-space: pre-line;
	border-right: 5px var(--color-bg0) solid;
	background-color: var(--color-bg2);
}
#dashboard .report .report-footer {
	background-color: var(--color-bg1);
	border-bottom-right-radius: 5px;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
}
#dashboard .report .report-group {
	text-align: left;
	padding: 5px;
}
#dashboard .report .report-id {
	text-align: center;
	padding: 5px;
}
#dashboard .report .report-date {
	text-align: right;
	padding: 5px;
}
#dashboard .report:hover {
	filter: brightness(1.2);
}
#dashboard .dragging .report {
	/* border: 2px red solid; */
	box-shadow: 0px 0px 10px var(--color-bg1);
}
#dashboard:has(.dragging) .draggable-item:not(.dragging) .report {
	opacity: 0.4;
}
#dashboard .report-priority-0 .report-header {
	background-color: var(--color-bgGray);
}
#dashboard .report-priority-0 .report-description {
	border-right-color: var(--color-bgGray);
}
#dashboard .report-priority-1 .report-header {
	background-color: var(--color-bg0);
}
#dashboard .report-priority-1 .report-description {
	border-right-color: var(--color-bg0);
}
#dashboard .report-priority-2 .report-header {
	background-color: var(--color-bgOrange);
}
#dashboard .report-priority-2 .report-description {
	border-right-color: var(--color-bgOrange);
}
#dashboard .report-priority-3 .report-header {
	background-color: var(--color-bgRed);
}
#dashboard .report-priority-3 .report-description {
	border-right-color: var(--color-bgRed);
}
@media (max-width: 900px) {
	#dashboard {
		flex-direction: column;
	}
	#dashboard > div {
		width: 100%;
	}
	#dashboard > div:not(:first-child) {
		border-left: none;
	}
	#dashboard > div:not(:first-child) {
		border-top: 5px var(--color-bg0) dotted;
	}
}

/* ----------------------------------------------------
   04 - BUG ADD
   */
#bug-add {
	margin: 0 auto;
	padding: 20px;
}
#bug-add .cols {
	/* border: 1px red solid; */
	display: flex;
	flex-direction: row;
	justify-content: space-between;
}
@media (max-width: 600px) {
	#bug-add .cols {
		flex-direction: column;
	}
}

/* ----------------------------------------------------
   05 - ARCHIVE
   */
#archive {
	margin: 0 auto;
	padding: 20px;
	min-height: 110vh;
}
#archive .reports {
	/* border: 1px red solid; */
	display: flex;
	flex-direction: column;
	gap: 10px;
}
#archive .report-row {
	/* border: 1px blue solid; */
	display: flex;
	flex-direction: row;
	background-color: var(--color-bg2);
	justify-content: space-between;
	align-content: stretch;
	transition: all 0.3s;
	cursor: pointer;
}
#archive .report-row:hover {
	filter: brightness(1.4);
}
#archive .report-row .report-id,
#archive .report-row .title,
#archive .report-row .date,
#archive .report-row .group {
	/* border: 1px yellow solid; */
	width: auto;
	padding: 10px;
	flex: 1;
}
#archive .report-row .report-id {
	width: 50px;
	text-align: center;
	background-color: var(--color-bg0);
	flex: 0 1 auto;
}
#archive .loadmore {
	text-align: center;
	padding: 10px;
}
@media (max-width: 900px) {
	#archive .report-row {
		flex-wrap: wrap;
		justify-content: left;
	}
	#archive .report-row .title,
	#archive .report-row .date,
	#archive .report-row .group {
		flex: 0 0 auto;
	}
	#archive .report-row .title {
		width: calc(100% - 100px);
	}
	#archive .report-row .date {
		margin-left: 70px;
	}
	#archive .report-row .date,
	#archive .report-row .group {
		width: calc((100% - 140px) / 2);
	}
}
@media (max-width: 600px) {
	#archive .report-row .date,
	#archive .report-row .group {
		margin-left: 70px;
		width: calc(100% - 100px);
	}
}


/* ----------------------------------------------------
   06 - API
   */
#api {
	margin: 0 auto;
	padding: 20px;
}
#api .action {
	margin-top: 10px;
	padding-bottom: 10px;
	background-color: var(--color-bg2);
	transition: all 0.3s;
	min-width: 150px;
}
#api .action:hover {
	filter: brightness(1.2);
}
#api .action h3 {
	background-color: var(--color-bg0);
	margin: 0px;
	padding: 5px;
	text-align: center;
}
#api .action h4 {
	margin: 0px;
	padding-left: 10px;
}
#api .action p {
	padding: 10px;
	text-align: justify;
}
#api ul li {
	margin-bottom: 5px;
}
#api .param-type {
	background-color: var(--color-bg0);
	margin: 0px;
	padding: 2px 5px;
	text-align: center;
	border-radius: 5px;
	margin-left: 10px;
}
#api .param-optional {
	background-color: var(--color-bg1);
	margin: 0px;
	padding: 2px 5px;
	text-align: center;
	border-radius: 5px;
	margin-left: 10px;
}
#api .param-default {
	background-color: var(--color-bg2);
	margin: 0px;
	padding: 2px 5px;
	text-align: center;
	border-radius: 5px;
	margin-left: 10px;
}
#api .param-doc {
	color: var(--color-text3);
}

/* ----------------------------------------------------
   07 - ABOUT
   */
#about {
	margin: 0 auto;
	padding: 10px;
	text-align: center;
}
#about .cols {
	/* border: 1px red solid; */
	display: flex;
	flex-direction: row;
	justify-content: center;
}
#about .cols div {
	margin: 10px;
	padding: 10px;
	background-color: var(--color-bg0);
	transition: all 0.3s;
	min-width: 150px;
}
#about .cols div:hover {
	filter: brightness(1.2);
}
@media (max-width: 600px) {
	#about .cols {
		flex-direction: column;
	}
}

/* ----------------------------------------------------
   08 - REPORT
   */
#report {
	margin: 0 auto;
	padding: 10px;
}
#report .report-header {
	display: flex;
	flex-direction: row;
	/* justify-content: space-between; */
	flex-wrap: wrap;
	gap: 10px;
}
#report .report-header div {
	display: flex;
	flex-direction: row;
	/* margin-right: 20px; */
	align-items: center;
}
#report .report-header div span {
	background-color: var(--color-bg0);
	color: var(--color-text0);
	padding: 2px 10px;
	align-items: center;
}
#report .report-header div strong {
	background-color: var(--color-bg1);
	color: var(--color-text0);
	padding: 2px 10px;
	align-items: center;
}
#report .description {
	background-color: var(--color-bg2);
	padding: 10px;
	text-align: justify;
	white-space: pre-line
}
#report .attachments {
	display: flex;
	flex-direction: column;
}
#report .attachments .attachment {
	display: flex;
	flex-direction: column;
	background-color: var(--color-bg2);
	text-align: justify;
	white-space: pre-line;
	margin-top: 10px;
}
#report .attachments .attachment .attachment-header {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	background-color: var(--color-bg0);
	align-items: center;
}
#report .attachments .attachment .attachment-header .created,
#report .attachments .attachment .attachment-header .author {
	padding: 2px 10px;
}
#report .attachments .attachment .attachment-content {
	padding: 10px;
}
#report .attachment-new {
	margin-top: 30px;
}
@media (max-width: 600px) {
	#report .report-header {

	}
}

/* ----------------------------------------------------
   80 - FORM
   */
.form-group {
	margin-bottom: 10px;
}
.form-group label {
	display: block;
	font-weight: bold;
	margin-bottom: 5px;
}
.form-group input,
.form-group textarea {
	width: 99%;
	padding: 5px;
	border: 1px solid #ccc;
	border-radius: 3px;
	background-color: var(--color-bg2);
	color: var(--color-text0);
}
.form-actions {
	margin-top: 10px;
	text-align: right;
}
.form-actions button {
	margin-left: 10px;
}

/* ----------------------------------------------------
   99 - LIGHT MODE
   */
/* @media (prefers-color-scheme: light) {
	:root {
		color: #213547;
		background-color: #ffffff;
	}
	a:hover {
		color: #747bff;
	}
	button {
		background-color: #f9f9f9;
	}
} */
