table.calendar {
  border-collapse: collapse;
}

table.calendar thead {
  font-weight:bold;
  background-color: #5A5A5A;
  color: white;
  margin-bottom: 3px;
  border-bottom: 3px solid rgba(255,255,255,0);
}

table.calendar thead th {
  font-size: 0.9em;
  font-weight: lighter;
  padding: 6px 6px;
  width: 13px;
  min-width: 13px;
  height: 11px;
  text-align: center;

}

table.calendar thead th.weekend {
  font-weight: bold;
}

table.calendar tbody {
  font-size: 0.6em;
  color: #444;
}

table.calendar td {
  text-align: center;
  padding: 6px;
  cursor: default;
  /* border: 1px solid rgba(185, 185, 185, 0.13); */
  width: 13px;
  min-width: 13px;
  height: 11px;
  line-height: 1;
  box-sizing: content-box;
}

table.calendar tr:last-child td {
  border-bottom: none;
}

table.calendar td.month-name {
  font-weight: bold;
  text-align: left;
  cursor: default;
  border-left: none;
}

table.calendar td.prev-month,
table.calendar td.next-month {
  color: transparent;
  cursor: default;
  pointer-events: none;
}

table.calendar td.week-separator {
  pointer-events: none;
  padding: 0;
  width: 8px;
  min-width: 0;
}

[class*=callow] {
  /* background-color: rgba(159, 220, 249, 0.32); */
  background-color: rgba(145, 212, 110, 0.32);
}
[class*=calmid] {
  background-color: rgba(145, 212, 110, 0.32);
}
[class*=calhigh] {
  /* background-color: rgba(255, 232, 91, 0.32); */
  background-color: rgba(145, 212, 110, 0.32);
}
[class*=calpeak] {
  /* background-color: rgba(246, 151, 60, 0.32); */
  background-color: rgba(145, 212, 110, 0.32);
}
/*table.calendar td.unavailable:not(.fco):not(.lco) {
  background-color: #ff9292;
}*/
table.calendar td[class*=unavail]:not(.fco):not(.lco) {
  background-color: #ff9292;
}
table.calendar td.weekend {
  background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHZpZXdCb3g9IjE4My40Mjk1MzAyMDEzNDIyNiAxNTkuMjY4NDUyMjc5NTE5NzIgMTg5LjIzNDg5OTMyODg1OTEgMTg5LjIzNDg5OTMyODg1OTEiIHdpZHRoPSIxODUuMjMiIGhlaWdodD0iMTg1LjIzIj48ZGVmcz48cGF0aCBkPSJNMTg0LjQzIDE2MC4yN0wzNjkuNjYgMTYwLjI3TDM2OS42NiAzNDUuNUwxODQuNDMgMzQ1LjVMMTg0LjQzIDE2MC4yN1oiIGlkPSJiNTg2Mklib2pmIj48L3BhdGg+PC9kZWZzPjxnPjxnPjx1c2UgeGxpbms6aHJlZj0iI2I1ODYySWJvamYiIG9wYWNpdHk9IjEiIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMC4wNiI+PC91c2U+PC9nPjwvZz48L3N2Zz4=");
  background-size: auto;
  background-repeat: no-repeat;
  background-position: center;
  height: 100%;
  height: -webkit-fill-available;
  height: -moz-available;

}

