@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700');
:root {
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  --background-color: #fff;
  --header-color: #ebebeb;
  --status-color: #ebebeb;
  --text-color: #2e3436;
  --text-color-red: #c00;
  --text-color-orange: #c85000;
  --text-color-yellow: #c4a000;
  --text-color-green: #4e9a06;
  --text-color-blue: #06989a;
  --text-color-indigo: #3465a4;
  --text-color-violet: #75507b;
}
@media (prefers-color-scheme: dark) {
  :root {
    --background-color: #2e3436;
    --header-color: #222222;
    --status-color: #222222;
    --text-color: #d3d7cf;
    --text-color-red: #ef2929;
    --text-color-orange: #f6893c;
    --text-color-yellow: #fce94f;
    --text-color-green: #8ae234;
    --text-color-blue: #34e2e2;
    --text-color-indigo: #729fcf;
    --text-color-violet: #ad7fa8;
  }
}
body {
  background-color: var(--background-color);
  color: var(--text-color);
  font-size: 13px;
  line-height: 1.3;
  margin: 0;
}
body, code, kbd, samp, var {
  font-family: 'Roboto Mono', monospace;
}
@media (min-width: 768px) {
  body {
    font-size: 14px;
  }
}
abbr {
  text-decoration: underline dotted;
}
@media (hover: none) {
  abbr {
    text-decoration: none;
  }
}
var {
  font-style: italic;
}
var::before {
  content: '<';
}
var::after {
  content: '>';
}
a, span.link {
  color: inherit;
  cursor: pointer;
  text-decoration: underline;
}
a.no-ul, span.link.no-ul {
  text-decoration: none;
}
:is(a, span.link):hover {
  font-weight: bold;
  text-decoration: underline;
}
h1, h2, h3 {
  font-size: 1em;
  font-weight: bold;
  margin: 0;
}
p {
  margin: 0;
}
ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.indent li {
  padding-left: 2ch;
  text-indent: -2ch;
}
@media (min-width: 768px) {
  ul.indent li {
    padding-left: 4ch;
    text-indent: -4ch;
  }
}
ul.ip-list li {
  display: flex;
  flex-direction: column;
  word-break: break-all;
}
.ip-list-tabular ul.ip-list li {
  flex-direction: row;
  white-space: nowrap;
}
.ip-list-tabular ul.ip-list li:hover {
  font-weight: bold;
}
.ip-list-tabular ul.ip-list li > span:nth-child(1) {
  width: var(--ip-min-width);
}
.ip-list-tabular ul.ip-list li > span:nth-child(2) {
  width: var(--ptr-min-width);
}
.ip-list-tabular ul.ip-list li > span:nth-child(3) {
  width: var(--geo-min-width);
}
ul.ip-list li > span:nth-child(n+2) {
  padding-left: 2ch;
}
@media (min-width: 768px) {
  ul.ip-list li > span:nth-child(n+2) {
    padding-left: 4ch;
  }
}
ul.options li > span:nth-child(1) {
  font-weight: bold;
}
ul.options li > span:nth-child(2)::before {
  content: '- ';
}
@media (min-width: 768px) {
  ul.options li {
    display: grid;
    grid-template-columns: 1fr 4fr;
    gap: 4ch;
  }
  ul.options li > span:nth-child(2)::before {
    padding-left: 2ch;
  }
}
.bold, strong {
  font-weight: bold;
}
.light {
  opacity: 0.5;
}
.break {
  word-break: break-all;
}
.nowrap {
  white-space: nowrap;
}
.red {
  color: var(--text-color-red);
}
.orange {
  color: var(--text-color-orange);
}
.yellow {
  color: var(--text-color-yellow);
}
.green {
  color: var(--text-color-green);
}
.blue {
  color: var(--text-color-blue);
}
.indigo {
  color: var(--text-color-indigo);
}
.violet {
  color: var(--text-color-violet);
}
header {
  background-color: var(--header-color);
  display: grid;
  grid-template-columns: 1fr max-content 1fr;
  gap: 1ch;
  padding-top: calc(0.65em + env(safe-area-inset-top));
  padding-right: calc(3ch + env(safe-area-inset-right));
  padding-bottom: 0.65em;
  padding-left: calc(3ch + env(safe-area-inset-left));
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  white-space: nowrap;
}
header > div:nth-child(3) {
  text-align: right;
}
header :is(a, span.link) {
  text-decoration: none !important;
}
header h1 {
  display: inline;
  font-weight: normal;
}
.content {
  padding-top: env(safe-area-inset-top);
  padding-right: env(safe-area-inset-right);
  padding-bottom: env(safe-area-inset-bottom);
  padding-left: env(safe-area-inset-left);
}
.content-inner {
  display: inline-flex;
  flex-direction: column;
  gap: 1.6em;
  padding: 3.9em 3ch 3.9em 1ch;
}
body:not(:has(> .status)) .content-inner {
  padding-bottom: 1.6em;
}
.status {
  background-color: var(--status-color);
  display: flex;
  align-items: center;
  gap: 2ch;
  padding-top: 0.5em;
  padding-right: calc(3ch + env(safe-area-inset-right));
  padding-bottom: calc(0.5em + env(safe-area-inset-bottom));
  padding-left: calc(3ch + env(safe-area-inset-left));
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
}
.status > div:last-child {
  flex-grow: 1;
  text-align: right;
}
.d-flex-col {
  display: flex;
  flex-direction: column;
}
.dns-request-wrapper {
  display: flex;
  gap: 1ch;
}
.dns-request {
  border-left: 2px solid;
  padding-left: 1ch;
  white-space: pre;
}
.section {
  display: flex;
  flex-direction: column;
  gap: 1.3em;
}
.section.hidden {
  display: none;
}
.section .lead {
  padding-left: 2ch;
  text-indent: -2ch;
}
.section .lead::before {
  content: '> ';
  font-weight: bold;
}
.section :is(h2, h3, .title, .subtitle) {
  margin-bottom: -1.3em;
  white-space: nowrap;
}
.section :is(h3, .subtitle) {
  padding-left: 2ch;
}
.section > :is(p, ul) {
  padding-left: 4ch;
}
@media (min-width: 768px) {
  .section :is(h3, .subtitle) {
    padding-left: 4ch;
  }
  .section > :is(p, ul) {
    padding-left: 8ch;
  }
}
table.dnssec {
  border-spacing: 0;
}
table.dnssec :is(th, td) {
  font-weight: normal;
  padding: 0 0 0 2ch;
  text-align: center;
  vertical-align: bottom;
}
@media (min-width: 768px) {
  table.dnssec :is(th, td) {
    padding-left: 4ch;
  }
}
table.dnssec thead th:nth-child(n+2) {
  max-width: 7ch;
}
table.dnssec tbody th {
  text-align: left;
  white-space: nowrap;
}
@keyframes fade-pulse {
  0%, 100% { opacity: 0; }
  50% { opacity: 1; }
}
table.dnssec .pending > span {
  opacity: 0;
  animation: 3s infinite fade-pulse;
}
table.dnssec .pending > span:nth-child(2) {
  animation-delay: 0.5s;
}
table.dnssec .pending > span:nth-child(3) {
  animation-delay: 1s;
}
