@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400&display=swap');

* {
	-webkit-box-sizing: border-box; /* iOS <= 4 i Android <= 2.3 */
	-moz-box-sizing: border-box; /* Firefox */
	box-sizing: border-box; /* Chrome, Opera, Safari 5+ i IE 8+ */	
	font-family: 'Open Sans', sans-serif, Verdana, Helvetica, Arial, tahoma;	
}

:root {
	/* common */
	--accent-color: #b1c6d4;
	--url: #2a5fa3;
	--menu-url: #000;
	--main-menu-hover: #f4f4fd;
	--button: #377fc2;
	--button-txt: #ffffff;
	--button-green: rgb(98, 207, 98);
	--button-green-txt: rgb (0, 0, 0);
	--button-red: rgb(223, 160, 170);
	--button-red-txt: rgb (0, 0, 0);	
	--button-disabled: rgb(169, 169, 169);
	--button-disabled-txt: #ffffff;
	--button-shadow-color: rgba(81, 81, 86, 1);
	--inputs-bg: #ffffff;
	--inputs-disabled-bg: #e7e7e7;
	--placeholder-color: #bababa;
	--body-color: rgb(0, 0, 0);
	--body-bg: rgb(255, 255, 255);
	--err-txt-color: red;
	--green-txt: green;
	--invalid-bg: #ffffff;
	--invalid-border: #CF2147;
	--fixed-container-bg: #ffffff;
	--loader-circle-white: #ffffff;
	--loader-overlay: rgba(0, 0, 0, .70);
	--excel-marked-days: #bcfdb5;
	--excel-disabled-days: #e7e7e7e7;
	--excel-marked-heading: #8ad3ff;
	--swal-btn-confirm: rgb(48, 133, 214);
	--swal-btn-cancel: rgb(221, 51, 51);
}

body, html {
	padding: 0;
	margin: 0;	
}

html {
	/* wyjściowy rozmiar z której skorzysta jednostka rem */
	font-size: 16px;
}

body {  
	padding: 0;
	font-size: 1rem; 
	background: var(--body-bg);
}

a {
	color: var(--url);
	cursor: pointer;
	text-decoration: underline;
}

/* ikony z FontAwsome */
a.fa, a.fas {
	text-decoration: none;
}

/* loader */
#loader-overlay {
	display:    none;
	position:   fixed;
	z-index:    10005;
	top:        0;
	left:       0;
	height:     100%;
	width:      100%;
	background: var(--loader-overlay);
}
body.loading { overflow: hidden; }
body.loading #loader-overlay { display: block; }

.loader-animate {
	border: 8px solid var(--loader-circle-white); 
	border-top: 8px solid var(--button);
	border-radius: 50%;
	width: 70px;
	height: 70px;
	animation: spin 1.5s linear infinite;
	position: absolute;
	/* odejmujemy połowę szerokości oraz wysokości */
	left: calc(50% - 35px);
	left:-webkit-calc(50% - 35px);
	left:-moz-calc(50% - 35px);
	top: calc(50% - 35px);	
	top:-webkit-calc(50% - 35px);
	top:-moz-calc(50% - 35px);
}

@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}
/* loader END */

/* JQuery UI, dodatkowe */
.ui-autocomplete-loading { 
	background: url('/_img/ajax-loader.gif') no-repeat right center 
}

.errText {
	color: var(--err-txt-color);
	font-size: .75rem;
	text-align: left;
	white-space: normal !important;
}

/* nie nakładać bezpośrednio na button, ponieważ wpływa na mapkę google */
.button {
	font-size: 1rem;
	color: var(--button-txt);
	padding: 0.65rem 2rem !important;
	cursor: pointer;
	background-color: var(--button);
	border: 0;
	-moz-transition: all 0.40s ease-in-out;
	-webkit-transition: all 0.40s ease-in-out;
	-o-transition: all 0.40s ease-in-out;
	-ms-transition: all 0.40s ease-in-out;
	transition: all 0.40s ease-in-out;
	border-radius: 3px;
	-webkit-box-shadow: 1px 1px 5px -1px var(--button-shadow-color);
	-moz-box-shadow: 1px 1px 5px -1px var(--button-shadow-color);
	box-shadow: 1px 1px 5px -1px var(--button-shadow-color);
	white-space: nowrap;	
}

