/** FONTS **/

@font-face {
	font-family: "SourceSansPro";
	src: url("/fonts/SourceSansPro-Regular.ttf");
}

@font-face {
	font-family: "SourceSansProBold";
	src: url("/fonts/SourceSansPro-SemiBold.ttf");
}

/** FONTS **/

/** SELECTORS **/

[v-cloak] > * {
	display:none;
}

[v-cloak]::before {
	content: "Loading...";
}

/** SELECTORS **/

/** VARIABLES **/

:root {

	--border-radius: 4px;

	--color-black: #000000;
	--color-white: #FFFFFF;
	--color-theme-light: #548FC7; /*#A5A4BF;*/
	--color-theme-dark: #0D3151;
	--color-theme: #084E91;
	--color-gray-light: #F0F0F7;
	--color-gray-dark: #737376;
	--color-gray: #C6C6CE;
	--color-green: #2C9A18;
	--color-red: #D90000;
	--color-orange: #D93A00;
	--color-yellow: #DDB614;
	--color-blue: #423EAD;

	--gradient-left: #5c9ee9;
	--gradient-right: #1972c1;

	--font-family: 'SourceSansPro';
	--font-family-bold: 'SourceSansProBold';
	--font-family-mono: 'Courier New';
	--font-size: 13px; 

	--title-font-size: 15px;
	--big-font-size: 20px;
	--large-font-size: 30px;
	--small-font-size: 10px;

	--nav-width: 200px;

	--header-height: 50px;

	--page-header-height: 90px;

	--spacer: 20px;
	--spacer-small: calc(var(--spacer) / 2);

	--input-height: 30px;
	
	--button-height: 40px;

	--scrollbar: 10px;

	--icon-size: 18px;

	--grid-12-size: calc(100vw - 490px);
	--grid-12-size-cell: calc((var(--grid-12-size) / 12) - 20px);

	--ca-header-height: 25px;
	--ca-body-height: 40px;
	--ca-cell-250: 380px; /* +20 due to identation */
	--ca-cell-200: 200px;
	--ca-cell: 150px;
}

/** VARIABLES **/

/** COLORS **/

.b-white {
	background-color: var(--color-white) !important;
}

.c-white {
	color: var(--color-white) !important;
}

.b-red {
	background-color: var(--color-red) !important;
}

.c-red {
	color: var(--color-red) !important;
}

.b-yellow {
	background-color: var(--color-yellow) !important;
}

.c-yellow {
	color: var(--color-yellow) !important;
}

.b-green {
	background-color: var(--color-green) !important;
}

.c-green {
	color: var(--color-green) !important;
}

.b-blue {
	background-color: var(--color-blue) !important;
}

.c-blue {
	color: var(--color-blue) !important;
}

.b-orange {
	background-color: var(--color-orange) !important;
}

.c-orange {
	color: var(--color-orange) !important;
}

.b-theme {
	background-color: var(--color-theme) !important;
}

.c-theme {
	color: var(--color-theme) !important;
}

.b-theme-dark {
	background-color: var(--color-theme-dark) !important;
}

.c-theme-dark {
	color: var(--color-theme-dark) !important;
}

.b-theme-light {
	background-color: var(--color-theme-light) !important;
}

.c-theme-light {
	color: var(--color-theme-light) !important;
}

.b-gray-light {
	background-color: var(--color-gray-light) !important;
}

.c-gray-light {
	color: var(--color-gray-light) !important;
}

.b-gray-dark {
	background-color: var(--color-gray-dark) !important;
}

.c-gray-dark {
	color: var(--color-gray-dark) !important;
}

.c-black {
	color: var(--color-black) !important;
}

/** COLORS **/

/** TAGS **/

html {
	border: 0px;
	height: 100%;
	margin: 0vh 0vw;
	padding: 0vh 0vw;
	width: 100%;
}

body {
	border: 0px;
	font-family: var(--font-family);
	font-size: var(--font-size);
	height: inherit;
	margin: 0vh 0vw;
	padding: 0vh 0vw;
	width: 100%;
}

main {
	/** FLEX **/
	align-items: stretch;
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	justify-content: flex-start;
	/** FLEX **/
	height: inherit;
	width: inherit;
}

nav {
	/** FLEX **/
	align-items: stretch;
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	justify-content: flex-start;
	/** FLEX **/
	background-color: var(--color-theme);
	color: var(--color-white);
	height: inherit;
	max-width: var(--nav-width);
	min-width: var(--nav-width);
	left: 0vw;
	overflow-y: hidden;
	position: fixed;
	top: 0vh;
	width: var(--nav-width);
	z-index: 5;
}
 
