/*
 * Visual baseline derived from the restored FreeBSD Documentation Project
 * DocBook stylesheet and the original freebsd.org.cn landing page.
 * Copyright (c) 2001, 2003, 2010 The FreeBSD Documentation Project.
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the copyright notice, conditions
 * and disclaimer are retained. This work is provided "AS IS", without express
 * or implied warranties. See /docs/support/licensing/ for the complete source
 * and license notice.
 */

:root {
  --home-bg: #f5f5f5;
  --home-text: #5d5d5d;
  --muted: #707070;
  --heading: #990000;
  --link: #0000ee;
  --visited: #551a8b;
  --border: #cecece;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 16px;
}

* { box-sizing: border-box; }
html { margin: 0; padding: 0; scroll-padding-top: 1rem; }
body { margin: 0; color: #111; background: #fff; }
a { color: var(--link); }
a:visited { color: var(--visited); }
a[href]:hover { background: #ffffaa; }
img, svg { max-width: 100%; height: auto; }
button, input { font: inherit; }
:focus-visible { outline: 3px solid #176fc1; outline-offset: 2px; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: .5rem;
  left: .5rem;
  transform: translateY(-180%);
  padding: .4rem .7rem;
  color: #fff;
  background: #111;
}
.skip-link:focus { transform: none; }

.navheader,
.navfooter,
body.document > main {
  margin-right: 8%;
  margin-left: 10%;
}
.navheader { margin-top: 1em; }
.navheader table { border-collapse: collapse; }
.navheader th,
.navheader td { padding: .2em .5em; line-height: 1.2; }
.navheader th a { color: inherit; text-decoration: none; }
.navheader hr,
.navfooter hr { margin: .6em 0; border: 0; border-bottom: 1px solid var(--border); }

body.document > main {
  line-height: 1.35;
}
article { min-width: 0; }
.breadcrumbs { margin: .6em 0; font-size: .84em; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .25em; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li:not(:last-child)::after { content: " /"; color: #777; }

.article-header { margin-bottom: 1.2em; }
.eyebrow { margin: 0 0 .25em; color: #555; font-size: .85em; }
h1,
h2,
h3,
h4,
h5,
h6,
.toc h2,
.article-navigation h2 {
  color: var(--heading);
  font-weight: bold;
  line-height: 1.3;
}
h1 { margin: .8em 0 .2em -4%; font-size: 2em; }
h2 { margin: .8em 0 .35em -3%; font-size: 1.5em; }
h3 { margin: .8em 0 .35em -2%; font-size: 1.17em; }
.lead { max-width: 70em; margin: .35em 0; color: #444; }
.article-body p { margin: .75em 0; }
.article-body ul,
.article-body ol { margin: .4em 0 .8em 1em; padding-left: 1em; }
.article-body li { margin: .25em 0; }
.article-body a[rel~="external"]::after,
.trust-panel a[rel~="external"]::after { content: " ↗"; font-size: .72em; }

.trust-panel,
.toc,
.archive-banner {
  width: 90%;
  margin: .75em 3em .75em 1em;
  padding: 1em 1.25em;
  line-height: 1.3;
  border-radius: 6px;
}
.trust-panel {
  color: #222;
  background: #eeeeee;
  border: 1px solid #cccccc;
}
.trust-panel > h2,
.toc > h2 { margin: 0 0 .6em; font-size: 1.08em; }
.trust-panel h3 { margin: 1em 0 .3em; font-size: 1em; }
.trust-panel dl { display: grid; grid-template-columns: 1fr 1fr; gap: .55em 1.2em; margin: 0; }
.trust-panel dt { font-weight: bold; }
.trust-panel dd { margin: .1em 0 0; overflow-wrap: anywhere; }
.trust-panel ul { margin: .3em 0 0 1em; padding-left: 1em; }
.toc { background: #fefde6; border: 1px solid #f1bb16; }
.toc ol { margin: 0 0 0 1em; padding-left: 1em; columns: 2; }
.archive-banner { color: #9f1313; background: #f8e8e8; border: 1px solid #e59595; }

pre {
  position: relative;
  max-width: 100%;
  margin: .75em 0;
  padding: 1ex;
  overflow: auto;
  line-height: 1.15;
  font-family: monospace;
  white-space: pre;
  background: #eeeeee;
  border: 1px solid #cccccc;
  border-radius: 6px;
}
code { font-family: monospace; }
:not(pre) > code { color: #007a00; overflow-wrap: anywhere; }
.copy-button {
  position: absolute;
  top: .35em;
  right: .35em;
  padding: .2em .45em;
  color: #111;
  border: 1px solid #999;
  background: #cfcfcf;
  cursor: pointer;
}

.table-scroll { max-width: 100%; margin: .8em 0; overflow-x: auto; }
table { border-collapse: collapse; }
.article-body table { min-width: 38rem; border: 1px solid #cccccc; }
th,
td { padding: .45em .8em; line-height: 1.25; text-align: left; vertical-align: top; border-bottom: 1px solid #dddddd; }
th { background: #eeeeee; }

.article-navigation { margin-top: 1.5em; }
.previous-next { display: grid; grid-template-columns: 1fr 1fr; gap: 1em; padding: .6em 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.previous-next a { display: flex; flex-direction: column; }
.previous-next a:last-child { text-align: right; }
.previous-next span { color: #555; font-size: .8em; }
.article-navigation h2 { margin: 1em 0 .3em; font-size: 1.05em; }

.search-page-form { max-width: 42em; margin: 1em 0; }
.search-page-form label { display: block; margin-bottom: .3em; font-weight: bold; }
.search-page-form > div { display: flex; }
.search-page-form input { min-width: 0; width: 100%; padding: .4em .55em; border: 1px solid #999; }
.search-page-form button { padding: .4em .7em; color: #111; border: 1px solid #777; background: #cfcfcf; cursor: pointer; }
.search-results { padding-left: 1.5em; }
.search-results li { margin: .8em 0; }
.search-results a { font-weight: bold; }
.search-results span { margin-left: .7em; color: #555; font-size: .8em; }
.search-results p { margin: .2em 0; }
.error-code { color: var(--heading); font-size: 4em; font-weight: bold; line-height: 1; }

.navfooter { margin-top: 1.5em; margin-bottom: 1em; text-align: center; font-size: .78em; }
.navfooter p { margin: .35em 0; }

body.home {
  padding-top: 8vh;
  color: var(--home-text);
  text-align: center;
  text-shadow: 0 1px 1px rgba(255, 255, 255, .75);
  background: var(--home-bg);
}
body.home > main { width: min(100% - 2rem, 880px); margin: 0 auto; }
.home .breadcrumbs { display: none; }
.home article { text-align: left; }
.home-intro { margin-bottom: 2.5em; text-align: center; }
.home-intro h1 { margin: 30px 0; color: var(--home-text); font-size: 2.45em; letter-spacing: -.02em; }
.home-intro .lead { margin: 0 auto; color: var(--muted); font-size: 1.25em; line-height: 1.3; }
.icon-large { width: 132px; height: 132px; }
.warning-icon { color: #ffcc33; fill: #ffcc33; }
.home .article-body h2 { margin-left: 0; color: var(--home-text); text-align: center; }
.home .article-body > p:first-child { font-size: 1.08em; line-height: 1.6; text-align: center; }
.home .navfooter { margin: 3em auto 1em; font-size: .7em; }
.animated { animation-duration: 1s; animation-fill-mode: both; }
.fadeIn { animation-name: fadeIn; }
.delay-1s { animation-delay: 1s; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

@media (max-width: 1000px) {
  .navheader,
  .navfooter,
  body.document > main { margin-right: 5%; margin-left: 6%; }
  .trust-panel,
  .toc,
  .archive-banner { width: auto; margin-right: 0; margin-left: 0; }
}

@media (max-width: 650px) {
  :root { font-size: 15px; }
  body.home { padding-top: 3vh; }
  body.home > main { width: min(100% - 1.4rem, 880px); }
  .home-intro h1 { font-size: 2em; }
  .icon-large { width: 104px; height: 104px; }
  .navheader,
  .navfooter,
  body.document > main { margin-right: 1em; margin-left: 1em; }
  .navheader th,
  .navheader td { padding: .2em; font-size: .88em; }
  h1 { margin-left: 0; font-size: 1.65em; }
  h2, h3 { margin-left: 0; }
  .trust-panel dl { grid-template-columns: 1fr; }
  .toc ol { columns: 1; }
  .previous-next { grid-template-columns: 1fr; }
  .article-body table { min-width: 34rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

@media print {
  .navheader, .navfooter, .copy-button, .article-navigation { display: none !important; }
  body.document > main { margin: 0; }
  a { color: inherit; }
}
