/*=== LCARS Pi-hole Theme ===*/

/*** Main variables ***/
:root {
  --sidebar-width: 230px;
  --gradient-pos: 304px;
  --primary-color: #48f;
  --text-color: #abc;
  --net-never-color: #000;
  --net-recent-color: #055;
  --net-old-color: #125;
  --net-older-color: #1c2228;

  /* Dashboard graphic bars */
  --allowed-color: #073;
  --blocked-color: #d43;
  --cached-color: #7bf;
  --other-color: #eca;
}

.sidebar-collapse {
  --sidebar-width: 50px;
}

.sidebar-open {
  --gradient-pos: 74px;
}

/*** General ***/
html {
  /* fix #2554: browser not detecting dark mode */
  color-scheme: dark;
}

body {
  font-size: 17px;
  color: var(--text-color);
  background: #000;
  font-family:
    Antonio, Oswald, "Myriad Pro Cond", "Roboto Condensed", "Futura Condensed",
    "Helvetica Condensed", "Arial Narrow", sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: Antonio, Oswald, "Myriad Pro Cond", "Roboto Condensed", sans-serif;
  text-transform: uppercase;
  font-weight: bold;
}

h1 {
  font-size: 2.2em;
  font-weight: normal;
  text-align: right;
}

h2 {
  font-size: 1.6em;
  font-weight: normal;
}

h3,
.card-header .card-title {
  font-size: 1.2em;
}

h4 {
  font-size: 1em;
}

h5 {
  font-size: 0.9em;
}

h6 {
  font-size: 0.75em;
}

a {
  color: #48f;
}

a:hover,
a:active,
a:focus {
  color: #eda;
}

td a {
  color: #9bd;
}

code,
pre {
  padding: 1px 3px;
  line-height: 1em;
  font-size: 1em;
  color: #000;
  background-color: var(--text-color);
  border-radius: 4px;
}

code {
  margin: 0 2px;
  font-family: "Ubuntu Mono", Consolas, "Courier New", monospace;
}

footer code {
  text-transform: none;
}

pre {
  padding: 10px 3px;
  border: none;
}

.alert pre {
  background: none;
}

#output {
  padding: 10px 3px;
  border-radius: 12px;
  background: #181818;
  color: var(--text-color);
}

td code {
  margin: 0;
}

kbd {
  color: #000;
  background-color: var(--text-color);
  box-shadow: inset -1px -1px 2px 0 rgba(0, 0, 0, 0.5);
  vertical-align: middle;
}

th {
  text-transform: uppercase;
}

.app-wrapper,
.app-sidebar,
.left-side,
.app-main,
.layout-boxed {
  background: #000;
}

/*** Buttons ***/
#gravityBtn {
  margin: 0 0 20px;
}

.btn {
  color: #000;
  font-weight: bold;
  border: none;
  border-radius: 8px;
}

.btn-default,
.btn-primary,
.btn-success,
.btn-warning,
.btn-danger {
  padding: 0.714em 0.857em 0.143em 2.143em;
  border-radius: 1.07em;
  text-align: right;
}

.btn-default {
  background-color: var(--text-color);
  border: none;
}

.btn-primary {
  min-width: 80px;
  background: #48f;
  border: none;
  color: #000;
  font-weight: bold;
  text-transform: uppercase;
}

.btn-app {
  padding: 15px 5px;
  text-align: center;
  margin: 0;
  background: #48f;
}

.btn-app:hover {
  background: #fff;
}

.btn-xs {
  padding: 0 5px 2px;
  border-radius: 5px;
  min-width: auto;
}

.btn.btn-box-tool {
  color: var(--text-color);
}

.btn.btn-box-tool:hover,
.btn.btn-box-tool:active {
  color: #48f;
}

.btn.btn-box-tool:focus {
  color: #8bf;
}

.toggle-on.btn {
  padding-right: 0.857em;
}

.toggle-on,
.toggle-off {
  text-align: right;
}

.toggle.btn,
.toggle.btn:hover,
.toggle.btn:active {
  background: #00a65a;
}

.toggle-handle.btn {
  display: none;
}

.allowed-row .btn-default.text-red,
.blocked-row .btn-default.text-green {
  background-color: #bcd;
  text-shadow: 0 0 1px #fff;
}

#domain-frequency table button,
#ad-frequency table button {
  margin: 1px;
  padding: 2px;
  background: transparent;
}

.btn-primary:hover,
.btn-primary:active,
.btn-primary.hover {
  background-color: #8bf;
}

.allowed-row .btn-default.text-red:hover,
.blocked-row .btn-default.text-green:hover,
#domain-frequency table button:hover,
#ad-frequency table button:hover {
  background-color: #fff;
}

.btn-default:hover,
.btn-default:active,
.btn-default.hover {
  background-color: #48f;
  color: #000;
}

.btn-primary:hover {
  color: #000;
}

.btn-primary.focus,
.btn-primary:focus,
.btn-primary.active.focus,
.btn-primary:active:focus {
  background-color: #04f;
  color: #000;
}

/*** Forms - input - select - etc ***/
input,
select,
select.form-control,
.form-group .input-group-addon,
.input-group .input-group-addon,
.form-group input,
.input-group input,
.form-group textarea,
.input-group textarea,
.daterangepicker select.hourselect,
.daterangepicker select.minuteselect,
.daterangepicker select.secondselect,
.daterangepicker select.ampmselect,
.form-control:not(.btn),
div.dataTables_wrapper div.dataTables_length select {
  background: #000;
  border: 2px solid #567;
  color: #fff;
  border-radius: 8px;
}