header {
	/** FLEX **/
	align-items: center;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;
	/** FLEX **/
	background-color: var(--color-white);
	box-shadow: 0px 2px 3px var(--color-theme-dark); 
	height: var(--header-height);
	max-height: var(--header-height);
	min-height: var(--header-height);
	padding: 0vh var(--spacer);
	position: fixed;
	top: 0vh;
	width: calc(100% - var(--spacer) - var(--spacer));
	z-index: 10;
}

section.content {
	/** FLEX **/
	align-items: stretch;
	display: flex;
	flex: 1 0 auto;
	flex-direction: column;
	justify-content: flex-start;
	/** FLEX **/
	background: var(--gradient-left);
	background: linear-gradient(180deg, var(--gradient-left) 0%, var(--gradient-right) 100%);
	height: auto;
	margin: var(--header-height) 0vw 0vh 0vw;
	max-width: calc(100% - var(--space) - var(--spacer));
	min-width: calc(100% - var(--space) - var(--spacer));
	padding: var(--spacer);
	width: calc(100% - var(--space) - var(--spacer));
	z-index: 4;
}

/** TAGS **/

/** CLASSES **/

.title {
	font-size: var(--title-font-size);
	padding: 0vh 0vw;
	text-transform: capitalize;
}

.page {
	/** FLEX **/
	align-items: stretch;
	align-self: stretch;
	display: flex;
	flex: 1 0 auto;
	flex-direction: column;
	justify-content: flex-start;
	/** FLEX **/
	position: relative;
	z-index: 3;
}

.page-actions {
	/** FLEX **/
	align-items: flex-end;
	align-self: stretch;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	/** FLEX **/
	height: 25px;
	margin: 0vh calc(var(--spacer) + var(--border-radius));
	z-index: 2;
}

.page-action {
	/** FLEX **/
	align-items: center;
	align-self: stretch;
	display: flex;
	flex-direction: row;
	justify-content: center;
	/** FLEX **/
	background-color: var(--color-gray-dark);
	border-top-left-radius: var(--border-radius);
	border-top-right-radius: var(--border-radius);
	box-shadow: 1px 1px 3px #808080;
	color: var(--color-white);
	cursor: pointer;
	margin: 0vh var(--spacer) 0vh 0vw;
	padding: 0vh 1vw;
	width: 106px;
}

.page-action:hover, .page-action-active {
	background-color: var(--color-orange);
}

.page-header {
	/** FLEX **/
	align-items: center;
	align-self: stretch;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	/** FLEX **/
	background-color: var(--color-white);
	border-radius: var(--border-radius);
	box-shadow: 0px 1px 3px var(--color-gray-dark);
	color: var(--color-black);
	height: calc(var(--page-header-height) - (2 * var(--spacer)));
	max-height: calc(var(--page-header-height) - (2 * var(--spacer)));
	margin: 0vh var(--spacer);
	min-height: calc(var(--page-header-height) - (2 * var(--spacer)));
	padding: var(--spacer);
	z-index: 2;
}

.page-content {
	/** FLEX **/
	align-items: flex-start;
	align-self: stretch;
	display: flex;
	flex-direction: column;
	justify-content: center;
	/** FLEX **/
	background-color: var(--color-white);
	border-radius: var(--border-radius);
	box-shadow: 0px 0px 3px var(--color-gray-dark);
	flex: 1 0 auto;
	height: auto; 
	margin: calc(-1 * (var(--page-header-height) / 2)) 0vw 0vh 0vw;
	padding: calc((var(--page-header-height) / 2) + var(--spacer)) var(--spacer) var(--spacer) var(--spacer);
	z-index: 1;
}

.box {
	/** FLEX **/
	align-items: stretch;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	/** FLEX **/
	background-color: var(--color-white);
	border: 0px;
	box-shadow: 2px 2px 5px #808080;
	margin: calc(var(--spacer) / 2) 0vw;
	padding: calc(var(--spacer) / 2);
}

.box-u {
	box-shadow: 0px 3px 7px var(--color-gray-light) !important;
	border-bottom-left-radius: var(--border-radius) !important;
	border-bottom-right-radius: var(--border-radius) !important;
	margin: 0vh var(--spacer-small) !important;
	padding: var(--spacer-small) !important;
}

.bold {
	font-family: var(--font-family-bold);
}

.mono {
	font-family: var(--font-family-mono);
}

.avatar {
	border-radius: 16px;
	height: 32px;
	margin: 0vh 0.5vw;
	object-fit: contain;
	width: 32px;
}

.avatar-large {
	border-radius: 24px;
	height: 48px;
	margin: 1vh 0vw;
	object-fit: contain;
	width: 48px;
}

.step {
	/** FLEX **/
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	/** FLEX **/
	background-color: var(--color-white);
	border: 1px solid var(--color-theme-dark);
	border-radius: 16px;
	color: var(--color-theme);
	font-size: 14px;
	height: 32px;
	width: 32px;
}

