/** Page layout **/

html {
	height: 100%;
}

body {
	background-color: #15185c;
	/*background-image: url("/img/background.jpg");*/
	color: white; /*#15185c;*/
	min-height: 100%;
	position: relative;
	font-family: 'Rubik', Sans-serif;
	font-size: 16px;
	line-height: 28px;
}

::selection {
	background-color: rgba(255, 255, 255, 0.99);
	color: #222;
}

.page {
	margin-left: auto;
	margin-right: auto;
}

.container {
	padding: 10px 65px 10px 65px;
	/* width: 100%;  !!! */
	padding-right: 0px;
	padding-left: 0px;
}

.container-main{
	width: 100%;
	padding-right: 0px;
	padding-left: 0px;
	position: relative;
	margin-top: -40px;
}

.container-xxl{
	padding-left: 135px;
	padding-right: 135px;
	padding-top: 50px;
	padding-bottom: 50px;
}

.bg-blue {
	background-color: #15185c;
}

.bg-gold {
	background-color: #8d7c54;
}


.blue {
	color: #8d7c54;
	display: inline-block;
}

/** Header **/

#header {
	background-color: white; /**  #f5f5f5; **/
	border-bottom: 5px solid #8d7c54;
	min-height: 65px;
	overflow: auto;
	margin-left: auto;
	margin-right: auto;
	padding: 10px 65px 0px 65px;
	width: 100%;
	margin-bottom: 40px;
	font-family: Sans-serif;
	font-size: 13px;
}

#site-logo-text {
	color: #000;
	opacity: 1;
	float: left;
	display: inline-block;
	font-weight: bold;
	margin-top: 7px;
}

@media (max-width: 800px) {
	#header-logo {
		display: none;
	}
}

#menu-main a, #menu-main button {
	color: #0a0a0a;
	opacity: 0.7;
	width: 120px;
	margin-top: 2px;
	padding: 10px 5px;
	text-transform: uppercase;
	background: none;
	border: none;
	cursor: pointer;
	text-align: inherit;
	transition: opacity 200ms ease-in-out;
}

#menu-main .active a, #header a:hover, #menu-main button:hover {
	opacity: 1;
}

#menu-main a:focus {
	outline: none;
}

#menu-main li::before {
	background-image: url("/img/pointer.png");
	width: 13px;
	height: 11px;
	position: absolute;
	margin-top: 15px;
	left: -10px;
	opacity: 0;
	content: "";
	transition: all 200ms ease-in-out;
}

#menu-main li:hover::before, #menu-main .active::before {
	left: -16px;
	opacity: 1;
}

/** main page image - chatGPT **/
.bg-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: url('https://www.aricoma.com/getmedia/e24e7af0-f163-4546-8bab-8b4f798b2872/kontakty-d.jpg?width=1900') no-repeat center center;
    background-size: cover; /* Cover the entire area of the div */
    z-index: -1; /* Ensures the background stays behind other content */
    display: flex;
    align-items: center; /* Vertically centers the child elements */
    justify-content: center; /* Horizontally centers the child elements */
    height: 100vh; /* Full viewport height */
}

/** Footer **/

#footer {
	font-size: 10px;
	text-align: center;
	padding: 10px 65px 0px 65px;
	position: absolute;
	/*bottom: 0;*/
	width: 100%;
	z-index: 10;
}

#footer .logo {
	font-size: 24px;
	font-family: Sans-Serif;
	font-weight: bold;
	float: left;
	padding-right: 5px;
}

#footer .limiter {
	height: 30px;
	border-left: 2px solid;
	float: left;
	margin-top: 2px;
	padding-right: 5px;
}

#footer p {
	float: left;
	text-align: left;
	padding: 0;
	margin: 0;
}

#footer .fade {
	opacity: 0.20;
	display: inline-block;
	padding-bottom: 5px;
}

#footer .fade:hover {
	opacity: 1;
}

/** Background **/

.background-dot {
	position: fixed;
	z-index: -5;
}

.background-dot::selection {
	background-color: rgba(10, 10, 10, 0.99);
	color: #f5f5f5;
}

#dotCanvas {
	position: absolute;
	opacity: 0;
	bottom: 0;
	z-index: -10;
	width: 100%;
	transition: opacity 0.5s ease-in;
}

/** Landing Page **/

#ctfx-main-logo {
	position: absolute;
	width: 740px;
	margin-left: auto;
	margin-right: auto;
	left: 0;
	right: 0;
	padding-top: 50px;
}