/* Remove border from group assignment select */
.form-control:has(.selectpicker) {
  border: none;
  color: #246;
}

/*** Overwrite chrome's input field auto-filling ***/
input:-webkit-autofill,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill {
  -webkit-text-fill-color: #fff !important;
  -webkit-box-shadow: 0 0 0 1000px #000 inset;
  -webkit-transition: background-color 1s ease-in-out 0s;
  transition: background-color 1s ease-in-out 0s;
}

input.form-control,
textarea.form-control {
  border-radius: 8px;
  height: auto;
  padding: 4px 8px;
}

.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  background: #222;
}

select,
select.form-control {
  position: relative;
  margin: 0 2px;
  padding: 0 4px 2px;
  height: 1.75em;
  background: #678;
  border: none;
  border-radius: 8px;
  font-size: 1em;
  color: #000;
}

label {
  font-weight: bold !important;
}

div .card-title,
p.login-box-msg,
.form-group.has-error label {
  position: relative;
  z-index: 1;
}

.form-control::-moz-placeholder {
  color: #456;
}

.form-control::placeholder {
  color: #456;
}

.form-control:focus {
  border-color: #48f;
  box-shadow: none;
}

.has-error.login-box-msg::before,
.has-error.login-box-msg::after {
  content: "ACCESS DENIED";
  margin: -20px -20px 20px;
  padding: calc(176px - 0.5em) 0 0;
  position: absolute;
  inset: 0;
  font-size: clamp(40px, calc((100vw - 60px) / 6), 90px);
  line-height: 1;
  height: calc(176px + 2em);
}

.form-group.has-error.login-box-msg::before {
  color: #600;
  background-image: linear-gradient(
    rgba(0, 0, 0, 0),
    rgba(0, 0, 0, 0.7) 10%,
    rgba(0, 0, 0, 0.7) 70%,
    rgba(0, 0, 0, 0)
  );
  text-shadow: 0 0 0.25em #000;
}

.form-group.has-error.login-box-msg::after {
  color: #e30;
  animation: 3s infinite Pulse steps(30);
  z-index: 1;
}

#loginform .has-error + .row .btn {
  background: #d43;
}

#loginform .has-error + .row .btn:hover {
  background: #d32;
}

#loginform .has-error + .row .btn:active,
#loginform .has-error + .row .btn:focus {
  background: #f00;
}

.input-group .input-group-addon {
  border-radius: 8px 0 0 8px;
  border-right: none;
  background: #678;
  color: #000;
}

.select2 .select2-selection {
  background-color: #000;
  color: var(--text-color);
  border: 2px solid #567;
  border-radius: 8px;
}

.select2 .select2-selection .select2-container--default,
.select2 .select2-selection .select2-selection--single,
.select2 .select2-selection .select2-selection--multiple,
.select2 .select2-selection .select2-selection__rendered {
  color: #bec5cb;
}

.select2-dropdown {
  background-color: var(--text-color);
  color: #000;
  border: none;
}

.select2-dropdown .select2-search__field {
  background-color: #000;
  color: #fff;
  border: none !important;
  border-radius: 8px;
}

.select2-container .select2-selection--single,
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 32px;
}

.select2-container--default.select2-container--open {
  background: none;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: rgba(255, 255, 255, 0.4);
  color: #000;
}

.select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: inherit;
  padding: 0;
}

/*** WRAPPER ***/
.layout-boxed .app-wrapper {
  box-shadow: none;
  max-width: 1320px;
}

.app-wrapper {
  padding: 0 5px;
}

