:root {
  --seattle-teal: #41ACBA;
  --seattle-navy: #2B5583;
  --seattle-navy-lighter: #3669a1;
  --seattle-navy-darker: #214367;
  --seattle-cream: #FAFAF2;
  --primary-color: var(--seattle-navy);

  --link-color: var(--primary-color);
  --header-link-color: var(--seattle-navy);
  --link-hover-color: var(--seattle-navy);
  --body-bg-color: var(--seattle-cream);
  --body-fg-color: black;
  --header-bg-color: var(--seattle-teal);
  --header-border-color: var(--seattle-navy);
  --footer-bg-color: var(--seattle-navy);
  --footer-fg-color: var(--seattle-cream);
  --footer-border-color: #E5E5E5;
  --card-border-color: #0170B988;
  --button-bg-color: var(--seattle-navy-lighter);
  --button-hover-bg-color: var(--seattle-navy-darker);
  --button-fg-color: white;
  --button-disabled-bg-color: #DDD;
  --button-disabled-fg-color: #202226;
  --error-fg-color: rgb(174, 0, 0);
  --inst-border-color: #DDD;

  --info-pattern: repeating-linear-gradient( 45deg, #4b9faa, #4b9faa 5px, #41acba 5px, #41acba 25px) #41acba;
  --info-color-light: #ecfaf5;

  --prog-bg: #2b5583;
  --prog-color-light: #f0feff;

  --part-bg: linear-gradient(135deg, #cd752d 25%, transparent 25%), linear-gradient(225deg, #cd752d 25%, transparent 25%), linear-gradient(45deg, #cd752d 25%, transparent 25%), linear-gradient(315deg, #cd752d 25%, #db7c2f 25%) #db7c2f;
  --part-bg-size: 32px 32px;
  --part-bg-pos: 16px 0, 16px 0, 0 0, 0 0;
  --part-bg-repeat: repeat;
  --part-color-light: #fffaf2;

  --events-bg: linear-gradient(0deg, #ecb51b 50%, #d7a621 50%) #ecb51b;
  --events-bg-size: 10px 10px;
  --events-color-light: #fffeed;

  --admin-bg: #fb24ff;
  --admin-color-light: #faecf9;
}

@font-face {
  font-family: 'Gruppo';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(gruppo-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Bigelow Rules';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(BigelowRules-Regular.ttf);
}
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(roboto-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(roboto-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(roboto-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(roboto-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(roboto-bold-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(roboto-bold-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

body {
  box-sizing: border-box;
  font-family: "Roboto", sans-serif;
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
  font-size: 18px;
  color: var(--body-fg-color);
  background: var(--body-bg-color);
}

[data-loading] {
  display: none;
}

.site-branding {
  font-family: "Cookie", script;
  font-size: 30px;
}

.site-branding hgroup {
  display: flex;
  align-items: center;
}

h2 {
  font-size: 2rem;
}

h3 {
  font-size: 1.5rem;
}

h4 {
  font-size: 1.25rem;
}

a, summary {
  color: var(--link-color);
  text-decoration: underline;
  cursor: pointer;
}

a:hover, summary:hover {
  color: var(--link-hover-color);
}

a:not([href]) {
  color: var(--body-fg-color);
  text-decoration: none;
  cursor: text;
}

h3 a {
  color: var(--body-fg-color);
  text-decoration: none;
}

summary {
  float: left;
}

details {
  display: inline-block;
}

details *:nth-child(2) {
  clear: left;
}

p {
  line-height: 1.5;
  margin-bottom: 1em;
}

p + h2, p + h3, p + h4 {
  margin-top: 1em;
}

em {
  font-style: italic;
}

kbd {
  font-style: italic;
}

kbd:before { content: open-quote; }
kbd:after  { content: close-quote; }

img {
  max-width: 100%;
  width: auto;
  height: auto;
}

header {
  background: url('/resources/seattle_header.jpg') no-repeat center;
  height: 100px;
}

header:after {
  content: '';
  width: 1240px;
  height: 1px;
  background:var(--header-border-color);
  position: absolute;
  bottom: -1px;
  top: 100px;
  display: block;
  left: calc(((100vw - (100vw - 100%)) - 1240px) / 2);
}

@media screen and (max-width: 1240px) {
  header:after {
    left: 0px;
    width: 100%;
  } 
}

footer {
  margin-top: auto;
  background-color: var(--footer-bg-color);
  border-top: solid 1px var(--footer-border-color);
  color: var(--footer-fg-color);
}

footer .container {
  display: flex;
  padding: 20px;
}

footer .container p {
  width: inherit;
  flex-grow: 1;
}

footer ul {
  display: flex;
  column-gap: 1em;
  row-gap: 0.25em;
  flex-wrap: wrap;
}

footer li {
  display: inline;
}

footer a, footer a:hover {
  color: var(--footer-fg-color);
}

ul ul {
  margin-left: 1em;
}

li {
  margin-bottom: 0.25em;
}

.container {
  max-width: 1240px;
  margin: 0 auto;
  display: flex;
  align-items: center;
}

.site-branding-container {
  display: inline-flex;
  align-items: center;
  text-align: left;
  flex-shrink: 0;
  color: black;
  text-decoration: none;
  height: 100px;
  width: 100%;
}

header a {
  color: var(--header-link-color);
}

.site-logo {
  margin-right: 1em;
  display: inline-block;
  max-width: 100%;
}

.site-logo img {
  width: 50px;
  vertical-align: middle;
  height: auto;
  max-width: 100%;
}

.site-branding h1 {
  margin: 0;
  font-size: 3rem;
  line-height: 1.2em;
  font-weight: 700;
  text-transform: none;
  min-width: 10rem;
  font-family: "Bigelow Rules", display;
  color: var(--seattle-cream);
  text-shadow: var(--seattle-navy) 2px 2px;
}

.container p {
  margin-bottom: 0;
  width: 100%;
}


.site-branding a, .site-branding a:hover {
  color: black;
  text-decoration: none;
}

.username {
  text-align: right;
  margin-top: -20px;
}

.breadcrumbs li {
  display: inline;
}

.breadcrumbs li:not(:last-child)::after {
  content: '/';
  margin-left: 0.2em;
}

main, .username-container {
  max-width: 1240px;
  width: 100%;
  margin: 0 auto;
  padding-left: 40px;
  padding-right: 40px;
  padding-top: 10px;
}

main {
  padding-top: 20px;
  padding-bottom: 20px;
}

.cards {
  display: grid;
  column-gap: 20px;
  row-gap: 20px;
  grid-template-columns: repeat(6, minmax(175px, 1fr));
  grid-auto-rows: auto 105px;
  text-align: center;
  padding-bottom: 2em;
}

.category h2 {
  margin-bottom: 0.25em;
}

.card {
  position: relative;
  display: grid;
  grid-row: span 2;
  grid-template-rows: subgrid [image-start][image-end title-start] [title-end];
  grid-template-columns: subgrid;
  row-gap: 0;
  padding: 0 20px;
  border-radius: 10px;
  box-shadow: hsla(0, 0%, 39%, 0.2) 0px 2px 8px 0px;
  transition: all 0.1s ease-in;
  font-weight: normal;
  border: solid 1px #CCC;
}
.card h3 a {
  color: rgb(34, 34, 34);
  text-decoration: none;
}

.card h3 a::before {
  content: ' ';
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: 10px;
}

.card:hover, .card:focus-within {
  background-color: rgb(245, 245, 245);
  box-shadow: rgba(0, 0, 0, 0.25) 0px 14px 28px, rgba(0, 0, 0, 0.22) 0px 10px 10px;
  transform: scale(1.02, 1.02);
  outline: solid 4px var(--card-border-color);
}

@media (prefers-reduced-motion) {
  .card:hover, .card:focus-within {
    transition: none;
    transform: none;
    outline: solid 4px var(--card-border-color);
  }
}

#favs h2 {
  display: flex;
  align-items:center;
}

#favs h2 img {
  width: 0.9em;
  height: 0.9em;
  margin-right: 0.1em;
}

.card .hero {
  position: relative;
  grid-area: image;
  margin: 0 -20px 5px -20px;
  aspect-ratio: 1.5 / 1;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}

.card .hero::after {
  content: ' ';
  position: absolute;
  top: 10px;
  right: 10px;
  bottom: 10px;
  left: 10px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-image: url('/resources/unknown.png');
}

.card.time {
  background-color: var(--info-color-light);
}
.card.time .hero {
  font-size: 1.5em;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--info-pattern);
}
.card.time .hero::after {
  background-image: none;
}

.card.btof {
  background-color: var(--info-color-light);
}
.card.btof .hero {
  position: relative;
  background: var(--info-pattern);
}

@keyframes fadeOut {
  0% {
    opacity: 0.4;
  }
  50% {
    opacity: 0.4;
  }
  75% {
    opacity: 0.2;
  }
  100% {
    opacity: 0;
  }
}

.card.btof .warp {
  background-image: url('/resources/warp.gif');
  background-size: cover;
  position: absolute;
  width: 100%;
  height: 100%;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  opacity: 0;
  animation: 12s fadeOut;
}
.card.btof .icon {
  background-image: url('/resources/btof.svg');
  position: absolute;
  top: 10px;
  right: 10px;
  bottom: 10px;
  left: 10px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}
.card.btof .hero::after {
  background-image: none;
}

@media (prefers-reduced-motion) {
  .card.btof .warp {
    background-image: none;
  }
}


.card.readme {
  background-color: var(--events-color-light);
}
.card.readme .hero {
  background: var(--events-bg);
  background-size: var(--events-bg-size);
}
.card.readme .hero::after {
  background-image: url('/resources/benefits.svg');
}

.card.guide {
  background-color: var(--prog-color-light);
}
.card.guide .hero {
  background: var(--prog-bg);

}
.card.guide .hero::after {
  background-image: url('/resources/guide.svg');
}

.card.schedule {
  background-color: var(--prog-color-light);
}
.card.schedule .hero {
  background: var(--prog-bg);

}
.card.schedule .hero::after {
  background-image: url('/resources/schedule.svg');
}

.card.maps {
  background-color: var(--info-color-light);
}
.card.maps .hero {
  background: var(--info-pattern);
}
.card.maps .hero::after {
  background-image: url('/resources/maps.svg');
}

.card.times {
  background-color: var(--info-color-light);
}
.card.times .hero {
  background: var(--info-pattern);
}
.card.times .hero::after {
  background-image: url('/resources/times.svg');
}

.card.stream {
  background-color: var(--prog-color-light);
}
.card.stream .hero {
  background: var(--prog-bg);
}
.card.stream .hero::after {
  background-image: url('/resources/stream.svg');
}

.card.catalogue {
  background-color: var(--prog-color-light);
}
.card.catalogue .hero {
  background: var(--prog-bg);
}
.card.catalogue .hero::after {
  background-image: url('/resources/catalogue.svg');
}

.card.chat {
  background-color: var(--prog-color-light);
}
.card.chat .hero {
  background: var(--prog-bg);
}
.card.chat .hero::after {
  background-image: url('/resources/chat.svg');
}

.card.signups {
  background-color: var(--prog-color-light);
}
.card.signups .hero {
  background: var(--prog-bg);
}
.card.signups .hero::after {
  background-image: url('/resources/signups.svg');
}

.card.tours {
  background-color: var(--prog-color-light);
}
.card.tours .hero {
  background: var(--prog-bg);
}
.card.tours .hero::after {
  background-image: url('/resources/space-needle.svg');
}

.card.after-dark {
  background-color: var(--prog-color-light);
}
.card.after-dark .hero {
  background: var(--prog-bg);
}
.card.after-dark .hero::after {
  background-image: url('/resources/martini.svg');
}

.card.virtual-gathering {
  background-color: var(--prog-color-light);
}
.card.virtual-gathering .hero {
  background: var(--prog-bg);
}
.card.virtual-gathering .hero::after {
  background-image: url('/resources/virtual-gathering.svg');
}


.card.newsletter {
  background-color: var(--info-color-light);
}
.card.newsletter .hero {
  background: var(--info-pattern);
}
.card.newsletter .hero::after {
  background-image: url('/resources/newsletter.svg');
}

.card.accessibility {
  background-color: var(--info-color-light);
}
.card.accessibility .hero {
  background: var(--info-pattern);
}
.card.accessibility .hero::after {
  background-image: url('/resources/accessibility.svg');
}

.card.volunteer {
  background-color: var(--part-color-light);
}
.card.volunteer .hero {
  background: var(--part-bg);
  background-size: var(--part-bg-size);
  background-position: var(--part-bg-pos);
  background-repeat: var(--part-bg-repeat);
}
.card.volunteer .hero::after {
  background-image: url('/resources/volunteer.svg');
}

.card.gallery {
  background-color: var(--events-color-light);
}
.card.gallery .hero {
  background: var(--events-bg);
  background-size: var(--events-bg-size);
}
.card.gallery .hero::after {
  background-image: url('/resources/gallery.svg');
}

.card.dealers {
  background-color: var(--events-color-light);
}
.card.dealers .hero {
  background: var(--events-bg);
  background-size: var(--events-bg-size);
}
.card.dealers .hero::after {
  background-image: url('/resources/shop.svg');
}


.card.benefits {
  background-color: var(--events-color-light);
}
.card.benefits .hero {
  background: var(--events-bg);
  background-size: var(--events-bg-size);
}
.card.benefits .hero::after {
  background-image: url('/resources/benefits.svg');
}

.card.hugos {
  background-color: var(--events-color-light);
}
.card.hugos .hero {
  background: var(--events-bg);
  background-size: var(--events-bg-size);
}
.card.hugos .hero::after {
  background-image: url('/resources/hugos.svg');
}

.card.consultive-ballot {
  background-color: var(--events-color-light);
}
.card.consultive-ballot .hero {
  background: var(--events-bg);
  background-size: var(--events-bg-size);
}
.card.consultive-ballot .hero::after {
  background-image: url('/resources/consultive-ballot.svg');
}

.card.site-selection {
  background-color: var(--events-color-light);
}
.card.site-selection .hero {
  background: var(--events-bg);
  background-size: var(--events-bg-size);
}
.card.site-selection .hero::after {
  background-image: url('/resources/site-selection.svg');
}

.card.card.itinerary {
  background-color: var(--part-color-light);
}
.card.itinerary .hero {
  background: var(--part-bg);
  background-size: var(--part-bg-size);
  background-position: var(--part-bg-pos);
  background-repeat: var(--part-bg-repeat);
}
.card.itinerary .hero::after {
  background-image: url('/resources/itinerary.svg');
}

.card.card.participant-guides {
  background-color: var(--part-color-light);
}
.card.participant-guides .hero {
  background: var(--part-bg);
  background-size: var(--part-bg-size);
  background-position: var(--part-bg-pos);
  background-repeat: var(--part-bg-repeat);
}
.card.participant-guides .hero::after {
  background-image: url('/resources/participant-guides.svg');
}



.card.childcare {
  background-color: var(--info-color-light);
}
.card.childcare .hero {
  background: var(--info-pattern);
}
.card.childcare .hero::after {
  background-image: url('/resources/childcare.svg');
}

.card.coc {
  background-color: var(--info-color-light);
}
.card.coc .hero {
  background: var(--info-pattern);
}
.card.coc .hero::after {
  background-image: url('/resources/coc.svg');
}

.card.help {
  background-color: var(--info-color-light);
}
.card.help .hero {
  background: var(--info-pattern);
}
.card.help .hero::after {
  background-image: url('/resources/help.svg');
}

.card.website {
  background-color: var(--info-color-light);
}
.card.website .hero {
  background: var(--info-pattern);
}
.card.website .hero::after {
  background-image: url('/resources/website.svg');
}

.card.manage-roles, .card.manage-discord, .card.manage-programme, .card.manage-login-sessions {
  background-color: var(--admin-color-light);
}
.card.manage-roles .hero, .card.manage-discord .hero, .card.manage-programme .hero, .card.manage-login-sessions .hero {
  background: var(--admin-bg);
}
.card.manage-roles .hero::after, .card.manage-discord .hero::after, .card.manage-programme .hero::after, .card.manage-login-sessions .hero::after {
  background-image: url('/resources/manage.svg');
}

.card.card.upload-presentation {
  background-color: var(--part-color-light);
}
.card.upload-presentation .hero {
  background: var(--part-bg);
  background-size: var(--part-bg-size);
  background-position: var(--part-bg-pos);
  background-repeat: var(--part-bg-repeat);
}
.card.upload-presentation .hero::after {
  background-image: url('/resources/upload-presentation.svg');
}

.card.card.upload-photo {
  background-color: var(--part-color-light);
}
.card.upload-photo .hero {
  background: var(--part-bg);
  background-size: var(--part-bg-size);
  background-position: var(--part-bg-pos);
  background-repeat: var(--part-bg-repeat);
}
.card.upload-photo .hero::after {
  background-image: url('/resources/upload-photo.svg');
}

.card hgroup {
  grid-area: title;
}

.card h3 {
  font-family: "Roboto", sans-serif;
  margin-bottom: 5px;
  font-size: 24px;
}

.card h4 {
  font-size: 18px;
  margin-bottom: 10px;
}

@media screen and (max-width: 1230px) {
  .cards {
    grid-template-columns: repeat(5, minmax(137px, 0.5fr));
  }
}

@media screen and (max-width: 950px) {
  .cards {
    grid-template-columns: repeat(4, minmax(137px, 0.5fr));
  }
}

@media screen and (max-width: 825px) {
  .cards {
    grid-template-columns: repeat(3, minmax(137px, 0.5fr));
  }
}

@media screen and (max-width: 625px) {
  .cards {
    grid-template-columns: repeat(2, minmax(137px, 0.5fr));
  }
}

@media screen and (max-width: 465px) {
  .cards {
    grid-template-columns: repeat(2, minmax(137px, 0.5fr));
  }

  .card.time .hero {
    font-size: 1.5em;
  }

  .card h3 a {
    font-size: 80%;
  }
}

@media screen and (max-width: 425px) {
  .cards {
    grid-template-columns: repeat(2, minmax(137px, 0.5fr));
  }
}

.fav {
  background-image: url('/resources/fav-empty.svg');
  background-size: 20px 20px;
  background-position: 10px 10px;
  background-repeat: no-repeat;
  background-color: transparent;
  opacity: 0.5;
  border: 0;
  width: 40px;
  height: 40px;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  cursor: pointer;
}


.fav:hover, .fav:focus {
  opacity: 1 !important;
}

.card .faved {
  background-image: url('/resources/fav-full.svg');
  opacity: 1 !important;
}

.faved:hover, .faved:focus {
  background-image: url('/resources/fav-minus.svg');
}

@media (hover: hover) {
  .fav {
    opacity: 0;
  }

  .card:hover .fav, .card:active .fav, .card:focus-within .fav {
    opacity: 0.5;
  }  
}

.other {
  background-color: var(--header-bg-color);
  backdrop-filter: blur(10px);
  border-radius: 10px;
  padding: 0.5em 1em;
  margin-top: 1rem;
}

.other h2 {
  font-size: 1.5rem;
  line-height: 1.5;
}

.other li {
  font-size: 1.2rem;
  line-height: 1.5;
}

article {
  line-height: 1.5;
  margin-top: 1em;
  max-width: 80ch;
}

article ul {
  list-style: disc;
  margin-bottom: 20px;
}

.button {
  display: inline-flex;
  padding: 10px 20px;
  background-color: var(--button-bg-color);
  text-decoration: none;
  color: var(--button-fg-color);
  border-radius: 3px;
  transition: color .1s ease-in-out, background-color .1s ease-in-out;
  box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
}

.button:hover {
  background-color: var(--button-hover-bg-color);
  color: var(--button-fg-color);
  box-shadow: rgba(0, 0, 0, 0.35) 0px 3px 8px;
}

.button.disabled {
  background-color: var(--button-disabled-bg-color);
  color: var(--button-disabled-fg-color);
  cursor: default;
  box-shadow: none;
}

form p {
  margin-bottom: 0;
}

form .label {
  font-weight: bold;
}

form .hint {
  font-style: italic;
}

form input[type='submit'], form input[type='button'] {
  padding: 10px 20px;
  margin-top: 10px;
  border: none;
  cursor: pointer;
  transition: color .1s ease-in-out, background-color .1s ease-in-out;
}

form input[type='submit'] {
  background-color: var(--button-bg-color);
  color: var(--button-fg-color);
}

form input[type='button'] {
  background-color: var(--button-bg-color);
  color: var(--button-fg-color);
}

form input[type='submit']:hover {
  background-color: var(--button-hover-bg-color);
  color: var(--button-fg-color);
}

form input[type='button']:hover {
  background-color: var(--button-hover-bg-color);
  color: var(--button-fg-color);
}

form input[type='submit']:disabled,
form input[type='submit']:disabled:hover,
form input[type='input']:disabled,
form input[type='input']:disabled:hover {
  background-color: var(--button-disabled-bg-color);
  color: var(--button-disabled-fg-color);
  cursor: default;
  background-image: url('/resources/spinner.gif');
  background-size: 20px;
  background-repeat: no-repeat;
  background-position: center right 10px;
  padding-right: 38px;
}

legend {
  font-weight: bold;
}

.filled-in-field {
  margin-top: 10px;
}

.filled-in-field a {
  margin-left: 1em;
}

fieldset {
  margin-top: 20px;
}

.error {
  margin-top: 20px;
  color: var(--error-fg-color);
}

.error img {
  width: 1em;
  height: 1em;
  margin-right: 0.25em;
}

.info {
  margin-top: 20px;
}

@media only screen and (max-width: 40em) {
  .container {
    flex-direction: column;
    align-items: start;
  }
  .username {
    text-align: left;
    margin-top: -20px;
  }
  form input[type='email'], form input[type='password']{
    max-width: 100%;
  }
}

table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 20px;
}

td, th {
  padding: 10px;
}

th {
  background-color: var(--primary-color);
  color: white;
  text-align: left;
  font-weight: bold;
}

.new-badgeno-row {
  border-top: solid 1px #DDD;
}

ol {
  list-style-type: decimal;
  margin: 0 0 1em 1em;
}

ol ol {
  list-style-type: lower-latin;
}

sup {
  vertical-align: super;
  font-size: smaller;
  line-height: normal;
}

#permissions {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
}

form.vertical label {
  display: flex;
  flex-direction: column;
  margin-bottom: 0.5em;
}

.login {
  margin-bottom: 0.5em;
}

.wizard .content {
  margin: 0 1em;
}

.wizard header {
  padding-left: 2.5em;
  background-repeat: no-repeat;
  background-position: 0.3em 0;
  background-size: 2em;
  line-height: 2;
  border-bottom: none;
  margin-bottom: 1em;
}

.wizard header.active {
  background-color: var(--button-disabled-bg-color);
  color: var(--button-disabled-fg-color);
}

.wizard header.pending, .wizard header.active {
  background-image: url('/resources/step-pending.svg');
}

.wizard header.complete {
  background-image: url('/resources/step-complete.svg');
}

.instructions img {
  border: solid 1px var(--inst-border-color);
}

ul.maps {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  column-gap: 20px;
  row-gap: 20px;
}

ul.maps li a {
  display: flex;
  flex-direction: column;
}

#times-toc {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17em, 1fr));
}

#times-toc li {
  margin-right: 1em;
}

.times-list {
  list-style: none;
}

.times-list li {
  position: relative;
  margin-bottom: 0.5em;
}

.times-list p {
  margin: 0;
}

.times-list p:first-of-type {
  font-weight: bold;
}

.times-list p:last-of-type {
  position: absolute;
  top: 0;
  left: 20ch;
}

@media (max-width: 500px) {
  .times-list p:last-of-type {
    position: relative;
    top: auto;
    left: auto;
  }
}

.dt {
  font-weight: bold;  
}

#url {
  width: 100%;
  display: flex;
}

#url input[type=text] {
  padding: 10px;
  flex-grow: 1;
}

#url button {
  width: 10ch;
}

#qr-code {
  max-width: 404px;
  max-height: 404px;
}

@media (prefers-contrast: more) {
  :root {
    --primary-color: #014E82;
  
    --link-color: var(--primary-color);
    --link-hover-color: black;
    --body-bg-color: white;
    --body-fg-color: black;
    --header-bg-color: #eee;
    --header-border-color: black;
    --footer-bg-color: #1f1f1f;
    --footer-fg-color: white;
    --footer-border-color: white;
    --card-border-color: #00000088;
    --button-bg-color: var(--primary-color);
    --button-hover-bg-color: #2b3990;
    --button-fg-color: white;
    --button-disabled-bg-color: #DDD;
    --button-disabled-fg-color: black;
    --error-fg-color: rgb(174, 0, 0);
    --inst-border-color: black;
  }

  .card {
    outline: solid 1px var(--card-border-color);
  }

  body.home {
    background-image: none;
  }
}

.visually-hidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