.step-label {
	color: var(--color-theme);
}

.step-selected {
	background-color: var(--color-theme-light);
	border-color: var(--color-theme);
}

.required {
	font-size: 14px;
	color: var(--color-red);
	margin-right: 2px;
	vertical-align: middle;
}

.link {
	color: var(--color-theme);
	text-decoration: underline;
}

.link:hover {
	color: var(--color-theme-light);
	cursor: pointer;
}

.vertical-separator {
	align-self: stretch;
	border-left: 1px solid var(--color-theme);
	border-right: 1px solid var(--color-theme-light);
	margin: 0vh var(--spacer-small);
	width: 0px;
}

.deleted {
	color: var(--color-red);
	text-decoration: line-through;
}

.concluded {
	color: var(--color-green);
	text-decoration: line-through;
}

/** CLASSES **/

/** INPUT **/

.input-container {
	/** FLEX **/
	align-items: stretch;
	align-self: stretch;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	/** FLEX **/
	margin-bottom: var(--spacer);
}

.input-container-row {
	/** FLEX **/
	align-items: center;
	align-self: stretch;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	/** FLEX **/
	margin-bottom: var(--spacer);
}

.input-field {
	align-self: stretch;
	border: 0px;
	border-bottom: 1px solid var(--color-theme-light);
	border-radius: 6px;
	color: var(--color-theme);
	display: inline-block;
	font-size: 14px;
	height: var(--input-height);
	margin: 0vh 0vw;
	max-width: calc(100% - 0.6vw);
	outline: none;
	padding: 0.3vw 0.3vw 0.1vw 0.3vw;
	width: calc(100% - 0.6vw);
}

select.input-field {
	height: calc(var(--input-height) + 9px);
}

input[type="search"].input-field {
	height: calc(var(--input-height) + 9px);
}

input:disabled, select:disabled, textarea:disabled, input:readonly {
	/*background-color: var(--color-theme-light);*/
	background-color: var(--color-gray-light);
	color: var(--color-gray-dark);
}

.input-label {
	align-self: stretch;
	border: 0px;
	color: var(--color-theme-light);
	display: inline-block;
	font-size: 11px;
	margin: 12px 0vw 0vh 0vw; 
	padding: 0vh 0.3vw;
}

.input-field-nav {
	align-self: stretch;
	background-color: unset;
	border: 1px solid var(--color-theme-light);
	border-radius: var(--border-radius);
	color: var(--color-theme-light);
	font-size: 11px;
	margin: 10px 6px;
	outline: none;
	padding: 0.5vw;
}

.input-container.input-success > .input-field {
	border-bottom: 2px solid var(--color-green);
	color: var(--color-green);
}

.input-container.input-success > .input-field:disabled {
	background-color: #C2C5B2;
}

.input-container.input-success > .input-label  {
	color: var(--color-green);
}

.input-container.input-error > .input-field {
	border-bottom: 2px solid var(--color-red);
	color: var(--color-red);
}

.input-container.input-error > .input-field:disabled {
	background-color: #C5B2B2;
}

.input-container.input-error > .input-label {
	color: var(--color-red);
}

/** INPUT **/

/** BUTTON **/

.button {
	background-color: var(--color-theme);
	border-radius: var(--border-radius);
	border: 1px solid var(--color-theme);
	color: var(--color-white);
	font-size: 14px;
	display: inline-block;
	height: var(--button-height);
	margin: var(--spacer) 0vw;
	padding: 0vh var(--spacer);
}

.button:hover {
	background-color: var(--color-theme-light);
	box-shadow: 2px 2px 7px var(--color-gray-dark);
	border:  1px inset var(--color-theme-light);
	color: var(--color-theme-dark);
	cursor: pointer;
}

.button-green {
	background-color: var(--color-green);
	border: 1px solid var(--color-green);
	color: var(--color-white);
}

.button-green:hover {
	background-color: var(--color-green);
	box-shadow: 2px 2px 7px var(--color-gray-dark);
	border: 1px inset var(--color-green);
	color:  var(--color-white);
	filter: brightness(110%);
}

.button-blue {
	background-color: var(--color-blue);
	border: 1px solid var(--color-blue);
	color: var(--color-white);
}

.button-gray {
	background-color: var(--color-gray);
	border: 1px solid var(--color-gray);
	color: var(--color-white);
}

.button-yellow {
	background-color: var(--color-yellow);
	border: 1px solid var(--color-yellow);
	color: var(--color-white);
}

.button-blue:hover {
	background-color: var(--color-blue);
	box-shadow: 2px 2px 7px var(--color-gray-dark);
	border: 1px inset var(--color-blue);
	color:  var(--color-white);
	filter: brightness(110%);
}