/*** HEADER ***/
.app-header {
  padding-bottom: 25px;
  background: #48f;
  background-image:
    linear-gradient(to right, #48f 300px, #000 300px),
    linear-gradient(
      to left,
      #48f 359.5px,
      #000 359.5px,
      #000 363.5px,
      #48f 363.5px,
      #48f 700px,
      #000 700px,
      #000 704px,
      #8bf 704px,
      #8bf 754px,
      #000 754px
    );
  background-size:
    304px 100%,
    758px 100%;
  background-repeat: no-repeat;
  background-position:
    0 0,
    100% 0;
  border-radius: 0 0 0 min(75px, var(--sidebar-width));
  font-weight: bold;
  text-transform: uppercase;
}

/*** Navbar ***/
.app-header .navbar {
  background-image: linear-gradient(#000 36px, transparent 36px);
}
.sidebar-mini.sidebar-collapse .app-header .navbar {
  margin-left: 50px;
}

.app-header .navbar::after {
  content: "";
  display: block;
  width: 100%;
  height: 25px;
  background: #000;
  border-radius: 0 0 0 25px;
  position: absolute;
  bottom: -10px;
  z-index: -1;
}

.navbar-nav > .user-menu > .dropdown-menu {
  margin: 5px 0;
  padding: 0;
  overflow: hidden;
  color: var(--text-color);
  background: #111111 !important;
  border: 3px solid #4488ff !important;
  border-radius: 8px;
  box-shadow: 0 0 0 2000vmax rgba(0, 0, 0, 0.6);
}

.dropdown-menu {
  background: none;
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:active,
.dropdown-menu > li > a:focus {
  color: #fff;
  background: #000;
}

.dropdown-toggle {
  z-index: 1000;
}

.open > .dropdown-menu {
  border-radius: 8px;
  border-width: 2px;
  color: var(--text-color);
}

.open > .dropdown-menu.open {
  background: #111;
  border-color: #567;
}

.dropdown-toggle.btn-default,
.dropdown-toggle.btn-default:active,
.open > .dropdown-toggle.btn-default {
  padding: 0.4em 1em 0.2em 2em;
  color: var(--text-color);
  background-color: #000;
  border: 2px solid #567 !important;
  border-radius: 8px;
}

.open > .dropdown-toggle.btn-default:hover {
  background: #567;
  color: #fff;
}

.app-header li.user-header {
  background-color: #000;
}

.navbar-nav > .user-menu > .dropdown-menu > .user-body {
  border: none;
}

.navbar .nav > li > a,
.navbar .nav > li > .navbar-text {
  padding: 0;
  margin: 0;
  width: 100%;
  color: #000;
  line-height: 1.2;
  font-size: 1em;
  text-align: center;
  word-break: break-word;
}

.nav.navbar-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 359.5px;
  height: auto;
  position: absolute;
  right: 0;
  top: 0;
  bottom: -6px;
  background: #48f;
  padding: 0 20px;
}

.navbar-custom-menu > .navbar-nav > li {
  flex: 1 1 auto;
}

.warning-count {
  position: relative;
  margin: 0;
  padding: 0.2em 0.52em 0.3em;
  right: 0;
  top: 0;
  background: #fa3;
  color: #000;
}

.sidebar-menu li > a > .pull-right-container.warning-count {
  transform: none;
  position: relative;
  bottom: 0.15em;
}

#top-warning-count {
  position: absolute;
  top: 60%;
}

.dropdown.user.user-menu {
  margin-left: 20px;
  width: 1.6em;
  flex: 0 1 auto;
  padding: 0 5px 5px;
  border-radius: 4px;
  background: none;
}

.navbar-text code {
  display: inline-block;
  padding: 0;
  margin: 0;
  font-size: inherit;
  line-height: 0.95;
  background: none;
  font-family: inherit;
  color: #cce6ff;
}

.navbar-nav > .user-menu .user-image {
  float: none;
  width: 1em;
  height: 22px;
  margin: 0;
  vertical-align: baseline;
}

.app-header .navbar .nav > li > a:hover,
.app-header .navbar .nav > li > a:active,
.app-header .navbar .nav > li > a:focus,
.app-header .navbar .nav .open > a,
.app-header .navbar .nav .open > a:hover,
.app-header .navbar .nav .open > a:focus {
  background-color: transparent;
  color: #fff;
}

.app-header .navbar .nav > li > a > .label {
  padding: 0.25em;
  min-width: 1.6em;
  min-height: 1.6em;
  top: auto;
  bottom: -0.7em;
  right: -0.3em;
  font-size: 14px;
  line-height: 1;
  text-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
  border-radius: 0.8em;
}

.app-header .navbar .sidebar-toggle {
  color: #fff;
}

.app-header .logo {
  color: #000;
}

.app-header .logo:hover {
  background-color: transparent;
  color: #fff;
}

.logo:focus {
  color: #eda;
}

.sidebar-toggle-svg:focus {
  color: #48f;
}

.sidebar-toggle-svg:hover {
  color: #04f;
  background: none;
}

/*** CONTENT ***/
.sidebar-mini.sidebar-collapse .app-main,
.sidebar-mini.sidebar-collapse .right-side,
.sidebar-mini.sidebar-collapse .app-footer {
  margin-left: 50.2px !important;
}

.app-main {
  background-image:
    linear-gradient(to left, #000 4px, #cce6ff 4px),
    linear-gradient(
      to left,
      #48f 359.5px,
      #000 359.5px,
      #000 363.5px,
      #48f 363.5px,
      #48f 700px,
      #000 700px,
      #000 704px,
      #04f 704px,
      #05f,
      #04f 754px,
      #000 754px
    ),
    linear-gradient(#48f, #48f);
  background-size:
    calc(304px - var(--sidebar-width)) 50px,
    758px 50px,
    100% 50px;
  background-position:
    0 4px,
    100% 4px,
    0 4px;
  background-repeat: no-repeat;
  overflow: hidden;
  transition:
    all 0.3s ease-in-out,
    width 0.3s ease-in-out;
}

.content {
  margin-top: 20px;
  background: #000;
  padding: 20px 0 20px 20px;
  border-radius: 25px 0 0;
  overflow: hidden;
}

/*** SIDEBAR / ASIDE ***/
.app-sidebar {
  padding: 79px 0 0 5px;
  width: calc(var(--sidebar-width) + 5px);
}

.app-sidebar::after {
  content: "";
  display: block;
  position: absolute;
  width: var(--sidebar-width);
  top: 150px;
  bottom: 20px;
  left: 5px;
  background: #cce6ff;
  background-image: linear-gradient(
    to top,
    #cce6ff 200px,
    #000 200px,
    #000 204px,
    #48f 204px,
    #48f 270px,
    #000 270px,
    #000 274px,
    transparent 274px
  );
  background-repeat: no-repeat;
  background-position: bottom;
  border-radius: 0 0 0 min(90px, var(--sidebar-width));
  transition: all 0.3s ease-in-out;
  z-index: -1;
}

.sidebar-mini.sidebar-collapse .app-sidebar {
  width: calc(var(--sidebar-width) + 5px) !important;
}

.sidebar {
  padding: 0 0 4px;
  background: #000;
  font-weight: bold;
  text-transform: uppercase;
}

.sidebar a {
  color: #000;
}

.sidebar-menu > li {
  text-align: right;
  --hover-color: var(--backlit-color);
  --active-color: #fff;
}

.sidebar-menu > li.nav-header {
  margin: 0;
  padding: 0;
  color: transparent;
  font-size: 0;
}

/* Menu groups */
.menu-main {
  --normal-color: #26f;
  --backlit-color: #8bf;
  --darken-color: #59f;
}

.menu-analysis {
  --normal-color: #48f;
  --backlit-color: #bdf;
  --darken-color: #8bf;
}

.menu-group {
  --normal-color: #8bf;
  --backlit-color: #bdf;
  --darken-color: #8bf;
}

.menu-dns {
  --normal-color: #eca;
  --backlit-color: #fdb;
  --darken-color: #eca;
}

.menu-system {
  --normal-color: #e97;
  --backlit-color: #fb9;
  --darken-color: #e97;
}

.menu-donate {
  --normal-color: #d67;
  --backlit-color: #e89;
  --darken-color: #d67;
}

.sidebar-menu > li > a {
  margin: 4px 0 0;
  padding: 30px 15px 5px;
  background: var(--normal-color);
  border-left: none;
}

.sidebar-menu > li.active > a {
  background-color: var(--active-color);
}

.sidebar-menu > li:hover > a,
.sidebar-menu > li > a:focus {
  background-color: var(--backlit-color);
  box-shadow: inset 0 0 20px var(--darken-color);
}

.sidebar-menu > li > .nav-treeview {
  padding: 0;
}

.sidebar-menu li > a > .pull-right-container {
  position: absolute;
  top: auto;
  bottom: 0.5em;
  margin: 0;
  right: unset;
  left: 0;
  transform: scaleX(-1);
}

.sidebar-menu li > a > span .pull-right-container {
  position: absolute;
  bottom: 7px;
  left: 10px;
}

.sidebar-menu li > a > span .pull-right-container span {
  float: left !important;
}

.nav-treeview > li > a {
  margin: 4px 0 0;
  padding: 23px 38px 4px 0;
  position: relative;
  overflow: hidden;
  color: #000;
  background: var(--normal-color);
  background-image: linear-gradient(
    to right,
    var(--backlit-color) 36px,
    #000 36px,
    #000 40px,
    transparent 40px
  );
  border-radius: 22px;
}

.nav-treeview > li.active > a {
  background-color: var(--active-color);
}

.nav-treeview > li > a:hover {
  background-color: var(--hover-color);
  box-shadow: inset 0 0 18px var(--darken-color);
}

#pihole-disable > a > span:not(.pull-right-container) {
  margin-right: -9px;
}

.sidebar-menu li a > i {
  display: none;
}

.menu-icon {
  margin-right: 0;
}

.nav-treeview li a i {
  display: inherit;
  position: absolute;
  right: 16px;
  bottom: 6px;
}

.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse
  .sidebar-menu
  > li:hover
  > a
  > span {
  margin-left: 0;
  padding: 26px 10px 0;
  top: 0;
  bottom: 0;
}

.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse
  .sidebar-menu
  > li:hover
  > .nav-treeview {
  display: block !important;
  top: 100%;
  border-radius: 0 0 4px;
  background: rgba(0, 0, 0, 0.666);
  overflow: hidden;
  z-index: -1;
}

.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse
  .sidebar-menu
  > li:hover
  > .nav-treeview
  li
  a {
  border-radius: 0;
  margin: 4px 0 0 4px;
  padding: 15px 8px 3px;
  background-image: none;
}

.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse
  .sidebar-menu
  > li:hover
  > a
  > .pull-right-container {
  background: none;
  position: absolute !important;
}

.sidebar-collapse .nav-treeview li a i {
  top: auto;
  right: auto;
  bottom: 6px;
  left: 6px;
}

/*--- user-panel ---*/
.user-panel {
  padding: 30px 0;
  background: #cce6ff;
  border-radius: 75px 0 0;
  z-index: 0;
}

.user-panel > .info,
.user-panel > .info > a {
  color: #000;
  left: auto;
  z-index: -2;
}

.user-panel > .info > span {
  margin: 1px 0;
}

.user-panel .image {
  margin-top: 20px;
}

.user-panel > .info i {
  text-shadow: 0 0 1px #fff;
  margin: 0 2px 0 -2px;
}

.user-panel > .info i.text-orange,
.user-panel > .info i.text-red {
  animation: fire 1s ease-in-out 0s infinite;
}

/*** FOOTER ***/
footer a {
  color: #48f;
}

footer a:hover,
footer a:active,
footer a:focus {
  color: #04f;
}

.app-footer {
  position: relative;
  margin: 0 0 0 var(--sidebar-width);
  padding: 0 0 20px;
  background: #cce6ff;
  background-image: linear-gradient(transparent calc(100% - 20px), #000 calc(100% - 20px));
  border: none;
  color: #000;
  font-size: 0.9em;
  text-transform: uppercase;
  z-index: 0;
}

.app-footer > div {
  margin: 35px 15px 15px;
}

.version-info > div {
  width: 100%;
}
.version-info .list-inline {
  margin: 0;
}

.app-footer::before {
  content: "";
  height: 35px;
  background: #000;
  border-radius: 0 0 0 20px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: -1;
}

@media (max-width: 1199px) {
  .app-footer > div:first-child {
    position: relative;
    height: 17px;
    background-image: linear-gradient(
      to right,
      #8bf 20px,
      #000 20px,
      #000 24px,
      #48f 24px,
      #48f calc(100% - 24px),
      #000 calc(100% - 24px),
      #000 calc(100% - 20px),
      #8bf calc(100% - 20px)
    );
    border-radius: 0.6em;
    font-weight: bold;
  }

  .app-footer > div:first-child > div {
    margin: 0;
    padding: 0 5px;
    width: auto;
    position: absolute;
    bottom: -3px;
    right: 20px;
    background: #000;
    text-transform: uppercase;
    color: #8bf;
    font-size: 18.5px;
  }
}

@media (min-width: 1200px) {
  .app-footer {
    padding: 55px 0 40px;
    display: flex;
    justify-content: space-evenly;
    align-items: center;
  }

  .app-footer::before {
    border-radius: 0 0 0 35px;
  }

  .app-footer > div {
    margin: 5px !important;
  }

  .app-footer > div div {
    width: auto;
  }
}

/*** sidebar-collapse effect ***/
.sidebar-collapse .app-main {
  padding-left: 0;
  border-radius: 0;
}

.sidebar-collapse .app-wrapper::after {
  width: 50px;
}

.sidebar-collapse .app-wrapper::before {
  width: 50px;
}

.sidebar-collapse .sidebar-menu > li a {
  box-shadow: none;
}

.sidebar-collapse .sidebar-menu i {
  display: block;
}

/*** Page, panels, boxes, tables, etc. ***/
.card,
.card-title,
.card-footer,
.info-box,
.box-comment,
.comment-text,
.comment-text .username,
.card-info {
  color: var(--text-color);
}

.btn .card-title {
  color: inherit;
}

.card.box-solid .card-title {
  color: #fff;
}

.card {
  margin-bottom: 1.8em;
  background: #111;
  border-color: transparent;
  border-radius: 12px;
  box-shadow: none;
}

.card .overlay,
.overlay-wrapper .overlay {
  background: rgba(34, 34, 34, 0.8);
  border-radius: 12px;
  padding: 0 4px;
}

.modal-body .overlay {
  padding: 0;
  border-radius: 3px;
}

.modal-header,
.modal-footer {
  border-color: #222;
}

.card-header.with-border,
.table-responsive,
.table-bordered,
.table-bordered tr,
.table-bordered th,
.table-bordered td,
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td,
table.table-bordered.dataTable th,
table.table-bordered.dataTable td {
  border: none !important;
}

.add-new-item {
  vertical-align: baseline;
}

.card-footer {
  border-radius: 0;
  border-top: 4px solid #000;
  padding: 10px;
  background-color: transparent;
}

.login-box {
  margin-bottom: 0;
  background: #181818;
}

.page-header {
  border: none;
}

/*--- nav-tabs ---*/
.nav-tabs-custom {
  background: none;
}

.nav-tabs-custom > .tab-content {
  background: none;
}

.nav-tabs-custom > .nav-tabs {
  overflow: hidden;
}

.nav-tabs-custom > .nav-tabs > li {
  margin: 0 2px;
  border: none;
  background: var(--text-color);
}

.nav-tabs-custom > .nav-tabs > li > a {
  padding: 6px 8px 8px;
  line-height: 1;
  color: #000;
  font-weight: bold;
  text-transform: uppercase;
  border: none;
}

.nav-tabs-custom > .nav-tabs > li.active > a,
.nav-tabs-custom > .nav-tabs > li.active:hover > a {
  color: #000;
  border: none;
  background: #48f;
}

.nav-tabs-custom > .nav-tabs > li > a:hover {
  color: #000;
  background: #f90;
}

.nav-tabs-custom > .nav-tabs > li:first-of-type {
  border-radius: 0.85em 0 0 0.85em;
  overflow: hidden;
}

.nav-tabs {
  border: none;
}

.nav-tabs > li {
  margin-bottom: 0;
}

.nav-tabs-custom > .nav-tabs > li:last-of-type {
  border-radius: 0 0.85em 0.85em 0;
  overflow: hidden;
}

/*--- tables ---*/
.table tr th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > th {
  width: auto !important;
  color: #fff;
  padding: 8px 4px;
}

.table tr td,
.table > tbody > tr > td,
.table > tfoot > tr > td,
.table > thead > tr > td {
  padding: 8px 4px;
  font-size: 95%;
  font-weight: normal;
  text-transform: none;
}

#network-entries tr td {
  border: 1px solid #111 !important;
}

table.dataTable thead .sorting::before {
  content: "\25B3";
  position: absolute;
  bottom: 16px;
  right: 8px;
  display: block;
  font-family: "Glyphicons Halflings";
  opacity: 0.3;
  font-size: 0.6em;
}

table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after {
  opacity: 0.6;
}

table.dataTable thead .sorting:after {
  opacity: 0.3;
  content: "\25BD";
  font-size: 0.6em;
}

table.dataTable thead .sorting_asc::after {
  content: "\25B2";
}

table.dataTable thead .sorting_desc::after {
  content: "\25BC";
}

table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after {
  color: #eee;
}

.table-striped > tbody > tr:nth-of-type(2n + 1) {
  background: none;
  background-color: rgba(80, 80, 80, 0.1);
}

#domain-frequency table,
#ad-frequency table {
  table-layout: fixed;
}

#domain-frequency table td:nth-child(n + 1),
#domain-frequency table th:nth-child(n + 1),
#ad-frequency table td:nth-child(n + 1),
#ad-frequency table th:nth-child(n + 1) {
  width: 60px !important;
}