.main-intro-text {
	font-size: 20px;
	padding-top: 140px;
	text-align: center;
	display: flex;
        align-items: center; /* Center content vertically */
        justify-content: center; /* Center content horizontally */
        height:300px; /* 100vh; /* Use the full height of the viewport */
        text-align: center;
}

/** Headings **/

.typewriter {
    display: inline-block;
    border-right: 2px solid rgba(255,255,255,.75);
    white-space: nowrap;
    overflow: hidden;
    animation: typewriter 1s steps(44) 0.25s 1 normal both,
               blinkTextCursor 500ms steps(44) infinite;
}

@keyframes typewriter {
  from {max-width: 0;}
  to {max-width: 100%; border-right: none;}
}

@keyframes blinkTextCursor {
  from {border-right-color: rgba(255,255,255,.75);}
  to {border-right-color: transparent;}
}

/** Stylized Dropdown Arrows **/
	
.dropdown {
	width: 34px;
	height: 34px;
	top: 6px;
	display: inline-block;
	background: url("/img/ui/Aricoma_Avatar_RGB_white.png"); /* "/img/ui/dropdownGreen.png");*/
	background-size: cover;
}

.dropdown-a {
	width: 34px;
	position: absolute;
	background: url("/img/ui/dropdownGray.png");
	animation: maskdown-first 3s infinite ease-out;
}

.dropdown-b {
	width: 34px;
	position: absolute;
	background: url("/img/ui/dropdownGreen.png");
	animation: maskdown-second 3s infinite ease-out;
}

.dropdown-blue .dropdown {
	background: url("/img/ui/dropdownBlue.png");
}

.dropdown-blue .dropdown-b {
	background: url("/img/ui/dropdownBlue.png");
}

.dropdown-red .dropdown {
	background: url("/img/ui/dropdownRed.png");
}

.dropdown-red .dropdown-b {
	background: url("/img/ui/dropdownRed.png");
}

@keyframes maskdown-first {
 0% { height: 0px; }
 20% { height: 34px; }
 100% { height: 34px; }
}

@keyframes maskdown-second {
 0% { height: 0px; }
 50% { height: 0px; }
 70% { height: 34px; }
 100% { height: 34px; }
}

/** Dropdown menus **/

.dropdown-menu {
	border: none;
	border-radius: 0px;
	margin-top: 0px;
	padding: 0px;
}

.dropdown-menu li a {
	transition: none;
	background-color: #505050;
	color: #fff;
	padding: 5px 20px 5px 20px;
}

.dropdown-menu li a:hover {
	background-color: #cfff42;
	color: #000;
}

.dropdown-menu li a:focus {
	outline: none;
}

.dropdown-header {
	background-color: #707070;
	color: #fff;
	padding: 5px 20px 5px 20px;
}

.dropdown-header::before {
	content: ">> ";
}

/** Menus **/

.menu {
	margin-top: 5px;
	margin-bottom: 20px;
}

.menu .btn-xs {
	margin-right: 5px;
	margin-top: 5px;
}

/** Buttons **/

.btn {
	border: none;
	border-radius: 0px;
	opacity: 1 !important;
	vertical-align: middle;
	transform-style: preserve-3d;
}

.btn-xs {
	background-color: #505050 !important;
	padding: 5px 10px 5px 10px;
	transition: all 200ms ease-in-out;
	font-size: 16px;
	min-height: 34px;
	min-width: 34px;
}