.button.green {
	background-color: var(--button-green);
	color: var(--button-green-txt);
}

.button.red {
	background-color: var(--button-red);
	color: var(--button-red-txt);
}

/* IPhone fix */
input[type="submit"] {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;	
}

input[type="submit"]:disabled, button:disabled { 
	background-color: var(--button-disabled) !important;
	color: var(--button-disabled-txt) !important;
	cursor: not-allowed;
}

/* "x" na inputach do czyszczenia, input wymaga klasy allow-clear, div zewnętrzny position: relative */
input + .clear {
	display: none;
}

input.allow-clear + .clear {
	cursor: pointer;
	display: block !important;
	position: absolute;
	right: 5px;
	top: 1.15rem;
	font-size: 1.8rem;
}
/* koniec "x" */

input[type="checkbox"] {
	cursor: pointer;
	width: 1.15rem;
	height: 1.15rem;
	min-width: 1.15rem;	
	line-height: .5rem;	
}

label:not([for]) {
	font-size: .75rem;
	display: block;
	text-align: left;
	line-height: 1.25rem;
}

/* nadpisanie tła dla pól autocomplete */
input:-webkit-autofill,
input:-webkit-autofill:hover, 
input:-webkit-autofill:focus, 
input:-webkit-autofill:active{
	-webkit-box-shadow: 0 0 0 30px var(--inputs-bg) inset !important;
}

::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
	color: var(--placeholder-color);
	opacity: 1; /* Firefox */
}

:-ms-input-placeholder { /* Internet Explorer 10-11 */
	color: var(--placeholder-color);
}

::-ms-input-placeholder { /* Microsoft Edge */
	color: var(--placeholder-color);
}

.message.err, .red {
	color: var(--err-txt-color);
}

.message.ok, .green {
	color: var(--green-txt);
}

.invalid {
	border: 1px solid var(--invalid-border) !important;
}

.hide {
	display: none !important;
}

/******************** tu koniec styli globalnych ****************/

#logo {
	max-height: 3rem;
}

#all-headers {
	position: fixed;
	top: 0;	
	z-index: 1002; /* musi być tyle żeby przykryć floatedThead */
	width: 100%;
}

#devmode-warn {
	color: var(--body-bg);
	background-color: var(--err-txt-color);
	text-align: center;	
	width: 100%;	
}

#page-header {
	padding: 1rem;
	display: flex;
	width: 100%;
	align-items: center;
	background-color: var(--body-bg);
}

#page-header #logo {
	cursor: pointer;
}

#page-header > #logout-cont {
	margin-left: auto;
	font-weight: bold;
}

#page-header > #logout-cont a {
	color: var(--menu-url);
	text-decoration: none;
}

/* hamburger */
#page-header .toggle-menu-mobile {
	font-size: 2rem;
	padding: .5rem;
	cursor: pointer;
}

/* wspólny pojemnik pod nagłówkiem */
#content {	
	display: flex;
	width: 100%;
	position: relative;
}

#main-menu {
	z-index: 51;
	width: 13rem;
	padding: 0 10px 0 0;
	position: fixed;
	top: 8rem;
}

#main-menu > a {
	text-decoration: none;
	display: block;
	padding: 0.75rem 0.5rem;
	font-size: 1em;
	color: var(--menu-url);
}

body:not(.is-mobile) .mobile-show {
	display: none !important;
}

#main-menu > a:hover {
	background-color: var(--main-menu-hover);
}

#main-menu > a.active {
	background-color: var(--accent-color);
}

