body {
  overflow-x: hidden; }

section.content {
  margin-top: 4em; }

.jumbotron, .general-alert {
  margin-top: 1em; }

.btn-file input[type=file] {
  outline: none;
  cursor: inherit; }

.header-buttons {
  margin-top: 1.4em; }

.hamburger {
  color: #9D9D9D;
  margin-top: 0.5em;
  font-size: 150%;
  cursor: pointer; }

.navbar-collapse.open {
  display: block; }

.footer {
  font-size: 80%;
  margin-bottom: 1em; }

.heart {
  color: #ef3e99; }

.star {
  color: #FFCC33; }

.burn {
  color: #ef733e; }

h1 .star, h1 .burn {
  position: absolute;
  top: 0.08em;
  margin-left: 0.5em; }

.relative {
  position: relative; }

.image-caption {
  width: 50%; }
  .image-caption img {
    max-width: 100%; }
  .image-caption p {
    text-align: center;
    font-style: italic;
    font-size: 90%; }

textarea {
  min-height: 250px; }

.loading {
  font-size: 12pt;
  font-style: italic;
  margin: 2em 0; }

.spinner {
  height: 32px;
  width: 32px;
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin-left: 2em;
  animation: spinner-rotate .6s infinite linear;
  border-left: 6px solid rgba(0, 174, 239, 0.15);
  border-right: 6px solid rgba(0, 174, 239, 0.15);
  border-bottom: 6px solid rgba(0, 174, 239, 0.15);
  border-top: 6px solid rgba(0, 174, 239, 0.8);
  border-radius: 100%; }

@keyframes spinner-rotate {
  from {
    transform: rotate(0deg); }
  to {
    transform: rotate(359deg); } }

.roles .checkbox label {
  margin-right: 0.5em;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  border: 1px solid #ccc;
  border-radius: 4px;
  margin-bottom: 0.5em;
  padding: 0.3em 2em; }

.profile .buttons {
  margin-top: 1em; }

.buttons {
  opacity: 0;
  visibility: hidden;
  transition: all 0.5s; }

.buttons a {
  cursor: pointer; }

.user-list {
  display: flex;
  flex-wrap: wrap;
  flex-basis: 0;
  align-items: flex-start;
  justify-content: space-between; }
  .user-list .form-group {
    padding-left: 0; }

.event img {
  max-width: 100%;
  max-height: 500px; }
  @media (min-width: 768px) {
    .event img {
      max-width: 500px;
      margin-left: 1em; } }

.days .heading {
  width: 100%; }

.days h3 {
  display: inline-block; }

.department .title b, .shift .title b {
  padding-right: 1em; }

.description .glyphicon {
  font-size: 1.5em;
  vertical-align: middle;
  color: #337ab7;
  cursor: pointer;
  padding-right: 0.25em; }

.tip {
  margin-top: 0.5em;
  width: 90vw;
  overflow: hidden;
  padding: 1em;
  position: absolute;
  background-color: #fff;
  border: 1px solid #66afe9;
  outline: 0;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
  border-radius: 4px;
  z-index: 100; }
  @media (min-width: 768px) {
    .tip {
      width: 50vw; } }
  @media (min-width: 1024px) {
    .tip {
      width: 33vw; } }

.shift .tip {
  width: 80vw; }
  @media (min-width: 768px) {
    .shift .tip {
      width: 50vw; } }
  @media (min-width: 1024px) {
    .shift .tip {
      width: 33vw; } }

.department .edit span, .shift .edit span {
  font-size: 1.5em;
  vertical-align: middle; }

.shift-wrap .row {
  line-height: 2em; }

.shift-wrap ul {
  list-style: none; }

.timegrid .group {
  width: 50%;
  padding: 0;
  margin: 0; }

.timegrid .times {
  position: relative; }
  .timegrid .times .time {
    padding-left: 0.5em;
    border-left: 1px solid #000; }

.timegrid .background {
  position: absolute;
  right: 0;
  height: 5.9em; }
  .timegrid .background .group {
    height: 100%; }
  .timegrid .background .time {
    border-left: 1px solid #ccc;
    height: 100%;
    margin-top: 0.2em; }

.time.active {
  background-color: rgba(50, 50, 50, 0.1); }

.department {
  border-top: 1px solid #000;
  padding: 1em 0 0.5em 0.5em; }
  .department .title {
    margin-bottom: 1em; }

.shift {
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
  padding-top: 0.2em;
  padding-bottom: 0.2em; }
  .shift .title {
    margin: 0; }

.shift:hover, .shift.active {
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  background-color: rgba(50, 50, 50, 0.1); }

.slots {
  position: relative; }

.slot-wrap {
  overflow: hidden; }
  @media (min-width: 992px) {
    .slot-wrap {
      margin-left: -1.7em; } }

.slot {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  background-color: #ccc;
  border: 1px solid #fff;
  border-radius: 1em;
  display: inline-block;
  box-sizing: border-box;
  padding: 3pt;
  text-align: center;
  height: 100%;
  font-size: 12pt;
  cursor: pointer;
  min-width: 100px; }
  @media (min-width: 992px) {
    .slot {
      min-width: 100%;
      max-width: 100%; } }

.slot.empty {
  font-size: 10pt;
  line-height: 12pt; }
  .slot.empty:hover {
    text-decoration: none; }

.slot.taken {
  background-color: #337ab7;
  border: 1px solid #fff;
  line-height: 1em;
  color: #fff; }

.slot.taken:hover, .slot.taken.active {
  background-color: #337ab7;
  border: 1px solid #000;
  text-decoration: none; }

.slot.taken-by-current-user {
  background-color: #d83664;
  border: 1px solid #fff;
  line-height: 1em;
  color: #fff; }

.slot.taken-by-current-user:hover, .slot.taken-by-current-user.active {
  background-color: #dd2559;
  border: 1px solid #000;
  text-decoration: none; }

.slot:hover, .slot.active {
  background-color: #eee;
  border: 1px solid #000; }

.profile {
  margin-bottom: 1em; }
  .profile .title {
    font-weight: bold; }

.search {
  margin-top: 1.8em; }
  .search button {
    width: 100%; }
