.App {
  text-align: center;
  position: relative;
}

.App:-webkit-full-screen {
  height: 100%;
  width: 100%;
  overflow-y: auto;
  background: white;
}

.App-header {
  padding: 16px;
}

.App-mode-all .App-header {
  background-color: #21b077;
  background-color: var(--brand-green, #21b077);
  color: white;
  margin-bottom: 8px;
}

.App-mode-single .App-header {
  color: #004844;
  color: var(--brand-green-dark, #004844);
  border-bottom: 2px solid rgba(255,255,255,0.9);
}

.App-loading {
  margin-top: 160px;
}

.App-search {
  width: 60%;
  border: 1px solid #999;
  border-radius: 5px;
  padding: 8px;
}.LessonBlock {
    display: inline-block;
    width: calc(100% - 4px);
    margin: 0 2px 4px;
    padding: 4px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    position: relative;
    vertical-align: top;
    overflow: hidden;
}

.LessonBlock:hover {
    border-color: #333;
}

.LessonBlock.full {
    opacity: 0.5;
}

.LessonBlock p {
    margin: 0;
}

.App-mode-all .LessonBlock {
    background: white;
    border: 1px solid #ccc;
    cursor: pointer;
}

.App-mode-all .LessonBlock.full {
    opacity: 1;
    background: #ffbebe;
    border-color: #ff7777;
}

.App-mode-all .LessonBlock.full:before {
    content: "FULL";
    position: absolute;
    color: rgba(255, 0, 0, 0.3);
    font-size: 3em;
    font-weight: bold;
    left: 0;
    right: 0;
    top: 30%;
    text-align: center;
    -webkit-transform: rotate(-35deg);
        -ms-transform: rotate(-35deg);
            transform: rotate(-35deg);
}

html[lang^=zh] .App-mode-all .LessonBlock.full:before {
    content: "沒有空缺";
    font-size: 2em;
}.TimeBlocks {
    list-style: none;
    padding: 0;
    position: relative;
    background-image: -webkit-gradient(linear, left top, left bottom, from(#CCC), color-stop(0.5556%, #CCC), color-stop(0.5556%, rgba(0,0,0,0)), to(rgba(0,0,0,0))), -webkit-gradient(linear, left top, left bottom, from(#EEE), color-stop(3.333%, #EEE), color-stop(3.333%, #FFF), to(#FFF));
    background-image: -webkit-linear-gradient(top, #CCC, #CCC 0.5556%, rgba(0,0,0,0) 0.5556%, rgba(0,0,0,0)), -webkit-linear-gradient(top, #EEE, #EEE 3.333%, #FFF 3.333%, #FFF);
    background-image: -o-linear-gradient(top, #CCC, #CCC 0.5556%, rgba(0,0,0,0) 0.5556%, rgba(0,0,0,0)), -o-linear-gradient(top, #EEE, #EEE 3.333%, #FFF 3.333%, #FFF);
    background-image: linear-gradient(to bottom, #CCC, #CCC 0.5556%, rgba(0,0,0,0) 0.5556%, rgba(0,0,0,0)), linear-gradient(to bottom, #EEE, #EEE 3.333%, #FFF 3.333%, #FFF);
    background-size: auto 180px, auto 30px;
    text-align: left;
}

.TimeBlocks::before {
    content: "09:00\A 10:00\A 11:00\A 12:00\A 13:00\A 14:00\A 15:00\A 16:00\A 17:00\A 18:00\A 19:00";
    line-height: 176px;
    vertical-align: text-top;
    white-space: pre;
    top: -87px;
    position: relative;
    font-size: 10px;
    color: #CCC
}
.App-day-label {
    text-align: center;
    color: #004844;
    color: var(--brand-green-dark, #004844);
    font-weight: bold;
    font-family: var(--header-font-family, serif);
    margin: 0;
    font-size: 1.2em;
    padding: 0.8em 0;
    border-bottom: 2px solid rgba(255,255,255,0.9);
}
.App-filter {
  margin-bottom: 8px;
  -ms-flex-align: center;
      align-items: center;
}

.App-filter:last-child {
  margin-bottom: 0;
}

.App-filter-label {
  font-weight: bold;
  font-size: 1.6em;
  cursor: pointer;
  margin: 0;
}

.App-filter-list {
  list-style: none;
  padding: 0;
  -ms-flex: 1 1;
      flex: 1 1;
  margin: 0;
}

.App-mode-all .App-filter-list {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.App-filter-list li {
  display: inline;
}

.App-mode-all .App-filter-list li {
  -ms-flex: 1 0 120px;
      flex: 1 0 120px;
  padding: 4px;
}

.FilterButton-btn {
  border: 0;
  border-radius: 5px;
  background: none;
  margin: 4px;
  padding: 4px 8px;
  -webkit-transition: all 0.25s;
  -o-transition: all 0.25s;
  transition: all 0.25s;
  cursor: pointer;
}

.App-mode-all .FilterButton-btn {
  border: 1px solid white;
  color: white;
  height: 100%;
  width: 100%;
}

.App-mode-all .FilterButton-btn:hover {
  background: rgba(255, 255, 255, 0.3);
}

.App-mode-all .FilterButton-btn_active,
.App-mode-all .FilterButton-btn_active:hover {
  background: white;
  color: #21b077;
  color: var(--brand-green, #21b077);
}

.App-mode-single .FilterButton-btn {
  color: #004844;
  color: var(--brand-green-dark, #004844);
}

.App-mode-single .FilterButton-btn:hover {
  background-color: #5cb9b2;
  background-color: var(--brand-green-light, #5cb9b2);
}

.App-mode-single .FilterButton-btn_active::before {
  content: "✓";
  margin-right: 4px;
}

.App-mode-single .FilterButton-btn_active,
.App-mode-single .FilterButton-btn_active:hover {
  background-color: #5cb9b2;
  background-color: var(--brand-green-light, #5cb9b2);
}.foreground {
    fill: #21b076;
    fill: var(--brand-green, #21b076);
}

#dot {
    -webkit-animation: bounce 1s ease-out infinite alternate;
            animation: bounce 1s ease-out infinite alternate;
}

@-webkit-keyframes bounce {
    0% { -webkit-transform: translateY(0); transform: translateY(0) }
    100% { -webkit-transform: translateY(-2px); transform: translateY(-2px) }
}

@keyframes bounce {
    0% { -webkit-transform: translateY(0); transform: translateY(0) }
    100% { -webkit-transform: translateY(-2px); transform: translateY(-2px) }
}