.btn-lg {
	position: relative;
	text-transform: uppercase;
	min-width: 240px;
	padding: 7px 20px 7px 20px;
	z-index: 10;
	min-height: 45px;
	font-size: 20px;
	background-color: #fff !important;
	color: #000;
	transition: color 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.btn-lg:hover {
	color: #fff;
}

.btn-lg::before {
	width: 100%;
	height: 5px;
	position: absolute;
	z-index: -1;
	bottom: 0;
	left: 0;
	content: "";
	transition: height 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.btn-lg:hover::before {
	height: 100%;
}

.btn-default {
	min-width: 120px;
}

.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary:focus:active, .btn-primary:hover:active {
	background-color: #8d7c54 !important;
	transition: all 200ms ease-in-out;
}

.btn-warning:hover, .open .btn-warning, .btn-warning:focus, .btn-warning:active, .btn-warning:focus:active, .btn-warning:hover:active {
	background-color: #8d7c54 !important;
	color: #000 !important;
	transition: all 200ms ease-in-out;
}

.btn-danger:hover, .open .btn-danger, .btn-danger:focus, .btn-danger:active, .btn-danger:focus:active, .btn-danger:hover:active {
	background-color: #8d7c54 !important;
	transition: all 200ms ease-in-out;
}

.btn-default:focus, .btn-default:active, .btn-default:focus:active, .btn-default:hover:active {
	background-color: #505050 !important;
	color: #fff !important;
	transition: all 200ms ease-in-out;
}

.btn-primary::before {
	background-color: #8d7c54;
}

.btn-danger::before {
	background-color: #ff4242;
}

.btn-warning::before {
	background-color: #8d7c54; 
}

.btn-default::before {
	background-color: #505050;
}

/** Default HTML Elements **/

.table-striped > tbody > tr:nth-of-type(2n), .table-striped > tbody > tr:nth-of-type(2n):hover {
	background-color: rgba(10, 10, 10, 0.125);
	color: white;
}

.table-striped > tbody > tr:nth-of-type(2n+1) {
	background-color: rgba(255, 255, 255, 0.125);
	color: white;
}

.table > tbody > tr > td {
	vertical-align: middle;
}

h4 {
	font-size: 22px;
}

h2 {
    font-weight: bold;
}

a {
	color: #8d7c54;
	transition: color 200ms ease-in-out;
}

a:hover, a:focus {
	color: #cfff42;
}

img::selection {
	background: none;
}

select {
	cursor: pointer;
}

textarea {
	min-height: 38px;
	resize: vertical;
}

/** News **/

.news-body {
	font-size:16px;
	margin-top: -10px;
	padding: 5px 5px 5px 15px;
}

/** Forms **/

.form-control:focus {
	border: none;
	box-shadow: none;
}

.form-group input[type='checkbox'] {
    -webkit-appearance: none;
    width: 34px;
    height: 34px;
    margin-top: 0px;
    background-color: transparent;
    background-image: url("/img/ui/unchecked.png");
}

.form-group input[type='checkbox']:checked {
    background-image: url("/img/ui/checked.png");
}

.form-group .checkbox-green input[type='checkbox']:checked {
    background-image: url("/img/ui/checkedBlack.png");
}

.form-group input[type='checkbox']:hover {
    cursor: pointer;
}

.form-group input[type='checkbox']:focus {
	outline: none;
}

.form-group input[type='checkbox']::before {
    content: "";
    width: 34px;
    height: 34px;
    background-color: #505050;
    border-bottom: 0px solid #8d7c54;
	z-index: -1;
    position: absolute;
    transition: border-bottom 200ms ease-in-out;
}

.form-group input[type='checkbox']:checked::before {
    border-bottom: 34px solid #8d7c54;
}

.form-group .checkbox-red input[type='checkbox']::before {
    border-bottom: 0px solid #ff4242;
}

.form-group .checkbox-red input[type='checkbox']:checked::before {
    border-bottom: 34px solid #ff4242;
}

.form-group .checkbox-green input[type='checkbox']::before {
    border-bottom: 0px solid #cfff42;
}

.form-group .checkbox-green input[type='checkbox']:checked::before {
    border-bottom: 34px solid #cfff42;
}

.form-control {
	position: relative;
	font-weight: bold;
	font-size: 20px;
	background-color: #f5f5f5;
	color: #0a0a0a;
	border: none;
	border-radius: 0px;
	height: auto;
	box-sizing: border-box;
	padding: 5px 5px 5px 12px;
}

.form-group {
	margin-bottom: 10px;
}

.form-group label {
	font-size: 18px;
}

.form-flag {
	margin-top: 15px;
}

.form-black .form-control {
	background-color: #0a0a0a;
	color: #f5f5f5;
	padding-bottom: 5px;
}

.form-control::selection {
	background-color: rgba(10, 10, 10, 0.99);
	color: #fff;
}

.form-black .form-control::selection {
	background-color: rgba(255, 255, 255, 0.99);
	color: #000;
}

.form-black .btn {
	background-color: #0a0a0a !important;
	color: #f5f5f5;
}

/** Challenges page **/

#category-name {
	font-size: 42px;
	font-weight: bold;
	display: inline-block;
    white-space: nowrap;
}

#categories-menu li {
	overflow: hidden;
	text-overflow: ellipsis;
	vertical-align: bottom;
	border: none;
	border-radius: 0px;
	background-color: #505050;
	opacity: 1 !important;
	transition: all 200ms ease-in-out;
	cursor: pointer;
	float: left;
	text-align: center;
	margin: 0px 5px 5px 0px;
}