table.calendar td.fco {
  background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHZpZXdCb3g9Ii0xLjAwMDAwMDAwMDAwMTU5MTYgLTEuMDAwMDAwMDAwMDAwMjI3NCA2NDQuMDAwMDAwMDAwMDAxMSA2NDQuMDAwMDAwMDAwMDAwNyIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIj48ZGVmcz48cGF0aCBkPSJNMCA2NDBMNjQwIDBMNjQwIDY0MEwwIDY0MFoiIGlkPSJhc1JhRXlmdDMiPjwvcGF0aD48L2RlZnM+PGc+PGc+PHVzZSB4bGluazpocmVmPSIjYXNSYUV5ZnQzIiBvcGFjaXR5PSIxIiBmaWxsPSIjZmY5MjkyIiBmaWxsLW9wYWNpdHk9IjEiPjwvdXNlPjxnPjx1c2UgeGxpbms6aHJlZj0iI2FzUmFFeWZ0MyIgb3BhY2l0eT0iMSIgZmlsbC1vcGFjaXR5PSIwIiBzdHJva2U9IiM4NDVmZTYiIHN0cm9rZS13aWR0aD0iMCIgc3Ryb2tlLW9wYWNpdHk9IjEiPjwvdXNlPjwvZz48L2c+PC9nPjwvc3ZnPg==");
  background-size: auto;
  background-repeat: no-repeat;
  background-position: center;
/*  background-color: inherit;*/
  height: 100%;
  height: -webkit-fill-available;
  height: -moz-available;
}
table.calendar td.lco {
  background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHZpZXdCb3g9Ii0xIC0xIDM1MC45MjA0NTAwNjM4OTU0MyAzNTAuOTIwNDUwMDYzODk1NSIgd2lkdGg9IjM0Ni45MiIgaGVpZ2h0PSIzNDYuOTIiPjxkZWZzPjxwYXRoIGQ9Ik0wIDM0Ni45MkwwIDBMMzQ2LjkyIDBMMCAzNDYuOTJaIiBpZD0iZzRBU3ZsM00xIj48L3BhdGg+PC9kZWZzPjxnPjxnPjx1c2UgeGxpbms6aHJlZj0iI2c0QVN2bDNNMSIgb3BhY2l0eT0iMSIgZmlsbD0iI2ZmOTI5MiIgZmlsbC1vcGFjaXR5PSIxIj48L3VzZT48Zz48dXNlIHhsaW5rOmhyZWY9IiNnNEFTdmwzTTEiIG9wYWNpdHk9IjEiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSIjODQ1ZmU2IiBzdHJva2Utd2lkdGg9IjAiIHN0cm9rZS1vcGFjaXR5PSIxIj48L3VzZT48L2c+PC9nPjwvZz48L3N2Zz4=");
  background-size: auto;
  background-repeat: no-repeat;
  background-position: center;
/*  background-color: inherit;*/
  height: 100%;
  height: -webkit-fill-available;
  height: -moz-available;
}
table.calendar td.fco.weekend {
  background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHZpZXdCb3g9IjE4My40Mjk1MzAyMDEzNDIyNiAxNTkuMjY4NDUyMjc5NTE5NzIgMTg5LjIzNDg5OTMyODg1OTEgMTg5LjIzNDg5OTMyODg1OTEiIHdpZHRoPSIxODUuMjMiIGhlaWdodD0iMTg1LjIzIj48ZGVmcz48cGF0aCBkPSJNMTg0LjQzIDE2MC4yN0wzNjkuNjYgMTYwLjI3TDM2OS42NiAzNDUuNUwxODQuNDMgMzQ1LjVMMTg0LjQzIDE2MC4yN1oiIGlkPSJiNTg2Mklib2pmIj48L3BhdGg+PC9kZWZzPjxnPjxnPjx1c2UgeGxpbms6aHJlZj0iI2I1ODYySWJvamYiIG9wYWNpdHk9IjEiIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMC4wNiI+PC91c2U+PC9nPjwvZz48L3N2Zz4="),
  url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHZpZXdCb3g9Ii0xLjAwMDAwMDAwMDAwMTU5MTYgLTEuMDAwMDAwMDAwMDAwMjI3NCA2NDQuMDAwMDAwMDAwMDAxMSA2NDQuMDAwMDAwMDAwMDAwNyIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIj48ZGVmcz48cGF0aCBkPSJNMCA2NDBMNjQwIDBMNjQwIDY0MEwwIDY0MFoiIGlkPSJhc1JhRXlmdDMiPjwvcGF0aD48L2RlZnM+PGc+PGc+PHVzZSB4bGluazpocmVmPSIjYXNSYUV5ZnQzIiBvcGFjaXR5PSIxIiBmaWxsPSIjZmY5MjkyIiBmaWxsLW9wYWNpdHk9IjEiPjwvdXNlPjxnPjx1c2UgeGxpbms6aHJlZj0iI2FzUmFFeWZ0MyIgb3BhY2l0eT0iMSIgZmlsbC1vcGFjaXR5PSIwIiBzdHJva2U9IiM4NDVmZTYiIHN0cm9rZS13aWR0aD0iMCIgc3Ryb2tlLW9wYWNpdHk9IjEiPjwvdXNlPjwvZz48L2c+PC9nPjwvc3ZnPg==");
  background-size: auto, auto;
  background-repeat: no-repeat,no-repeat;
  background-position: center, center;
  height: 100%;
  height: -webkit-fill-available;
  height: -moz-available;
}
table.calendar td.lco.weekend {
  background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHZpZXdCb3g9IjE4My40Mjk1MzAyMDEzNDIyNiAxNTkuMjY4NDUyMjc5NTE5NzIgMTg5LjIzNDg5OTMyODg1OTEgMTg5LjIzNDg5OTMyODg1OTEiIHdpZHRoPSIxODUuMjMiIGhlaWdodD0iMTg1LjIzIj48ZGVmcz48cGF0aCBkPSJNMTg0LjQzIDE2MC4yN0wzNjkuNjYgMTYwLjI3TDM2OS42NiAzNDUuNUwxODQuNDMgMzQ1LjVMMTg0LjQzIDE2MC4yN1oiIGlkPSJiNTg2Mklib2pmIj48L3BhdGg+PC9kZWZzPjxnPjxnPjx1c2UgeGxpbms6aHJlZj0iI2I1ODYySWJvamYiIG9wYWNpdHk9IjEiIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMC4wNiI+PC91c2U+PC9nPjwvZz48L3N2Zz4="),
  url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHZpZXdCb3g9Ii0xIC0xIDM1MC45MjA0NTAwNjM4OTU0MyAzNTAuOTIwNDUwMDYzODk1NSIgd2lkdGg9IjM0Ni45MiIgaGVpZ2h0PSIzNDYuOTIiPjxkZWZzPjxwYXRoIGQ9Ik0wIDM0Ni45MkwwIDBMMzQ2LjkyIDBMMCAzNDYuOTJaIiBpZD0iZzRBU3ZsM00xIj48L3BhdGg+PC9kZWZzPjxnPjxnPjx1c2UgeGxpbms6aHJlZj0iI2c0QVN2bDNNMSIgb3BhY2l0eT0iMSIgZmlsbD0iI2ZmOTI5MiIgZmlsbC1vcGFjaXR5PSIxIj48L3VzZT48Zz48dXNlIHhsaW5rOmhyZWY9IiNnNEFTdmwzTTEiIG9wYWNpdHk9IjEiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSIjODQ1ZmU2IiBzdHJva2Utd2lkdGg9IjAiIHN0cm9rZS1vcGFjaXR5PSIxIj48L3VzZT48L2c+PC9nPjwvZz48L3N2Zz4=");
  background-size: auto, auto;
  background-repeat: no-repeat,no-repeat;
  background-position: center, center;
  height: 100%;
  height: -webkit-fill-available;
  height: -moz-available;
}
table.calendar td.fco.lco {
  background-color: #ff9292;
}
table.calendar td.bolder {
/*  font-weight: bold;*/
}
/*
table.calendar td.winter.range,
table.calendar td.winter.selected {
  background-color: rgba(159, 220, 249, 1);
  font-weight: bold;
}
table.calendar td.spring.range,
table.calendar td.spring.selected {
  background-color: rgba(145, 212, 110, 1);
  font-weight: bold;
}
table.calendar td.summer.range,
table.calendar td.summer.selected {
  background-color: rgba(255, 232, 91, 1);
  font-weight: bold;
}
table.calendar td.autumn.range,
table.calendar td.autumn.selected {
  background-color: rgba(246, 151, 60, 1);
}
*/
div.calendar-controls {
  margin: 5px auto;
  display: table;
  font-size: 35px;
  line-height: 35px;
}

div.calendar-controls div {
  display: inline;
}

div.calendar-controls .current-year {
  margin: 0 30px;
}

div.calendar-controls .control {
  font-weight: bolder;
  color: #323232;
  font-size: 1.2em;
  cursor: pointer;
}

div.calendar-controls .today {
  position: absolute;
  right: 15px;
  line-height: 35px;
  font-size: 0.6em;
  text-transform: uppercase;
}

/* Demo */

div#calendar {
  position: relative;
  overflow: hidden;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

div#root {
  display: table;
}
table.legend, table.legend td {
  border: 1px solid rgba(255,255,255,0)!important;
}
table.legend td.text {
  width:auto !important;
}

/*table.calendar td.vandaag {
  font-weight: bold;
}*/