.button-red {
	background-color: var(--color-red);
	border: 1px solid var(--color-red);
	color: var(--color-white);
}

.button-red:hover {
	background-color: var(--color-red);
	box-shadow: 2px 2px 7px var(--color-gray-dark);
	border: 1px inset var(--color-red);
	color:  var(--color-white);
	filter: brightness(110%);
}

.button-round {
	/** FLEX **/
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	/** FLEX **/
	background-color: var(--color-white);
	border: unset;
	border-radius: calc(var(--button-height) / 2);
	box-shadow: 0px 0px 3px var(--color-theme-dark);
	color: var(--color-theme-dark);
	height: var(--button-height);
	margin: 0vh 0.3vw;
	width: var(--button-height);
}

.button-round:hover {
	cursor: pointer;
	background-color: var(--color-theme-dark);
	box-shadow: 0px 0px 3px var(--color-theme-light);
	color: var(--color-white);
}

.button-round:disabled {
	background-color: var(--color-gray);
	cursor: not-allowed;
}

.button-round.active {
	color: var(--color-green);
}

.button-round.active > i {
	animation: loading 1.2s linear infinite;
}

.button-capsule {
	/** FLEX **/
	align-items: center;
	display: flex;
	flex-direction: row;
	justify-content: center;
	/** FLEX **/
	background-color: var(--color-theme);
	border-radius: var(--button-height);
	border: 1px solid var(--color-theme);
	color: var(--color-white);
	font-size: 14px;
	height: var(--button-height);
	margin: var(--spacer) 0vw;
	padding: 0vh var(--spacer);
}

.button-capsule:hover {
	cursor: pointer;
}

.button-empty {
	/** FLEX **/
	align-items: center;
	display: flex;
	flex-direction: row;
	justify-content: center;
	/** FLEX **/
    background-color: var(--color-white);
    border: 1px solid var(--color-theme);
    border-radius: var(--button-height);
    color: var(--color-theme);
    display: inline-block;
    margin: var(--spacer-small) 1vw;
    padding: var(--spacer-small);
}

.button-empty:hover {
	background-color: var(--color-theme);
	color: var(--color-white);
	cursor: pointer;
}

.button-empty-active {
	background-color: var(--color-theme);
	color: var(--color-white);
}

/** BUTTON **/

/** LAYOUT **/

.column {
	/** FLEX **/
	align-items: stretch;
	align-self: stretch;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	/** FLEX **/
	border: 0px;
	margin: 0vh 0vw;
	padding: 0vh 0vw;
}

.row {
	/** FLEX **/
	align-items: stretch;
	align-self: stretch;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	/** FLEX **/
	border: 0px;
	margin: 0vh 0vw;
	padding: 0vh 0vw;
}

.row > .column {
	/** FLEX **/
	align-items: stretch;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	/** FLEX **/
	border: 0px;
	margin: 0vh var(--spacer) 0vh 0vw;
	padding: 0vh 0vw;
}

.row > .column:last-child {
	margin-right: 0vw;
}

.row > .input-container {
	margin: 0vh var(--spacer-small) 0vh 0vw;
}

.row > .input-container:last-child {
	margin: 0vh var(--spacer-small) 0vh 0vw;
}

.col-25 {
	width: calc(25% - var(--spacer));
	max-width: calc(25% - var(--spacer));
}

.col-30 {
	width: calc(30% - var(--spacer));
	max-width: calc(30% - var(--spacer));
}

.col-33 {
	width: calc(33.33% - var(--spacer));
	max-width: calc(33.33% - var(--spacer));
}

.col-40 {
	width: calc(40% - var(--spacer));
	max-width: calc(40% - var(--spacer));
}

.col-50 {
	width: calc(50% - var(--spacer));
	max-width: calc(50% - var(--spacer));
}

.col-60 {
	width: calc(60% - var(--spacer));
	max-width: calc(60% - var(--spacer));
}

.col-70 {
	width: calc(70% - var(--spacer));
	max-width: calc(70% - var(--spacer));
}

.col-75 {
	width: calc(75% - var(--spacer));
	max-width: calc(75% - var(--spacer));
}

.grow {
	flex: 1 0 auto;
}

.grow-spacer {
	flex: 1 0 auto;
	margin: 0vh var(--spacer);
}

.grow-spacer-left {
	flex: 1 0 auto;
	margin: 0vh 0vw 0vh var(--spacer);
}

.grow-spacer-right {
	flex: 1 0 auto;
	margin: 0vh var(--spacer) 0vh 0vw;
}

.shrink {
	flex: 0 1 auto;
}