#categories-menu a {
	display: block;
	text-decoration: none;
	color: #fff;
	min-width: 34px;
	min-height: 34px;
	padding: 6px 10px 5px 10px;
	transition: all 200ms ease-in-out;
}

#categories-menu a:hover {
	background-color: white; /* #cfff42;*/
	color: #000;
}

#categories-menu a:focus {
	outline: none;
}

#categories-menu li.active {
	background-color: white; /*#cfff42;*/
}

#categories-menu li.active a {
	color: #000;
}

#categories-menu li.disabled {
	background-color: #f5f5f5;
}

#categories-menu li.disabled a {
	color: #505050;
}

#categories-menu li.disabled a:hover {
	background-color: #f5f5f5;
}

#categories-menu {
	overflow: auto;
	padding: 0px;
}

#category-description {
	margin-bottom: 15px;
	line-height: 1.3;
}

.category-tab-content {
	padding: 20px;
	background: #fff;
	border-top: none;
}

.challenge-container {
	margin-bottom: 20px;
}

.panel-group .panel {
	border: none;
	border-radius: 0px;
	margin-bottom: 15px;
	background-color: #222;
	color: #fff;
	overflow-wrap: break-word;
}

.panel-heading {
	border-radius: 0px;
	color: #f5f5f5;
}

.panel-heading small {
	color: #f5f5f5;
	opacity: 0.6;
}

.panel-heading .time-left {
	position: relative;
	float: right;
	top: -32px;
	color: #f5f5f5;
}

.panel-heading .glyphicon-time {
	margin-right: 5px;
	top: -28px;
}

.challenge-solved {
	position: relative;
	bottom: 12px;
    display: inline-block;
    float: right;
    color: #f5f5f5;
    font-size: 20px;
    font-weight: bold;
}

.challenge-solved span {
	position: relative;
	bottom: -8px;
    background-image: url("/img/ui/checked.png");
    display: inline-block;
    width: 34px;
    height: 34px;
}

.panel-body{
  border: 2px solid #8d7c54;
  background-color: #15185c;
}


.panel-default .panel-heading {
	background-color: #8d7c54; /*505050;*/
	padding: 15px 15px 5px 15px;
	border-bottom: 5px solid #8d7c54;
}

.panel-success .panel-heading {
	background-color: #8d7c54;
	padding: 15px 15px 5px 15px;
}

.challenge-head {
	font-size: 24px;
	margin-top: 0px;
	color: #f5f5f5;
}

.challenge-head a {
	color: #f5f5f5;
	font-weight: bold;
}

.challenge-container h1 {
	font-size: 15pt;
}

.challenge-container .alert {
	margin-bottom: 0px;
}

.challenge-metadata ul {
	list-style-type: none;
	padding-left: 25px;
}

.challenge-metadata ul li span.glyphicon {
	margin-right: 5px;
}

.challenge-submit-metadata .glyphicon {
	padding-top: 10px;
	padding-right: 5px;
}

.challenge-submit-metadata p {
	margin: 0;
}

.page-header {
	border-bottom: 2px solid #8d7c54;
	margin: 20px 0 20px;
}

.no-padding-or-margin {
	padding:0;
	margin:0;
}

.alert h1, h2, h3 {
	padding: 0;
	margin: 0;
}

.discreet-inline {
	padding:0;
	margin:0;
	display:inline;
}

.small-icon {
	width: 16px;
	height: 16px;
}

.bbcode_columns {
	width: 100%;
}

.bbcode_column {
	padding: 10px;
}

/** Score table **/

.our-team {
	color: #8d7c54 !important;
}

.team-table > tbody > tr > td {
	vertical-align: top;
}

.team-table td {
	border-top: none !important;
}

.team-table a {
	color: #f5f5f5;
}

.team-table {
	font-weight: bold;
}

.team-table > tbody > tr:nth-of-type(2n+1) {
	background-color: rgba(10, 10, 10, 0.125);
}

.team-table .team-number {
	padding-left: 0px;
	padding-right: 3px;
	width: 5px;
	display: inline;
	color: #505050;
}

.team-table .team-name {
	max-width: 200px;
	width: 20px;
	text-align: right;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	padding-left: 0px;
}

.team-table .team-flag {
	padding-left: 0px;
	width: 10px;
}