#domain-frequency table td:last-child,
#domain-frequency table th:last-child,
#ad-frequency table td:last-child,
#ad-frequency table th:last-child {
  width: 130px !important;
}

#domain-frequency table td:first-child,
#domain-frequency table th:first-child,
#ad-frequency table td:first-child,
#ad-frequency table th:first-child {
  width: auto !important;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#domain-frequency table td:first-child:hover,
#ad-frequency table td:first-child:hover {
  position: absolute;
  background: #222;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.85);
}

#listsTable table td:first-child {
  font-weight: bold;
}

#listsTable table td:last-child {
  color: #fff;
  font-weight: 100;
}

#listsTable table tr {
  border-bottom: 1px solid #333 !important;
}

#listsTable table tr:last-child {
  border: none !important;
}

/*--- Pagination ---*/
.pagination {
  font-size: 1.1em;
}

.pagination > li > a {
  margin: 0 1px;
  padding: 3px 4px 4px;
  min-width: 34px;
  background: var(--text-color);
  color: #000;
  text-align: center;
  border: none;
}

.pagination > li:last-child > a,
.pagination > li:last-child > span {
  margin-right: 0;
}

.pagination > li > a:focus,
.pagination > li > a:hover,
.pagination > li > span:focus,
.pagination > li > span:hover {
  color: #000;
  background-color: #fff;
}