.shrink-spacer {
	flex: 0 1 auto;
	margin: 0vh var(--spacer);
}

.shrink-spacer-left {
	flex: 0 1 auto;
	margin: 0vh 0vw 0vh var(--spacer);
}

.shrink-spacer-right {
	flex: 0 1 auto;
	margin: 0vh var(--spacer) 0vh 0vw;
}

.behave {
	flex: 1 1 auto;
}

.behave-spacer {
	flex: 1 1 auto;
	margin: 0vh var(--spacer);
}

.behave-spacer-left {
	flex: 1 1 auto;
	margin: 0vh 0vw 0vh var(--spacer);
}

.behave-spacer-right {
	flex: 1 1 auto;
	margin: 0vh var(--spacer) 0vh 0vw;
}

.spacer-m {
	margin: var(--spacer);
}

.spacer-mv {
	margin: var(--spacer) 0vh;
}

.spacer-mh {
	margin: 0vw var(--spacer);
}

.spacer-p {
	padding: var(--spacer);
}

.spacer-ps {
	padding: var(--spacer-small);
}

/** LAYOUT **/

/** MENU **/

nav > a {
	/** FLEX **/
	align-items: center;
	align-self: stretch;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	/** FLEX **/
	border-left: 3px solid var(--color-theme);
	color: var(--color-white);
	font-size: 13px;
	margin-bottom: 10px;
	padding: 0.7vw;
	text-decoration: none;
}

nav > a:hover, nav > a.selected {
	background-color: var(--color-theme-dark);
	border-left-color: var(--color-theme-light);
	cursor: pointer;
}

nav > a > i.fas {
	margin-right: 8px;
}

/** MENU **/

/** GRID **/

.grid-header {
	align-items: stretch; /* Expande o item do grid até a altura da linha */
	display: grid;
	/*grid-gap: 5px;*/
	justify-items: stretch; /* Expande o item do grid até a largura da coluna */
}

.grid-header > * {
	/** FLEX **/
	align-items: center;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	/** FLEX **/
	background-color: var(--color-theme-light);
	color: var(--color-white);
	padding: 0px 5px;
	text-transform: uppercase;
}

.grid-body {
	align-items: stretch; /* Expande o item do grid até a altura da linha */
	display: grid;
	/*grid-gap: 5px;*/
	justify-items: stretch; /* Expande o item do grid até a largura da coluna */
}

.grid-body > * {
	/** FLEX **/
	align-items: center;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	/** FLEX **/
	margin: 5px 0px;
	padding: 5px 5px;
}

.grid-body:nth-child(odd) {
	background-color: var(--color-white);
}

.grid-body:nth-child(even) {
	background-color: var(--color-gray-light);
}

.grid-body-gray {
	align-items: stretch; /* Expande o item do grid até a altura da linha */
	display: grid;
	/*grid-gap: 5px;*/
	justify-items: stretch; /* Expande o item do grid até a largura da coluna */
}

.grid-body-white {
	align-items: stretch; /* Expande o item do grid até a altura da linha */
	display: grid;
	/*grid-gap: 5px;*/
	justify-items: stretch; /* Expande o item do grid até a largura da coluna */
}

.grid-body-gray > * {
	/** FLEX **/
	align-items: center;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	/** FLEX **/
	margin: 5px 0px;
	padding: 5px 5px;
    background-color: var(--color-gray-light);
}

.grid-body-white > * {
	/** FLEX **/
	align-items: center;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	/** FLEX **/
	margin: 5px 0px;
	padding: 5px 5px;
    background-color: var(--color-white);
}

.grid-generic {
	align-items: stretch; /* Expande o item do grid até a altura da linha */
	display: grid;
	justify-items: stretch; /* Expande o item do grid até a largura da coluna */
}

.grid-generic > * {
	/** FLEX **/
	align-items: center;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	/** FLEX **/
}

/** GRID **/

/** LIST **/

.list-item {
	border-bottom: 1px solid var(--color-gray-light);
	padding: 1vh 0vw;
	margin-bottom: var(--spacer);
}

.list-item > i {
	font-size: 20px;
}

.list-item > i:hover {
	cursor: pointer;
}

.list-item > *:not(:last-child) {
	margin-right: calc(var(--spacer) / 2);
}

/** LIST **/

/** ICON **/

.icon-grid-container {
	/** FLEX **/
	justify-content: flex-end;
	/** FLEX **/
}

.icon-grid {
	cursor: pointer;
	font-size: 20px;
	margin-left: var(--spacer);
}

.icon-grid:hover {
	color: var(--color-theme) !important;
}

.icon, .icon-i {
	font-size: var(--icon-size);
}

.icon-i:hover {
	cursor: pointer;
	color: var(--color-blue);
}

/** ICON **/

/** LOADING **/