.team-table .team-progress-bar {
	float: left;
	width: 100%;
	border-bottom: 5px solid #505050;
	padding-left: 0px;
	padding-right: 0px;
	padding-bottom: 2px;
}

.team-table .progress {
	background: none;
	margin-bottom: 0px;
	border-radius: 0px;
	height: 23px;
}

.progress svg {
	width: 0px;
}

.team-table .progress svg {
	width: 23px;
	float: right;
}

.team-table .progress-bar {
	background-color: #8d7c54;
}

.team-table .team-score {
	position: absolute;
	margin-left: -3px;
}

.challenge-table .team-name {
	max-width: 300px;
	overflow: hidden;
	text-overflow: ellipsis;
}

.glyphicon {
	opacity: 0.8;
}

pre {
	font-size: 9pt;
	overflow: auto;
	line-height: 100%;
  background-color: white;
}

pre::selection {
	background-color: rgba(10, 10, 10, 0.99);
	color: #f5f5f5;
}

.inline-pre {
	display: inline;
	padding: 2px;
}

.center {
	text-align: center;
}

.red {
	color: red;
}

/**  Messages / Modal dialogs **/

.modal-header .close {
	position: absolute;
	right: 20px;
	z-index: 1;
	font-family: Sans-serif;
	font-weight: normal;
	font-size: 40px;
	transition: opacity 200ms ease-in-out;
}

.modal-header .close:hover {
	opacity: 1;
}

.modal-content {
	max-width: 1100px;
	color: #000;
	border: none;
	border-radius: 0px;
}

.modal-content .page-header {
	margin-top: 20px;
	margin-bottom: 0px;
}

.modal-content a {
	color: #0a0a0a;
	text-decoration: underline;
}

.modal-content a:hover {
	color: #2a66a3;
}

.modal.challenge-attempt .modal-header {
	background: no-repeat 50% 3px;
	background-size: 70px;
	color: white;
	min-height: 70px;
}

.modal.challenge-attempt.incorrect .modal-header {
	background-image: url('../img/padlock_white.svg');
	border: none;
	background-color: #ff4242;
}

.modal.challenge-attempt.correct .modal-header {
	background-image: url('../img/flag_white.svg');
	border: none;
	background-color: #8d7c54;
}

.modal.challenge-attempt button {
	float: right;
}

.modal.challenge-attempt p {
	float: left;
	margin-top: 12px;
}

.modal.challenge-attempt .modal-body {
	overflow: auto;
	vertical-align: middle;
}

/** Alerts **/

.alert {
	border: none;
	border-radius: 0px;
	background: none;
	padding: 0px;
	margin-bottom: 15px;
	font-family: Sans-serif;
	font-size: 20px;
	transform-style: preserve-3d;
}

.alert-danger {
	color: #ff4242;
}

.alert-info {
	color: #f5f5f5;
}

.alert-success {
	color: #cfff42;
}

.alert-warning {
	color: #cfff42;
}

.alert .dropdown {
	transform: rotate(270deg);
	top: 10px;
	margin-right: 5px;
}

#categories-menu .dropdown, #menu-management .dropdown {
	display: inline-block;
	float: left;
	top: 0px; 
	/*transform: rotate(270deg);*/
	margin-right: 5px;
}

#menu-management .dropdown {
	top: 5px;
}

/** Misc **/

.bbcode_spoiler {
	background-color: #f5f5f5;
	color: #f5f5f5;
}

.bbcode_spoiler::selection {
	background-color: rgba(255, 255, 255, 0.99);
	color: #fff;
}

.bbcode_spoiler:hover {
	color: #000;
}

#visualise-competition {
    background-color: rgba(255,255,255,0.1);
	width: 1000px;
	height: 700px;
}

@media screen and (min-width: 768px) {
	.masthead,
	.marketing,
	.footer {
		padding-left: 0;
		padding-right: 0;
	}
}

.jumbotron {
	text-align: center;
	background-color: transparent;
}

.jumbotron .btn {
	font-size: 21px;
	padding: 14px 24px;
}

.progress {
	background-color: rgba(255, 255, 255, 0.1);
}

.progress-striped .progress-bar-info, .progress-striped .progress-bar-success {
	background-image: linear-gradient(45deg,rgb(255, 255, 255) 25%,transparent 25%,transparent 50%,rgb(255, 255, 255) 50%,rgb(255, 255, 255) 75%,transparent 75%,transparent)
}

.progress-bar-info, .progress-bar-success {
	background-color: #ff4242;
}

ul li a {
  color: white;
}