.pagination > .disabled > a,
.pagination > .disabled > a:focus,
.pagination > .disabled > a:hover,
.pagination > .disabled > span,
.pagination > .disabled > span:focus,
.pagination > .disabled > span:hover {
  background-color: #333;
  color: #000;
  cursor: unset;
}

.pagination > .active > a,
.pagination > .active > a:focus,
.pagination > .active > a:hover,
.pagination > .active > span,
.pagination > .active > span:focus,
.pagination > .active > span:hover {
  color: #000;
  background-color: #48f;
}

#all-queries_wrapper .pagination > li > a {
  min-width: 34px;
  line-height: 19px;
  padding: 6px 5px 9px;
}

#all-queries_wrapper .pagination > li.previous > a,
.pagination > li:first-child > a {
  padding-left: 12px;
  border-radius: 0.8em 0 0 0.8em;
}

#all-queries_wrapper .pagination > li.next > a,
.pagination > li:last-child > a {
  padding-right: 12px;
  border-radius: 0 0.8em 0.8em 0;
}

#all-queries_filter {
  margin: 20px 0;
}

table.dataTable {
  margin: 12px 0 !important;
}

/*** ALERTS ***/
.callout.callout-danger,
.callout.callout-warning,
.callout.callout-info,
.callout.callout-success,
.alert-success,
.alert-danger,
.alert-error,
.alert-warning,
.alert-info,
.label-danger,
.label-info,
.label-warning,
.label-primary,
.label-success,
.modal-primary .modal-body,
.modal-primary .modal-header,
.modal-primary .modal-footer,
.modal-warning .modal-body,
.modal-warning .modal-header,
.modal-warning .modal-footer,
.modal-info .modal-body,
.modal-info .modal-header,
.modal-info .modal-footer,
.modal-success .modal-body,
.modal-success .modal-header,
.modal-success .modal-footer,
.modal-danger .modal-body,
.modal-danger .modal-header,
.modal-danger .modal-footer {
  border-radius: 12px;
}