.loading-label {
	color: var(--color-theme);
	font-weight: bold;
}

.loading-large {
	display: inline-block;
	height: 46px;
	width: 46px;
	margin: 2vh 0vw;
}

.loading-large:after {
	animation: loading 1.2s linear infinite;
	border-radius: 50%;
	border: 5px solid var(--color-theme-light);
	border-color: var(--color-theme-light) transparent var(--color-theme-light) transparent;
	content: " ";
	display: block;
	height: 34px;
	margin: 1px;
	width: 34px;
}

.loading-small {
	display: inline-block;
	height: 20px;
	width: 20px;
	margin: 0vh 4px;
}

.loading-small:after {
	animation: loading 1.2s linear infinite;
	border-radius: 50%;
	border: 1.5px solid var(--color-theme-light);
	border-color: var(--color-theme-light) transparent var(--color-theme-light) transparent;
	content: " ";
	display: block;
	height: 16px;
	margin: 1px;
	width: 16px;
}

@keyframes loading {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}

/** LOADING **/

/** LOG **/

.log {
	border-bottom: 1px solid #E3E3E3;
	margin-bottom: 2vh;
}

.log > .header {
	font-size: 14px;
	justify-content: space-between;
}

.log > .body {
	font-family: var(--font-family-mono);
	margin: 2vh 0vw;
}

/** LOG **/

/** SCROLL **/

.scrollable::-webkit-scrollbar-track {
	-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
	border-radius: var(--scrollbar);
	background-color: unset;
}

.scrollable::-webkit-scrollbar {
	width: var(--scrollbar);
	height: var(--scrollbar);
	background-color: unset;
}

.scrollable::-webkit-scrollbar-thumb {
	border-radius: var(--scrollbar);
	-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
	background-color: var(--theme);
}

.scrollable::-webkit-scrollbar-corner {
	background-color: unset;
}

/** SCROLL **/

/** BANNER **/

.banner {
	/** FLEX **/
	align-items: center;
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	/** FLEX **/
	background-color: var(--color-theme-light);
	border-radius: var(--border-radius);
	color: var(--color-white);
	font-size: var(--title-font-size);
	margin: var(--spacer) 0vw;
	padding: var(--spacer-small);
}

/** BANNER **/

/** BADGES **/

.badges-container > .badge-outer:first-child {
	margin-left: 0vw;
}

.badges-container > .badge-outer:last-child {
	margin-right: 0vw;
}

.badge-outer {
	border: 1px solid var(--color-theme-light);
	border-radius: var(--border-radius);
	font-size: 12px;
	padding: 8px;
	margin: var(--spacer-small);
	text-align: center;
}

.badge-text {
	color: var(--color-theme-dark);
}

.badge-number {
	background-color: var(--color-theme);
	border-radius: var(--border-radius);
	color: var(--color-white);
	font-weight: bold;
	margin: 0vh 4px;
	padding: 4px 8px;
}

/** BADGES **/

/** MODAL **/

.h-floating-box {
	/** FLEX **/
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	/** FLEX **/
	background-color: var(--color-gray-light);
	border-bottom: 1px solid var(--color-theme);
	border-left: 1px solid var(--color-theme);
	border-right: 1px solid var(--color-theme);
	border-bottom-left-radius: var(--border-radius);
	border-bottom-right-radius: var(--border-radius);
	box-shadow: 0px 5px 10px rgba(16, 16, 16, 0.8);
	height: calc(90vmin - var(--header-height));
	max-height: calc(90vmin - var(--header-height));
	overflow-y: auto;
	padding: var(--spacer);
	position: fixed;
	top: -200%;
	transition: top .7s;
	width: auto;
	z-index: 9;
}

.h-floating-box-50 {
	left: 50%;
	margin-left: -25%;
	width: calc(50% - var(--spacer) - var(--spacer));
}

.h-floating-box-75 {
	left: 50%;
	margin-left: -37.5%;
	width: calc(75% - var(--spacer) - var(--spacer));
}

.h-floating-box-100 {
	left: 50%;
	margin-left: calc(-50% + var(--spacer));
	width: calc(100% - (4 * var(--spacer)));
}

.h-floating-box-open {
    top: var(--header-height);
}

.h-floating-box-modal-over-modal {
	left: 50%;
	margin-left: -25%;
	margin-top: 5%;
	width: calc(50% - var(--spacer) - var(--spacer));
	height: calc(50%);
}

.h-floating-box-modal-over-modal-auto {
	left: 50%;
	margin-left: -25%;
	margin-top: 5%;
	width: calc(50% - var(--spacer) - var(--spacer));
	height: auto;
}

