.loading {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 90vh;
  flex-direction: column;
}
.loading img {
  max-width: 64px;
  margin-bottom: 20px;
}
[v-cloak] {
  display: none;
}
body .fl {
  float: left;
}
body .clearfix {
  clear: both;
}
body .hidden {
  display: none;
}
body .container > .main {
  padding: 15px 15px 20px 15px;
}
body .q-dialog .confirm_event_delete .q-card__actions button.q-btn[type=button],
body .q-dialog .event_validate .q-card__actions button.q-btn[type=button] {
  min-width: 80px;
}
.EventList > .control {
  margin-bottom: 15px;
}
.EventList .q-table__container {
  max-width: 800px;
}
.EventList td:nth-child(4) {
  cursor: pointer;
  white-space: normal;
  width: 100%;
  height: 52px;
}
.Calendar table {
  border-collapse: collapse;
}
.Calendar th {
  min-width: 100px;
}
.Calendar th,
.Calendar td {
  font-weight: normal;
  padding: 5px 3px 2px 3px;
  border: 1px solid rgba(0,0,0,0.12);
}
.Calendar th.hour,
.Calendar td.hour {
  width: 50px;
  text-align: right;
  padding-right: 5px;
}
.Calendar th.spacer,
.Calendar td.spacer {
  height: 30px;
  border-left: none;
  border-right: none;
}
.Calendar .event {
  white-space: nowrap;
  max-width: calc((100vw - 50px) / 7 - 20px);
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: var(--font-size);
  line-height: var(--line-height);
}
.DialogEventEdit .q-card {
  min-width: 650px;
}
.DialogEventEdit .content .q-card__section:not(:nth-child(1)) {
  padding-top: 0;
}
.DialogEventEdit .q-checkbox,
.DialogEventEdit .q-radio {
  padding-right: 10px;
}
.DialogEventEdit .q-checkbox:nth-child(2),
.DialogEventEdit .q-radio:nth-child(2) {
  margin-left: -10px;
}
.DialogEventEdit .radio_title {
  margin-bottom: -5px;
}
.DialogEventEdit .radio_title.days {
  margin-top: -10px;
}
.DialogEventEdit .type_regular .units {
  padding-left: 2px;
}
.DialogEventEdit .q-card__actions {
  padding: 16px;
}
.DialogEventEdit .q-card__actions button.q-btn.q-btn-item {
  min-width: 100px;
}
.DialogEventEdit .event_type {
  padding-bottom: 10px;
}
.DialogEventEdit .days_of_week {
  margin-top: 5px;
  padding-bottom: 10px;
}
.EventPropertyTags {
  margin-top: 10px;
}
.EventPropertyTags hr {
  opacity: 0.4;
}
.EventPropertyTags .EventTagList {
  margin: 5px 0 5px -3px;
}
.EventPropertyTags .EventTagList .no_tags {
  margin-left: 4px;
}
.EventPropertyTags .EventTagFormMakeNew {
  margin-top: -5px;
}
.DialogCalendarSettings .column {
  float: left;
}
.DialogCalendarSettings .column:nth-child(1) {
  padding-right: 20px;
}
.DialogCalendarSettings .q-card {
  min-width: 250px;
  position: fixed;
  right: 10px;
  bottom: 10px;
}
.DialogCalendarSettings .q-chip {
  opacity: 0.35;
}
.DialogCalendarSettings .q-chip.choosed {
  opacity: 1;
}
.DialogCalendarSettings .q-checkbox {
  padding-right: 10px;
  margin: -5px 0px -10px -10px;
}
.DialogCalendarSettings .font_size {
  margin-top: 10px;
}
.DialogCalendarSettings .font_size button {
  margin: -3px 5px 0 5px;
}
.DialogCalendarSettings .font_size > span {
  display: inline-block;
  min-width: 70px;
}
.DialogCalendarSettings .q-card__actions button.q-btn.q-btn-item {
  min-width: 100px;
}
.DialogRemoveTags td {
  vertical-align: top;
  padding: 0 5px 5px 0;
  height: 40px;
}
.DialogRemoveTags td:nth-child(1) {
  padding-top: 8px;
}
.DialogRemoveTags .no_tags {
  padding: 8px 0 0 5px;
}
.DialogRemoveTags .q-card__actions {
  padding: 0 16px 16px 16px;
  min-width: 400px;
}
.DialogRemoveTags .q-card__actions button.q-btn.q-btn-item {
  min-width: 100px;
}
.Settings button {
  display: block;
  min-width: 200px;
  margin-bottom: 10px;
}
.Settings button .q-btn__content {
  padding-top: 3px;
}
.Service button {
  display: block;
  min-width: 200px;
  margin-bottom: 10px;
}
.Service button .q-btn__content {
  padding-top: 3px;
}
.q-table__card.log {
  float: left;
}
.q-table__card.log td {
  vertical-align: top;
}
.q-table__card.log td:nth-child(3) {
  max-width: 40vw;
  white-space: break-spaces;
}
.q-table__card.log .trace {
  white-space: pre;
}
.q-table__card.log .bottom {
  text-align: right;
}
.q-table__card.log .bottom button {
  margin-left: 10px;
}