.modal-dialog {
  border-radius: 12px;
  border: 3px solid #4488ff;
}

.modal-content {
  border-radius: 12px;
  background-color: #111111;
}

.modal-header .close,
.close,
.alert > .close {
  color: currentColor;
  opacity: 1;
  text-shadow: none;
  transform: scale(2) translate(0, -3px);
  font-weight: normal;
}

.close:hover,
.close:focus {
  color: #fff;
  opacity: 1;
}

.alert {
  animation: flash 1.2s ease-in-out 0.5s;
  transition: all ease-in-out 1s;
  margin: 10px 0 20px;
  color: #000 !important;
}

.no-danger-area {
  box-shadow: none;
  background: rgba(127, 127, 127, 0.05);
}

.danger-area {
  box-shadow: none;
  background: rgba(127, 127, 127, 0.05);
}

/*** Animation keyframes ***/

@keyframes flash {
  0% {
    filter: opacity(0.35) contrast(2);
  }
  5% {
    filter: opacity(0.7) contrast(2);
  }
  10% {
    filter: opacity(0.35) contrast(2);
  }
  15% {
    filter: opacity(0.7) contrast(2);
  }
  20% {
    filter: opacity(0.35) contrast(2);
  }
  25% {
    filter: opacity(0.7) contrast(2);
  }
  30% {
    filter: opacity(0.35) contrast(2);
  }
  35% {
    filter: opacity(0.7) contrast(1);
  }
  70% {
    filter: opacity(1) contrast(1) brightness(1.2);
  }
  90% {
    filter: none;
  }
}