.h-floating-boxblackout {
	background-color: rgba(16, 16, 16, 0.8);
	height: 100vh;
	left: 0vw;
	margin: 0vh 0vw;
	opacity: 1;
	padding: 0vh 0vw;
	position: fixed;
	top: 0vh;
	transition: opacity .7s;
	width: calc(100%);
	height: calc(100%);
	z-index: 5;
}


.h-blackout {
	background-color: rgba(16, 16, 16, 0.8);
	border: unset;
	height: 100vh;
	left: 0vw;
	margin: 0vh 0vw;
	opacity: 0;
	padding: 0vh 0vw;
	position: fixed;
	top: 0vh;
	transition: opacity .7s;
	width: 100vw;
	z-index: -8;
}

.h-blackout-open {
	opacity: 1;
	z-index: 8;
}

.h-modal-100 {
	/** FLEX **/
	align-items: stretch;
	align-self: center;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	/** FLEX **/
	border-radius: var(--border-radius);
	border-width: 1px;
	border-style: solid;
	border-color: var(--color-theme);
	box-shadow: 0px 0px 8px rgba(16, 16, 16, 0.8);
	height: calc(100% - var(--spacer) - var(--spacer));
	left: 0vw;
	margin: var(--spacer);
	padding: var(--spacer);
	position: fixed;
	top: 0vh;
	width: calc(100% - var(--spacer) - var(--spacer));
	z-index: 8;
}

.h-modal-75 {
	/** FLEX **/
	align-items: stretch;
	align-self: center;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	/** FLEX **/
	border-radius: var(--border-radius);
	border-width: 1px;
	border-style: solid;
	border-color: var(--color-theme);
	box-shadow: 0px 0px 8px rgba(16, 16, 16, 0.8);
	height: auto;
	left: 0vw;
	margin-left: -37.5%;
	margin-top: -37.5%;
	padding: var(--spacer);
	position: fixed;
	top: 0vh;
	width: 75%;
	z-index: 8;
}

/** MODAL **/

/** **/
.li-search {
    cursor: pointer;
    font-size: var(--title-font-size);
}

.li-search:hover {
    font-weight: bold;
}

/* Time picker */
.vue__time-picker {
    width: 100%;
}

.vue__time-picker input.display-time {
    width: 100%;
    border: none;
}

.vue__time-picker .dropdown {
    width: 100%;
}

.vue__time-picker .dropdown .select-list {
    width: 100%;
}

/* icone horas */
.total-badge {
    min-width: 70px;
    width: 70px;
    display: inline-block;
    padding: 2px;
    margin: 0vh 0.5vw;
    border-radius: 4px;
    background-color: var(--color-theme-light);
    color: var(--color-white);
    text-align: center;
    cursor: pointer;
    /* box-shadow: 1px 1px var(--color-theme); */
    transition: background-color 0.3s ease;
}

.total-badge:hover {
    background-color: var(--color-theme);
    box-shadow: 1px 1px var(--color-theme);
}

/* V-SELECT */
.custom-input-field {
	width: 100%;
	color: var(--color-theme);
	border: 0px;
	border-bottom: 1px solid var(--color-theme);
	border-radius: 6px;
	display: inline-block;
	outline: none;
	max-width: calc(100% - 0.6vw);
	height: var(--input-height);
	margin: 0vh 0vw;
  }
  
.custom-input-field .vs__dropdown-toggle {
    border: 0px;
    border-bottom: 1px solid var(--color-theme);
    border-radius: 6px;
}