/* główny pojemnik modułu */
#content > #module-body {
	position: relative;
	flex-grow: 1;
	margin-left: 13rem;
	margin-right: 10px;
}

#module-body h3 {
	text-align: center;
}

#module-body table {
	margin: 0 auto;
}

#module-body table td {
	padding-bottom: .4rem;
}

#module-body table td:first-child {
	text-align: right;
}

#module-body table td:last-child {
	text-align: left;
}

#module-body table tfoot td {
	padding-top: 1rem;
	text-align: center !important;
}

/* tabelki w style Excela */
#module-body table.excel {
	border-collapse: collapse;
	font-size: .85rem;
	margin-bottom: 1rem;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-o-user-select: none;
	user-select: none;	
}

#module-body table.excel th, #module-body table.excel td {
	border-width: 1px 0 1px 1px;
	border-style: solid;
	border-color: var(--button-disabled);	
	padding: .2rem;
}

#module-body table.excel th {
	border-width: 0 0 2px 1px;
	background: var(--body-bg);
}

#module-body .floated-thead-wrapper {
	margin-top: 1rem;
}

#module-body .float-tbl-outer {
	border-collapse: collapse;
}

#module-body .float-tbl-outer th {
	background: var(--body-bg);
}

#module-body table.excel td {
	text-align: right;
}

td.headingCol {
	font-weight: bold;
	text-align: left !important;
}

.headingCol {
	border-right: 2px solid var(--button-disabled) !important;
}

#module-body table.excel tr > th:first-child, 
#module-body table.excel tr > td:first-child 
{
	border-left: 0;
}

#module-body table.excel tr:last-child > td, td.headingCol  {
	border-bottom: 0 !important;
}

td.headingCol.region {
	width: 10rem;
	text-align: center !important;
}

table.excel td.readonly {
	background-color: var(--excel-disabled-days);
	cursor: not-allowed;
}

table.excel tbody tr:hover td.course.headingCol, 
table.excel .hover 
{
	background-color: var(--excel-marked-heading) !important;
}

table.excel td.marked, 
table.excel td.single-day:not(.readonly):hover 
{
	background-color: var(--excel-marked-days);
	cursor: pointer;
}

/* dodatowo w cenniku */
table.excel td.single-day > div {
	white-space: nowrap;	
}

/* dodatowo w cenniku */
table.excel td.single-day > div > span:last-child {
	padding-left: .2rem;
}

table.excel td.single-day > div > span:empty + span {
	display: none;
}

/* koniec excela */

input.text, select, textarea {
	width: 100%;
	padding: 0.56rem 0.5rem;
	border: 1px solid var(--accent-color);
	font-size: 1rem;
	background-color: var(--inputs-bg);
	border-radius: 3px;

	-moz-transition: background-color 0.25s ease-in-out;
	-webkit-transition: background-color 0.25s ease-in-out;
	-o-transition: background-color 0.25s ease-in-out;
	-ms-transition: background-color 0.25s ease-in-out;
	transition: background-color 0.25s ease-in-out;
}

textarea { resize: none; }

select {
	cursor: pointer;
	/* select different size FIX */
	padding: 0.5rem 0.3rem;	
	/* IPhone fix */		
	color: var(--body-color);	
	height: 2.7rem;
}

input[disabled], select[disabled] {
	background-color: var(--inputs-disabled-bg);
}

/********************* LOGOWANIE *************/
#login-page-content {
	text-align: center;
}

#login-page-content #logo {
	margin: 2rem auto;
}


/*********** MAPKA ***********/
.map {
	width: 100%;
	/* //TODO: wyliczać za pomocą JS (wysokość - nagłówek) bo strona jest responsywna */
	height: calc(100vh - 8rem); 
}

#chosen-region-id-outer {
	display: flex;
	align-items: center;
}

#delete-region {
	font-size: 1rem;
	margin-left: .5rem;
	cursor: pointer;
}


/********** wspólne dla modułów *************/