@keyframes fire {
  0% {
    filter: drop-shadow(0 0 2px #f90);
  }
  60% {
    filter: none;
  }
}

@keyframes warningPulse {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

.card.card-warning {
  border-top-color: #71480a;
  position: relative;
}

.card.card-warning:after {
  content: "";
  border-top: 3px solid #f89201;
  border-radius: 12px;
  position: absolute;
  margin-top: -3px;
  inset: 0;
  z-index: -1;
  animation: 3s infinite warningPulse steps(30);
}

.card.card-warning div {
  z-index: 2;
}

/*** MEDIA QUERIES ***/

/*--- Media - max-width ---*/
@media (max-width: 767px) {
  h1 {
    font-size: 1.8em;
  }
  h2 {
    font-size: 1.4em;
  }
  .sidebar-collapse {
    --sidebar-width: 230px;
  }
  .app-wrapper {
    padding: 0;
  }
  .app-header {
    background-image: linear-gradient(to right, #000 4px, #8bf 4px);
    background-size: 100% 100%;
    background-position: 300px 0;
    background-repeat: no-repeat;
    border-radius: 0;
  }
  .app-header .navbar .dropdown-menu li.divider {
    background-color: rgba(255, 255, 255, 0.1);
  }
  .app-header .logo {
    width: 150px;
    float: left;
  }
  .app-header .navbar {
    margin: 0 0 0 150px;
    padding-bottom: 30px;
    position: relative;
    width: auto;
  }
  .app-sidebar {
    width: var(--sidebar-width);
    padding: 79px 0 0;
  }
  .app-sidebar::after {
    left: 0;
  }
  .nav-tabs-custom > .nav-tabs > li {
    margin: 0 1px;
    font-size: 0.75em;
  }
  .navbar .nav > li > a,
  .navbar .nav > li > .navbar-text {
    color: #fff;
  }
  .nav.navbar-nav {
    width: auto;
    max-width: calc(100vw - 210px);
    top: 0;
    bottom: -10px;
    right: 0;
    background: transparent;
    border: none;
  }
  .navbar-nav li {
    padding: 0 10px;
  }
  .nav > li > a {
    padding: 6px 10px;
  }
  .user-panel {
    border-radius: 0;
  }
  .app-main {
    background-image: linear-gradient(to left, #000 4px, #cce6ff 4px), linear-gradient(#48f, #48f);
    background-size:
      var(--gradient-pos) 50px,
      100% 50px;
    background-repeat: no-repeat;
  }
  .content {
    padding: 20px;
    min-width: 350px;
  }
  .app-footer {
    margin-left: 0;
  }
}

/*--- Media - min-width ---*/
@media (min-width: 768px) {
  .app-footer > div:first-child {
    margin: 35px 0 18px 15px;
  }
}
@media (min-width: 1024px) {
  @keyframes letters {
    0% {
      color: transparent;
    }
    15% {
      color: #cce6ff;
    }
    40% {
      color: #cce6ff;
    }
    45% {
      color: #eda;
    }
    55% {
      color: #eda;
    }
    60% {
      color: #04f;
    }
    90% {
      color: #04f;
    }
    95% {
      color: transparent;
    }
  }
  .navbar::before {
    content: "1966 \a0\a0  1969 \a0  1987 \a0  1994 \a0  0047 \a0  1979 \a0\a0  1982 \a0\a0  1984 \a0  1986 \a0\a0  1989 \a0\a0  1991";
    position: absolute;
    right: 366px;
    top: 1px;
    font-size: 0.77em;
    animation: letters 8s infinite;
    animation-delay: 0s;
    color: transparent;
  }
  .navbar-custom-menu:before {
    content: "3001 \a0\a0  1976 \a0\a0  \a0  114 \a0  \a0  100 \a0\a0  \a0  \a0  119 \a0 \a0  \a0  101 \a0\a0  \a0  \a0  98 \a0  9980 \a0  2009 \a0  1007 \a0  1970";
    position: absolute;
    right: 366px;
    top: calc(50% - 0.77em + 3px);
    font-size: 0.77em;
    animation: letters 7s infinite;
    animation-delay: 1s;
    color: transparent;
  }
  .navbar-custom-menu::after {
    content: "6979 \a0  8004 \a0  1999 \a0  \a0  321 \a0\a0  6751 \a0  5432 \a0  1500 \a0\a0  2012 \a0  2047 \a0\a0  1910 \a0  2512";
    position: absolute;
    right: 366px;
    bottom: -5px;
    font-size: 0.77em;
    animation: letters 6s infinite;
    animation-delay: 2s;
    color: transparent;
  }
}

@media (min-width: 1960px) {
  .layout-boxed .app-wrapper {
    box-shadow: none;
    max-width: 1920px;
  }
}

/*** Fix some datatables layout on small screens ***/
@media screen and (max-width: 660px), screen and (min-width: 767px) and (max-width: 960px) {
  #domainsTable td::before {
    margin: 0 5px 2px;
  }
  #domainsTable td:nth-child(2n) {
    width: calc(100% - 160px);
  }
}

/* Domains table: filter by type */
.filter_types span {
  width: 132px;
}

/*** Used by the long-term pages ***/
.daterangepicker {
  background-color: #345;
  border-radius: 4px;
  border: 1px solid #345;
}

.daterangepicker .ranges li:hover {
  background-color: #234;
}

.daterangepicker .ranges li.active {
  background-color: #123; /* Color also used in table pagination */
}

.daterangepicker .calendar-table {
  background-color: #345;
  border-radius: 4px;
  border: 1px solid #345;
}

.daterangepicker td.off,
.daterangepicker td.off.in-range,
.daterangepicker td.off.start-date,
.daterangepicker td.off.end-date {
  background-color: #456;
}

.daterangepicker td.available:hover,
.daterangepicker th.available:hover {
  background-color: #123;
}

.daterangepicker td.active,
.daterangepicker td.active:hover,
.daterangepicker td.in-range:hover {
  background-color: #48f;
}

.daterangepicker td.in-range {
  background-color: #123;
  color: #bec5cb;
}

.daterangepicker select.hourselect,
.daterangepicker select.minuteselect,
.daterangepicker select.secondselect,
.daterangepicker select.ampmselect {
  background-color: #678;
  color: #000;
  border: none;
}

/*** datatables Select: row, checkbox and button ***/
table.dataTable tbody > tr.selected td,
table.dataTable tbody > tr > .selected td {
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.5);
}

.select-checkbox {
  min-width: 8px;
}

.datatable-bt {
  border-radius: 6px;
  padding: 3px 10px;
}

.progress {
  background: #222;
}

.timeline li .timeline-item {
  color: #bec5cb;
  background-color: #272c30;
  border-color: #345;
}

.timeline li .timeline-header {
  border-bottom-color: #345;
}

input[type="number"],
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}

