body {
  font-family: sans-serif;
  max-width: 1400px;
  margin: 0 auto;
}

h1, h2, h3 {
  color: #333333;
  text-decoration: none;
  font-family: "Arial Narrow", "Arial", sans-serif;
  border-bottom-width: 1px;
  border-bottom-style: dotted;
  border-bottom-color: #AAAAAA;
}

h1 { font-size:1.6em; }
h2 { font-size: 1.2em; }
h3 { font-size: 1em; }

a:link, a:visited { color: #0000FF; text-decoration: none; }
a:hover { color: #FF3333; text-decoration: underline; }

table.conference {
  table-layout: fixed;
  width: 100%;
}

td.gstnavside-r:hover { border-left-color: #FFAAAA; }
td.gstnavside-g:hover { border-left-color: #AAFFAA; }
td.gstnavside-b:hover { border-left-color: #AAAAFF; }

td.gstnavside-sep { padding: 0 }

a.gstnavside-r, a.gstnavside-g, a.gstnavside-b {
  /* 150px table width - 20px padding */
  width: 130px;
  display: inline-block;
  font-weight: 600;
  text-decoration: none; font-family: "Arial", sans-serif;
  padding: 8px 10px;
  border-radius: 4px;
  border: 1px solid rgb(0 0 0 / 20%);
  transition: all 0.1s ease-out, background 0s;
}
a.gstnavside-r:hover, a.gstnavside-g:hover, a.gstnavside-b:hover {
  box-shadow: 0 0px 5px rgb(0 0 0 / 0.3);
}
a.gstnavside-r { background-color:#CCAAAA; }
a.gstnavside-g { background-color:#AACCAA; }
a.gstnavside-b { background-color:#AAAACC; }
a.gstnavside-r:active { background-color: #bb9e9e; }
a.gstnavside-g:active { background-color: #9ebe9e; }
a.gstnavside-b:active { background-color: #9e9ebe; }
a.gstnavside-r:link, a.gstnavside-g:link, a.gstnavside-b:link { 
  color: #000000;
}
a.gstnavside-r:visited, a.gstnavside-g:visited, a.gstnavside-b:visited {
  color: #000000;
}
a.gstnavside-r:hover { 
  color: #9e2222;
  border-color: #9e2222ad;
}
a.gstnavside-g:hover { 
  color: #037403;
  border-color: #097e09ad;
}
a.gstnavside-b:hover { 
  color: #353598;
  border-color: #353598ad;
}
td.gstconf-sponsorlogo {
  padding: 0 0 0 2em;
}

p.gstconf-sponsorlogo {
  padding: 0.75em;
  margin: 1.25em 0 0 0;
  min-width: 8rem;
  border-color: grey;
  border-style: solid;
  border-width: 0.05em;
  border-radius: 0.5em;
  text-align: center;
}

p.gstconf-sponsorlogo:hover {
  border-color: slateblue;
}

.right { text-align: right; }

/* task pages */

.task-header {
  background: lightblue;
  margin: 2px;
  min-width: 100%;
  padding: 3px;
}

.task-body {
  background: lightgrey;
  margin: 2px;
  min-width: 100%;
  padding: 3px;
}

.task-text {
  margin: 2px;
  padding: 3px;
}
.task-cell {
  padding-right: 20px;
}

.task-word {
  background: #e98080;
  margin: 3px;
  padding: 3px;
}

.task-footer {
  font-size: small;
  background: lightgreen;
  margin: 2px;
  min-width: 100%;
  padding: 3px;
}

.task-nav {
  text-align: right;
}

.task {
  min-width: 100%;
  padding-bottom: 12pt;
}

/* Markdown-based pages only */
.markdown table {
  border-collapse: collapse;
}

.markdown td, .markdown th {
  border: 1px solid #ccc;
  padding: 10px 15px;
}

.markdown th {
  background-color: #f2f2f2;
  border-bottom: 2px solid #ccc;
  font-weight: bold;
}

/* A hacky way to get 'vertical' tables (first column = header).
 * See security advisory pages for an example. */
.markdown .vertical-table td:first-child {
  background-color: #f2f2f2;
  border-right: 2px solid #ccc;
  font-weight: bold;
}

.markdown .vertical-table thead {
  display: none;
}

/* Download page - tabs */
.dl-content {
  width: 100%;
  margin-top: 20px;
  /* More or less how much the Windows section needs.
   * Prevents the tabs from jumping around when changing sections in a narrow window. */
  min-width: 575px;
}

.dl-tablist {
  width: 100%;
  display: inline-flex;
  align-items: flex-start;
}

.dl-tab {
  position: relative;
  background: rgb(239, 239, 239);
  border: 1px solid rgb(180, 180, 180);
  color: #000;
  padding: 1.3em 0.5em;
  font-size: 1.2em;
  font-weight: 600;
  transition: all 0.15s linear;
  flex: 1;
}

.dl-tab::after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  bottom: 0px;
  left: 0px;
  transition: all 0.15s linear;
  border-bottom: 3px solid lightgray;
}

.dl-tab:focus-visible::after, .dl-tab:hover::after {
  border-bottom-width: 3px;
}

.dl-tab[aria-selected="true"]::after {
  border-bottom-width: 3px;
}

.dl-tab:first-child {
  border-top-left-radius: 5px;
}

.dl-tab:last-child {
  border-top-right-radius: 5px;
}

/* Prevents double borders between tabs */
.dl-tab + .dl-tab {
  margin-left: -1px;
}

.dl-tab:hover, .dl-tab:focus-visible {
  cursor: pointer;
  background: rgb(233, 233, 233);
}

.dl-tab:active {
  background: rgb(225, 225, 225);
}

.dl-tab-r:hover::after, .dl-tab-r:focus-visible::after {
  border-bottom-color: #CCAAAA;
}

.dl-tab-r[aria-selected="true"]::after {
  border-bottom-color: #b14c4c;
}

.dl-tab-g:hover::after, .dl-tab-g:focus-visible::after {
  border-bottom-color: #AACCAA;
}

.dl-tab-g[aria-selected="true"]::after {
  border-bottom-color: #389738;
}

.dl-tab-b:hover::after, .dl-tab-b:focus-visible::after {
  border-bottom-color: #AAAACC;
}

.dl-tab-b[aria-selected="true"]::after {
  border-bottom-color: rgb(86, 86, 226);
}

.dl-panel {
  padding: 5px 20px;
  border: 1px solid lightgray;
  border-top: 0px;
  border-radius: 0 0px 5px 5px;
}

.dl-panel a {
  vertical-align: text-top;
}

/* Make sure the dl page contents don't jump around
 * because of scrollbar (dis)appearing when switching tabs. */
body:has(.dl-panel) {
  overflow-y: scroll; 
}