.fixed-container {	
	text-align: center;
	background-color: var(--fixed-container-bg);
	position: absolute;	
	z-index: 2;
	right: 2rem;
	top: 2rem; 
	padding: 1rem;
	width: 18rem;
}

.fixed-container form > div + div, 
#upsert-form > div + div,
#upsert-form section {
	padding-top: 1rem;	
}

table.edit-list {
	border-collapse: collapse;
}

.edit-list td, .edit-list th  {
	text-align: left !important;
	padding: .7rem !important;	
}

.edit-list th {
	background-color: var(--fixed-container-bg);
}

.edit-list td {
	border: 1px solid var(--accent-color);
}

.edit-list tbody tr:hover {
	background-color: var(--excel-marked-days) !important;
}

.edit-entry {
	cursor: pointer;
}

#module_change_date input.date {
	display: inline-block; 
	width: 7rem;
}


/************ nadpisanie styli wtyczek *****************/
.swal2-styled.swal2-confirm {
	background-color: var(--swal-btn-confirm);
}

.swal2-styled.swal2-cancel {
	background-color: var(--swal-btn-cancel);
}

.swal2-popup .swal2-styled:focus {
	box-shadow: 1px 1px 5px -1px var(--button-shadow-color);
}

.swal2-popup label {
	font-size: .85rem;
}

.swal2-popup .swal2-input {
	margin: 0 auto;
	width: 100%;
	box-shadow: none !important;
}

#ui-datepicker-div {
	z-index: 1061 !important; /* bo również w swal2 który ma 1060 */
}

/******************* MEDIA QUERY ********************/
/* TODO: do ustalenia czy nie wynieść tej części do mobile.css jak to niektórzy robią */

@media only screen 
	and (max-width: 840px) 	
{
	/* większość komórek */
	.mobile-show {
		display: block;
	}

	.mobile-hide {
		display: none;
	}	

	#all-headers {
		position: static;
	}

	#page-header {
		padding: .5rem .35rem;
	}

	#logo {
		max-width: 170px;
	}

	#content > #module-body {
		padding-top: 0;
		position: static;
	}

	body.mobile-menu-shown {
		overflow: hidden;
	}

	body.mobile-menu-shown #loader-overlay {
		display: block;
	}

	body.mobile-menu-shown .loader-animate {
		display: none;
	}

	#main-menu {
		display: none;
		z-index: 10006; /* musi być wyższe niż overlay */
		top: 0 !important;
		right: 0;
		background: var(--body-bg);
		padding: 0;
		height: 100%;
		margin-top: 0;
	}

	#main-menu > a {
		padding: 0.75rem 0.75rem;
		font-size: 1.1rem;
	}	

	/* wiersz z x zamykającym */
	#main-menu > div:first-child {
		text-align: right;
	}
	
	#hide-menu {
		padding: 0.5rem 1rem;
		cursor: pointer;
		font-size: 1.5rem;
		display: inline-block;
	}

	#menu-mobile-bars {
		padding-left: 2rem;
		margin-left: auto;
	}

	#content > #module-body {
		margin-left: 5px;
		margin-right: 5px;
	}

	.fixed-container {
		top: 1rem;
		right: 1rem;
	}

	/* dostępność i cenniki, tylko po 1 dacie */
	.excel td.single-day:not([data-col="0"]), 
	.excel th:not(.headingCol):not([data-col="0"]) {
		display: none;
	}

	#reservations-filters > div {
		width: 100%;
		padding-top: .5rem;
		margin-left: 1rem; /* tyle samo jest z prawej */
	}

	/* napis Filtry */
	#reservations-filters > div:first-child {
		text-align: center;
	}

}

@media only screen 
	and (max-width: 600px) 
	and (orientation: portrait) 
{
	/* TODO: lepsze srajfony */
}

@media only screen 
	and (max-width: 440px) 
	and (orientation: portrait) 
{
	/* TODO: gorsze srajfony */
}