input[type="password"]::-webkit-caps-lock-indicator {
  filter: invert(100%);
}

/*** ----------------------------------------------------- ***/
.not-used {
  background-color: #222;
}

.not-used:hover {
  background-color: #444;
}

.used {
  background-color: #fff;
}

.used:hover {
  background-color: #ddd;
}

.graphs-grid {
  background-color: #202429;
}

.graphs-ticks {
  color: var(--text-color);
}

.progress-bar {
  background-color: #48f;
}

/*--- Used on the status panel  ---*/
.user-panel .text-green-light {
  color: #23c027 !important;
}
.user-panel .text-red {
  color: #f60d1a !important;
}

/*--- Used in the Query Log table ---*/
.text-black {
  color: #000 !important;
}

.text-green {
  color: #080 !important;
}

.text-orange {
  color: #ffa500 !important;
}

.text-red {
  color: #f00 !important;
}

.text-vivid-blue {
  color: #36f !important;
}

/* Used in debug log page */
.log-red {
  color: #e22;
}
.log-green {
  color: #0b0;
}
.log-yellow {
  color: #fb0;
}
.log-blue {
  color: #08c;
}
.log-purple {
  color: #c6f;
}
.log-cyan {
  color: #0df;
}
.log-gray {
  color: #999;
}

div.dataTables_wrapper div.dataTables_paginate ul.pagination {
  margin: 10px 0;
  text-transform: uppercase;
  font-weight: bold;
}

#network-entries_filter {
  margin: 0 0 10px;
}

#network-entries_length {
  margin: 10px 0;
}

/*** Network table colors ***/
.network-never {
  background-color: var(--net-never-color);
}

.network-recent {
  background-color: var(--net-recent-color);
}

.network-old {
  background-color: var(--net-old-color);
}

.network-older {
  background-color: var(--net-older-color);
}

.network-gradient {
  background-image: linear-gradient(
    to right,
    var(--net-recent-color) 0%,
    var(--net-old-color) 100%
  );
}

/*** table cell overlay colors ***/
.allowed-row td {
  background: rgba(0, 150, 0, 0.1);
}

.blocked-row td {
  background: rgba(180, 0, 0, 0.1);
}

td.highlight {
  background-color: rgba(255, 204, 0, 0.15);
}

/*** small-box ***/
.small-box {
  color: #000 !important;
}

.small-box > .small-box-footer:hover {
  color: #000;
}

.small-box > .small-box-footer {
  color: rgba(0, 0, 0, 0.5);
}

.small-box .icon,
.select2-selection__clear {
  font-family: sans-serif;
}

/*** add style to the information/about dropdown ***/
.navbar-nav > .user-menu > .dropdown-menu > .user-header,
.navbar-nav > .user-menu > .dropdown-menu > .user-footer {
  background-color: #111111;
}

.save-button-container {
  border-radius: 50px;
  background: none;
  box-shadow:
    0 0 10px -1px #000,
    0 0 20px 2px #000;
  bottom: 2em;
  right: 1.7em;
}
.save-button {
  margin: 0;
}
@media (min-width: 1320px) {
  .layout-boxed .save-button-container {
    right: calc((100% - 1320px) / 2 + 0.85em);
  }
}

.flex-header h1 {
  margin-right: 0;
}

.settings-selector {
  order: -1;
}
.settings-selector .toggle {
  width: 125px !important;
}

#advanced-settings-menu ul > li a {
  border: none;
  border-radius: 20px;
  color: #000;
}
#advanced-settings-menu ul > li:not(.active) a:hover,
#advanced-settings-menu ul > li a:focus {
  background: #fff;
}
#advanced-settings-menu ul > li:not(.active) a {
  color: #000;
}

/*** Tools > Interface page ***/
.bstreeview .list-group-item {
  padding-top: 0.15em;
  padding-bottom: 0.5em;
}

.list-group > .list-group-item {
  padding-left: 1.75em !important;
}
.list-group .list-group > .list-group-item {
  padding-left: 3.5em !important;
}
.list-group .list-group .list-group > .list-group-item {
  padding-left: 5.25em !important;
}
.list-group .list-group .list-group .list-group > .list-group-item {
  padding-left: 7em !important;
}

/*** 🖖 ***/
.fas.fa-hand-paper {
  --fa: "\f259" !important;
  --fa--fa: "\f259\f259" !important;
}

.help-block {
  color: #76808a;
}

div:has(> .table-responsive #StaticDHCPTable .save-static-row)::after {
  padding: 1px 10px 3px;
  background: #fd8;
  border-radius: 5px;
}
.dhcp-hosts-wrapper:has(textarea[disabled]):hover::before {
  padding: 6px 8px 8px;
  background: #fd8;
  border-radius: 5px;
  width: 400px;
  transform: translate(-47%, -50%);
  box-shadow: 0 0 10px 2px #000;
}
.line-numbers {
  border-color: transparent;
}
