*, *:after, *:before {
  box-sizing: border-box;
}
.debug * {
  outline: 1px solid red;
}
.contain {
  max-width: 70em;
  margin: 0 auto;
  padding: 2em 0.5em;
  transition: opacity 0.2 ease;
}

html {
  font-family: monospace;
  font-size: 16px;
}
body {
  overflow-y: scroll;
  margin: 0;
}
.static {
  background-color: white;
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9000;
  box-shadow: -1px 13px 8px 3px white;
  border-bottom: 1px solid #ccc;
}

a {
  color: black;
}
.theme-dark a {
  color: white;
}

.text-lg {
  font-size: 1.3rem;
}
@media all and (max-width: 50em) {
  #pageviews-chart {
    overflow-x: scroll;
  }
  .charts-css {
    min-width: 150vw;
  }
  .text-lg {
    font-size: 1.15rem;
  }
}


ul, ol {
  margin-left: 0;
  padding-left: 0;
}
li {
  display: block;
  list-style-type: none;
  padding-top: 0.25em;
  padding-bottom: 0.25em;
  word-break: break-word;
}
select {
  display: inline-block;
  padding: 0.5em 1em;
  margin-bottom: 2em;
}

.favicon {
  height: 1rem;
  width: 1rem;
  margin-right: 0.5em;
}

.hidden {
  display: none;
}

.opaque {
  opacity: 0.9;
}


.grid {
  display: flex;
}
.grid > * {
  padding: .25rem;
}

.w-50 {
  width: 50%;
}
.w-50-lg {
  width: 100%;
}
@media all and (max-width: 70em) {
  .w-50 {
    width: 100%;
  }
}
@media all and (min-width: 60em) {
  .grid-lg {
    display: flex;
  }
  .w-50-lg {
    width: 50%;
  }
}







/*
FILTERS
*/
.filterable::before {
  content: '';
  display: inline-block;
  background-color: #000000;
  position: absolute;
  height: 0.5em;
  left: 0;
  bottom: -0.4em;
  right: var(--data-percentage);      
}
.filterable {
  position: relative;
  height: 1.4em;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-all;
  font-weight: bold;
  margin-bottom: 0.5em;
  padding: 0 0.25em;
  border-bottom: 1px dotted #ccc;
  line-height: 1.3;
}
.filterable.active {
  background: #fe1;
}
.theme-dark .filterable.active, .theme-dark .filterable:hover {
  color: black;
}
.filterable.active:not(.static-filter) {
  padding-left: 2em;
}
.filterable:not(.static-filter).active::after {
  position: absolute;
  display: block;
  left: 0;
  top: 0;
  bottom: 0;
  height: 100%;
  width: 1.8em;
  content: '[x]';
  background-color: white !important;
}
.filterable:hover, .filterable:focus, .filterable:active {
  background: #fe1;
  cursor: pointer;
  text-decoration: underline;
  outline: none;
  border-bottom: 1px dotted #ccc;
}
.opaque .filterable, .opaque .filterable, .opaque .filterable {
  background: #fe1;
}
.opaque .filterable:hover, .opaque .filterable:focus, .opaque .filterable:active {
  background: rgba(255, 123, 0, 0.1);
}
.select-timeframe, .select-resolution {
  cursor: pointer;
  outline: none;
  border-bottom: 1px dotted #000;
  display: inline-block;
}
#filters {
  position: fixed;
  top: 0.5em;
  right: 0.5em;
  padding: 0.25em;
  z-index: 100;
  background-color: rgb(250,250,250);
  max-width: 40em;
  font-size: 0.8em;
}
@media all and (max-width: 40em) {
  #filters {
    max-width: 100%;
  }
}




.pad {
  padding: 0.5em;
}






#notice {
  border: 1px solid #000;
  padding: 1em 0.5em;
  position: relative;
  max-width: 40em;
  margin: 1em auto;
}
#notice > span {
  position: absolute;
  top: 0.5em;
  right: 0.5em;
}

details {
  margin-top: 1em;
}



/*
HISTORY
*/

.visitor {
  width: 1em;
  height: 1em;
  display: inline-block;
}
.pageview {
  margin: 0;
  padding: 0.5em 0;
  border-bottom: 1px dotted #000;
}
.pageview p {
  margin: 0;
  padding: 0;
}







@media all and (max-width: 40em) {
  .charts-css.line .data {
    display: none;
  }
}

/*
CHART
*/

#pageviews-chart {
  margin-top: 1em;
  margin-bottom: 1em;
}

.charts-css {
  --color: #222;
  height: 25rem;
  margin: 0 auto;
  overflow: hidden;
  padding-top: 1em;
  padding-bottom: 4em;
  padding-left: 8em;
  padding-right: 8em;
}

.charts-css {
  position: relative;
}
.charts-css tr {
  position: relative;
}
.charts-css td {
  color: #fff;
  /* position: inherit; */
}
.charts-css.line .data {
  /* display: none; */
  color: #333;
}
.charts-css tr:hover td {
  background: #333 !important;
}
.charts-css tr:hover .tooltip {
  visibility: visible;
  opacity: 1;
}
.active {
  border-bottom: 2px solid black;;
}
.charts-css .tooltip {
  position: absolute;
  transition: none !important;
  bottom: -4em;
}
.charts-css .tooltip::after {
  display: none;
}


@media all and (max-width: 70em) {
  .charts-css {
    padding-left: 0;
    padding-right: 0;
  }
  .charts-css tr {
    position: initial;
  }  
  .charts-css.column tbody tr {
    position: initial !important;
  }
  .charts-css.column tbody tr td {
    position: initial !important;
  }  
  .charts-css .tooltip {
    bottom: 0;
  }
  .charts-css.column tbody tr td .data {
    display: none;
  }
}






/*
stats container
*/

.stats {
  padding-top: 1em;
  padding-bottom: 1em;
}





h1, h2, h3, h4, h5, h6 {
  font-size: 1em;
}
.views {
  min-width: 2.5em;
  display: inline-block;
}

.loading {
  transition: opacity 0.3s ease;
  opacity: 0.75;
}

.dot {
  display: inline-block;
  height: 0.5em;
  width: 0.5em;
  border-radius: 50%;
  vertical-align: middle;
}

.live-dot {
  display: inline-block;
  height: 0.5em;
  width: 0.5em;
  background:rgb(32, 255, 88);
  border-radius: 50%;
  vertical-align: middle;
}

#live-pages {
  min-height: 10em;
}


.search {
  font-size: 1.1em;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 1em 1em;
  width: 100%;
}










/*
THEME
*/
.theme-toggle {
  float: right;
  padding: 1em;
  user-select: none;
}
/* .theme-light {} */
.theme-dark {
  background: #111;
  color: white;
}