.custom-input-field .vs__dropdown-menu {
    background-color: #fff;
	width: max-content;
    border: 1px solid var(--color-theme-light);
    border-radius: 6px;
    overflow-y: auto;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.custom-input-field .vs__selected-options {
    color: var(--color-theme);
}

.custom-input-field select {
    height: calc(var(--input-height) + 9px);
    font-size: 14px;
}

.input-label {
    color: var(--color-theme);
}

/* Detalhamento imposto */
.info-text {
    margin-top: 8px;
    margin-bottom: 8px;
    margin-right: 15px;
}
/* Detalhamento imposto */

/* AJUSTES MODAL TICKET */
.modal-ticket-container {
    overflow-y: auto;
}

.modal-ticket-container section.grid-body > div:not(.modal-ticket-complex-content) {
    word-break: break-word;
    overflow-wrap: break-word;
    white-space: normal;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    line-height: 1.4;
    max-height: calc(1.4em * 3);
}

.modal-ticket-container .modal-ticket-complex-content {
    overflow: auto !important;
    text-overflow: clip !important;
    display: block !important;
    -webkit-line-clamp: unset !important;
    max-height: unset !important;
    white-space: normal !important;
    word-break: break-all;
}

.modal-ticket-container .modal-ticket-history-scroll {
    max-height: 200px;
    overflow-y: auto !important;
    padding-right: 10px;
}

.modal-ticket-container .modal-ticket-complex-content pre {
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-all;
    max-height: 150px;
    overflow-y: auto;
}


.modal-ticket-container .input-field,
.modal-ticket-container select.input-field {
    height: auto;
    min-height: var(--input-height);
    line-height: normal;
    padding-top: 0.5vw;
    padding-bottom: 0.5vw;
    box-sizing: border-box;
}

.modal-ticket-container .custom-input-field .vs__selected-options {
    white-space: normal;
    overflow-wrap: break-word;
    word-break: break-word;
}

.modal-ticket-container .custom-input-field .vs__dropdown-menu li {
    word-break: break-word;
    overflow-wrap: break-word;
}

.modal-ticket-container .input-container {
    flex-basis: auto;
    min-width: 0;
}

.modal-ticket-container section.grid-body[style*="grid: auto / 160px 1fr;"] {
    grid-template-rows: auto;
    min-height: 50px;
    align-items: flex-start;
}

.modal-ticket-container .list-item {
    word-break: break-word;
    overflow-wrap: break-word;
    white-space: normal;
}

.modal-ticket-container .list-item > i + a {
    word-break: break-all;
    overflow-wrap: break-word;
    display: inline-block;
}

.modal-ticket-container .info-text {
    word-break: break-word;
    overflow-wrap: break-word;
    white-space: normal;
}

.modal-ticket-container .row {
    flex-wrap: wrap;
    align-items: flex-start;
}

.modal-ticket-container .row > .input-container {
    margin: 0vh var(--spacer-small) 10px 0vw;
    flex-grow: 1;
}

.modal-ticket-container .row > .column {
    margin: 0vh var(--spacer) 0vh 0vw;
    flex-shrink: 1;
    flex-grow: 1;
    min-width: 250px;
}

.modal-ticket-container .row > .column:last-child {
    margin-right: 0vw;
}

.modal-ticket-container section.grid-header[style*="grid: 30px / 160px 1fr;"] {
    grid-template-rows: auto;
    min-height: 30px;
}

.modal-ticket-container section.grid-body[style*="grid: 40px / 160px 1fr;"] {
    grid-template-rows: auto;
    min-height: 40px;
    align-items: flex-start;
}

.modal-ticket-container .w3-card-4 .grid-body {
    grid-template-rows: auto;
    min-height: 40px;
    align-items: flex-start;
}

.modal-ticket-container .modal-ticket-distribuicao-item {
    white-space: pre-wrap;
    word-break: break-word;
    overflow-wrap: break-word;
}

.modal-ticket-container .modal-ticket-inline {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
}

.modal-ticket-container .modal-ticket-inline > .input-container {
    flex: 1 1 calc(50% - var(--spacer-small));
    max-width: calc(50% - var(--spacer-small));
    margin-right: var(--spacer-small);
    box-sizing: border-box;
}

.modal-ticket-container .modal-ticket-inline > .input-container:last-child {
    margin-right: 0;
}

.modal-ticket-container .modal-ticket-inline .input-field {
    width: 100% !important;
}

.vs__dropdown-option {
  contain: content;
}

.dist-item-wrapper {
    width: 100%;
    padding: 12px var(--spacer-small); 
    border-bottom: 1px solid var(--color-gray-light);
    box-sizing: border-box; 
    transition: background-color 0.2s ease;
}

.dist-item-wrapper:last-child {
    border-bottom: none;
}

.dist-item-wrapper:hover {
    background-color: var(--color-gray-light);
}

.list-item-projeto {
    display: flex;
    flex-direction: row;
    align-items: center;
    width: 100%;
    gap: var(--spacer-small); 
    border-bottom: 1px solid var(--color-gray-light);
    padding: 8px 0px;
}

.list-status-icon {
    font-size: 18px;
    flex-shrink: 0; 
}

.list-item-nome {
    font-family: var(--font-family-bold);
    color: var(--color-theme-dark);
    font-size: 14px;
    word-break: normal;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.list-item-dt {
    display: flex;
    flex-direction: column;
    align-items: flex-end; 
    flex-shrink: 0; 
    min-width: 80px; 
}

.list-item-dt-label {
    font-size: var(--small-font-size);
    color: var(--color-gray-dark);
    text-transform: uppercase;
    line-height: 1;
}

.list-metric-value {
    font-family: var(--font-family-bold);
    color: var(--color-theme);
    font-size: 14px;
    line-height: 1.2;
}

.dist-item-justificativa {
    font-size: 12px;
    color: var(--color-gray-dark);
    font-style: italic;
    padding-left: 28px; 
    padding-top: 4px;
    white-space: normal;
    word-break: break-word; 
    line-height: 1.3;
}