/* FONTS */
@font-face {
  font-family: "Outfit";
  font-weight: 100 900;
  font-style: normal;
  src: url('outfit-variablefont_wght.woff2') format('woff2');
}

/* VARIABLES */
:root {
  --font-fallback: BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu",
    "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-sans;

  --default-icon-size: 2rem;
  --default-input-height: 3rem;

  /* COLORS */

  /*  remoteStorage Colors */
  --rs-orange-color: #ff4b03;
  --rs-black-color: #222;
  --rs-white-color: #fefefe;

  /*  Armadietto colors */
  --arma-black-color:  #171614;
  --arma-darkgray-color: #424239;
  --arma-whitesmoke-color: #e6e2da;
  --arma-lightgray-color: #c8c8c8;
  --arma-wheat-color: #c7b9bd;
  --arma-orange-color: #f4a903;
  --arma-orangered-color: #f07b0d;

  /* Default Colors */
  --default-error-color: #aa2e2e;

  --github-sprite-url: url("sprite.svg#icon-github-dark");
}

:root[data-theme="light"] {
  --rs-brand-color: var(--rs-orange-color);
  --rs-frgrd-color: var(--rs-white-color);
  --rs-bckgrd-color: var(--rs-black-color);

  --arma-bckgrd-color:  var(--arma-whitesmoke-color);
  --arma-bckgrd-color-alt:  var(--arma-lightgray-color);
  --arma-title-color: #0d0608;
  --arma-text-color: var(--arma-black-color);
  --arma-brand-color: var(--arma-orange-color);
  --arma-extra-color: #185d6e;

  --arma-link-color: var(--arma-black-color);
  --arma-link-color-hover: var(--arma-whitesmoke-color);
  --arma-link-bckgrd-color: var(--arma-orange-color);
  --arma-link-hover-bckgrd-color: var(--arma-black-color);
  --arma-link-border-width: 0 .25rem;

  --arma-btn-txt-color: var(--arma-black-color);

  --default-allow-color: var(--default-success-color);
  --default-signup-color: var(--arma-brand-color);

  --default-cancel-color: #121314;
  --default-cancel-reverse-color: var(--arma-whitesmoke-color);
  --default-cancel-hover-color: var(--arma-orangered-color);

  --default-success-color: #057013;
  --arma-focus-bckgrd-color: var(--arma-extra-color);
  --arma-focus-border-color: var(--arma-extra-color);

  --rs-blurb-bckgrd-color: var(--rs-black-color);
  --rs-blurb-border-color: var(--rs-black-color);

  --em-form-bckgrd-color: var(--arma-orange-color);

  --github-sprite-url-hover: url("sprite.svg#icon-github-light");
  --icon-eye-blocked: url('sprite.svg#icon-eye-blocked-dark');
  --icon-eye: url('sprite.svg#icon-eye-dark');
}

/* @media (prefers-color-scheme: dark) { */
  :root[data-theme="dark"] {
    --rs-brand-color: var(--rs-orange-color);
    --rs-frgrd-color: var(--rs-black-color);
    --rs-bckgrd-color: var(--rs-white-color);

    --arma-bckgrd-color:  var(--arma-black-color);
    --arma-bckgrd-color-alt:  var(--arma-darkgray-color);
    --arma-title-color: var(--arma-whitesmoke-color);
    --arma-text-color: var(--arma-wheat-color);
    --arma-brand-color: var(--arma-orange-color);
    --arma-extra-color: #69a2b0;

    --arma-link-color: var(--arma-black-color);
    --arma-link-color-hover: var(--arma-black-color);
    --arma-link-bckgrd-color: var(--arma-orange-color);
    --arma-link-hover-bckgrd-color: var(--arma-whitesmoke-color);
    --arma-link-border-width: 0 .25rem;

    --arma-btn-txt-color: var(--arma-black-color);

    --default-success-color: #3fb34f;
    --arma-focus-bckgrd-color: hsla(0, 0%, 30%, .45);
    --arma-focus-border-color: hsla(0, 0%, 100%, .45);
    --default-allow-color: var(--default-success-color);
    --default-signup-color: var(--arma-brand-color);

    --default-cancel-color: var(--arma-whitesmoke-color);
    --default-cancel-reverse-color: #121314;
    --default-cancel-hover-color: var(--arma-orangered-color);

    --icon-eye-blocked: url('sprite.svg#icon-eye-blocked-light');
    --icon-eye: url('sprite.svg#icon-eye-light');
  }
/* } */

/* GLOBALS */

body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: stretch;
  min-height: 100vh;
  background: var(--arma-bckgrd-color);
  background-image: var(--body-bckgrd-linear-gradient, transparent);
  color: var(--arma-text-color);
  font: normal 1rem / 1.5 "Outfit", var(--font-fallback);
  margin: 0;
  padding: 0;
}

a {
  text-decoration: none;
}

a:focus {
  outline: thin dotted;
}

p > a {
  display: inline-block;
  line-height: 1.5em;
  border: solid var(--arma-link-bckgrd-color);
  border-width: var(--arma-link-border-width, 0);
  border-radius: 0.25rem;
  background-color: var(--arma-link-bckgrd-color, transparent);
  color: var(--arma-link-color);
  font-weight: 600;
  text-decoration: var(--default-link-decoration, none);
  vertical-align: middle;
}

p > a:hover {
  background-color: var(--arma-link-hover-bckgrd-color);
  border-color: var(--arma-link-hover-bckgrd-color);
  color: var(--arma-link-color-hover);
  text-decoration: var(--default-link-hover-decoration, none);
}

ul,
li {
  list-style: none;
  padding: 0;
}

.text-center {
  text-align: center;
}

.centering-container {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.width10em {
  width: 10em;
}
.width4em {
  width: 4em;
}

/* TOPBAR HEADER */

header.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  max-width: calc(100vw - 2rem);
  min-height: 3rem;
  margin: 1rem 0 0 0;
}

header.topbar h1 {
	display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .25rem;
  padding: 0;
	margin: 0;
  color: #7c7777;
  font-size: 1.5rem;
	line-height: 1;
}

@media only screen and (max-width: 600px) {
  header.topbar {
    flex-direction: column;
  }

  header.topbar h1 {
    padding: 0;
  }

  header.topbar h1 a {
    margin: auto;
  }
}

header.topbar .subtitle {
  display: flex;
  align-items: center;
  gap: .5rem;
  color: var(--arma-extra-color, currentColor);
  font-size: .875rem;
  font-weight: 400;
}

header.topbar .logo {
  display: flex;
  align-items: center;
  gap: .25rem;
  color: var(--arma-title-color);
  font-weight: 3500;
	font-size: 1rem;
  text-transform: lowercase;
}

header.topbar .logo svg {
  height: 1rem;
  fill: var(--arma-brand-color);
}

header.topbar h1 a {
	color: var(--arma-text-color);
  font-size: 1.2rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -.05em;
  outline-offset: .5rem;
}

header.topbar h1 a:hover,
header.topbar h1 a:focus {
  color: var(--arma-brand-color);
}

/* NAV HEADER */

@media only screen and (min-width: 601px) {
  header.topbar nav {
    align-self: flex-start;
    margin-left: auto;
  }
}

header.topbar nav ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  column-gap: .5rem;
  margin: 0;
  padding: 0;
}

header.topbar .navitem {
	display: inline-flex;
  align-items: center;
  gap: .125rem;
  margin: auto;
	padding: 0 .5rem;
	border-radius: .5rem;
	color: var(--arma-text-color);
	transition: all .2s linear;
  text-decoration: none;
  height: 2.5rem;
}

header.topbar .signup::before {
  content: "\270E";
  font-size: 1.5em;
  transform: rotate(12deg);
}

header.topbar .signup:hover,
header.topbar .navitem:hover,
header.topbar .signup:focus {
  color: var(--arma-text-color);
  box-shadow: inset 0 0 0 .125rem var(--arma-text-color);
}

/* HERO */

section.hero {
  width: 50rem;
  max-width: calc(100vw - 2rem);
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

@media only screen and (min-width: 601px) {
  section.hero {
    margin: 2rem auto;
  }
}

section.hero svg {
  fill: #f4a903;
	font-size: 1.3rem;
	letter-spacing: .05em;
}

section.hero header {
  font-size: 1.5rem;
  font-weight: 200;
  line-height: 1.2;
}

section.hero h2 {
  margin: 1.4rem auto 0;
  color: var(--arma-title-color);
  font-size: 2.2rem;
  font-weight: 600;
  text-transform: uppercase;
}

section.hero header p {
  line-height: 1.5;
}

section.hero header + p {
  font-size: 1.125rem;
  font-weight: 500;
}

@media only screen and (max-width: 600px) {
  section.hero svg {
    width: auto;
    height: 120px;
  }

  section.hero header {
    font-size: 1.125rem;
    line-height: 1.5;
  }

  section.hero h2 {
    font-size: 1.5rem;
  }
}

.artwork {
  margin-top: 1rem;
}

.fitName {
  font-size: 1.3rem;
  font-size: math;
}

.centeredBoxContent {
  display: flex;
  justify-content: center;
  align-items: center;
}

.centeredText {
  text-align: center;
}

.marginTop {
  margin-top: 1em;
}
.marginSides {
  margin-left: 1em;
  margin-right: 1em;
}
.padding {
  padding: 1em;
}

.floatRight {
  float: right;
  margin-left: 1em;
}

.fullwidth {
  width: 100%;
}
th {
  background: #333;
  color: white;
  font-weight: bold;
}
tr:nth-of-type(even) {
  background: var(--arma-bckgrd-color-alt);
}
td:first-child {
  padding-left: 0.67em;
}
/*
Max width before these PARTICULAR tables gets nasty
This query will take effect for any screen smaller than 500px
*/
@media
only screen and (max-width: 500px)  {

  /* Force table to not be like tables anymore */
  table.adaptive, .adaptive thead, .adaptive tbody, .adaptive th, .adaptive td, .adaptive tr {
    display: block;
  }

  /* Hide table headers (but not display: none;, for accessibility) */
  .adaptive thead tr {
    border: 0;
    padding: 0;
    margin: 0;
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px 1px 1px 1px); /* IE6, IE7 - a 0 height clip, off to the bottom right of the visible 1px box */
    clip: rect(1px, 1px, 1px, 1px); /*maybe deprecated but we need to support legacy browsers */
    clip-path: inset(50%); /*modern browsers, clip-path works inwards from each corner*/
    white-space: nowrap; /* added line to stop words getting smushed together (as they go onto seperate lines and some screen readers do not understand line feeds as a space */
  }

  .adaptive tr { border: 1px solid #ccc; }

  .adaptive td {
    /* Behave  like a "row" */
    border: none;
    border-bottom: 1px solid #eee;
    position: relative;
    padding-left: 40%;
  }

  .adaptive td:before {
    /* Now like a table header */
    position: absolute;
    /* Top/left values mimic padding */
    left: 0.67em;
    width: 35%;
    padding-right: 10px;
    white-space: nowrap;
  }

  /* Labels the data */
  #credentials td:nth-of-type(1):before { content: "Created using"; }
  #credentials td:nth-of-type(2):before { content: "Created on"; }
  #credentials td:nth-of-type(3):before { content: "Last used"; }

  #users td:nth-of-type(1):before { content: "Name"; }
  #users td:nth-of-type(2):before { content: "Contact URL"; }
  #users td:nth-of-type(3):before { content: "Last logged-in"; }
  #users td:nth-of-type(4):before { content: "Privileges"; }
}

#output {
  border: black 1px solid;
  padding: 1em;
}

/* BODY FOOTER */

body > footer > p {
  width: 80rem;
  max-width: calc(100vw - 2rem);
  margin: 2rem auto 3rem;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.2;
  text-align: center;
}

/* MISCELLANEOUS */

.rs-link {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	height: 2rem;
	margin: auto .25rem;
	padding: 0 .5rem;
  background-color: whitesmoke;
  border-width: 0;
	border-radius: 1.4rem;
	font-size: 1rem;
  font-weight: 700;
}

.rs-link:hover {
  background-color: var(--rs-black-color);
  color: whitesmoke;
}

.rs-link > span {
  margin-top: -.125rem;
}

.rs-link::before {
  content: url('sprite.svg#icon-rs');
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  margin: auto;
}

.github-link {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  border: solid var(--arma-link-bckgrd-color, transparent);
  border-width: var(--arma-link-border-width, 0);
  border-radius: 0.25rem;
  background-color: var(--arma-link-bckgrd-color, transparent);
  color: var(--arma-link-color);
  line-height: 1.4;
}

.github-link:hover {
  background-color: var(--arma-link-hover-bckgrd-color);
  border-color: var(--arma-link-hover-bckgrd-color);
  text-decoration: none;
}

.github-link::after {
  content: var(--github-sprite-url);
  display: inline-block;
  width: 1.2rem;
  height: 1.2rem;
  margin: auto;
}

.github-link:hover::after {
  content: var(--github-sprite-url-hover, var(--github-sprite-url));
}

/* MAIN CONTENT */

main {
  width: 100%;
  max-width: 65rem;
}

main.content {
  margin: auto;
}

main.content > h2 {
  color: var(--arma-title-color);
  font-size: 2rem;
  text-align: center;
  text-transform: uppercase;
}

main.content > p {
  margin-left: 1rem;
  margin-right: 1rem;
}

main .status {
  margin-top: 1rem;
  margin-bottom: 0;
  color: var(--arma-title-color);
  font-size: 8rem;
  font-weight: 700;
  text-align: center;
}

main .message {
  font-size: 1.5rem;
  text-align: center;
}

.notTooWide {
  width: 100%;
  max-width: 30rem;
  margin-left: auto;
  margin-right: auto;
}

/* FORMS */

form {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  width: 22rem;
  max-width: calc(100vw - 2rem);
  margin: auto;
}

.form-group {
  position: relative;
  width: 100%;
}

.form-group:last-of-type {
  margin-bottom: 1rem;
}

label.overLabel {
  color: var(--arma-extra-color);
  font-size: .875rem;
}
label.leftLabel {

}

input {
  display: flex;
  place-content: center;
  box-sizing: border-box;
  width: 100%;
  height: var(--default-input-height);
  border: none;
  border-bottom: .125rem dotted var(--arma-extra-color);
  border-top: .125rem solid transparent;
  background-color: var(--arma-bckgrd-color);
  color: var(--arma-text-color);
  font-size: 1.25rem;
  font-weight: 600;
  transition: all .3s linear;
  -webkit-appearance: none;
  filter: unset;
}

input:focus {
  border-bottom-style: solid !important;
  padding-left: .75rem;
  outline: 0;
  border-top: 2pt dotted var(--arma-focus-border-color);
  background-color: rgba(125,125,125, .1);
  appearance: none;
  filter: unset;
}

input:valid {
  border-bottom-color: var(--default-success-color);
  color: var(--default-success-color);
  filter: unset;
}

input:valid:focus {
	outline: 0;
  padding-left: .75rem;
	border-top: 2pt dotted var(--arma-focus-border-color);
  filter: unset;
}

input::placeholder {
  color: var(--arma-text-color);
  font-style: italic;
  font-weight: 400;
  opacity: .4;
}

input#password {
  font-weight: 700;
}

button[type="submit"], button.mainAction {
  display: flex;
  place-content: center;
  width: auto;
  min-width: 7rem;
  min-height: 3rem;
  padding: .5rem 1.5rem;
  margin: auto;
  border-radius: 1.5rem;
  border: none;
  background-color: var(--arma-brand-color);
  color: var(--arma-btn-txt-color);
  font-family: 'Outfit', var(--font-fallback);
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.4;
  transition: all .3s ease;
  cursor: pointer;
  -webkit-appearance: none;
}

button:hover {
  background-color: var(--arma-title-color);
  color: var(--arma-bckgrd-color);
}

button[name="signup"]:focus {
  outline: 2pt dotted var(--arma-text-color);
}

.error {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  gap: .75rem;
  width: 100%;
  max-width: 100%;
  margin: auto;
  padding: .5rem .65rem .65rem .875rem;
  border-radius: .25rem;
  background-color: var(--default-error-color);
  color: var(--arma-whitesmoke-color);
  font-weight: 600;
  line-height: 1.2;
  font-size: .9375rem;
}

.error::before {
  content: url('sprite.svg#icon-warning');
  display: flex;
  align-self: center;
  min-width: var(--default-icon-size);
  height: var(--default-icon-size);
}

.success {
  font-size: 1.5rem;
  text-align: center;
}

.success em {
  font-weight: 700;
  font-style: normal;
}

.oauth-form {
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  width: 28rem;
  max-width: calc(100vw - 2rem);
}

.oauth-form p {
  text-align: center;
}

.oauth-form p em {
  color: var(--arma-extra-color);
  font-style: normal;
  font-weight: 600;
}

.oauth-form ul {
  box-sizing: border-box;
  margin: 0 auto 2rem;
  padding: 0;
  width: 22rem;
  max-width: 100%;
  border: 1px solid var(--arma-extra-color);
  border-radius: .125rem;
  overflow: hidden;
}

.oauth-form ul li {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  padding: .25rem .75rem;
  font-size: .875rem;
}

.oauth-form ul li em {
  font-weight: 600;
  font-style: normal;
}

.oauth-form ul li:nth-child(odd) {
  background-color: var(--arma-extra-color);
}

.oauth-form ul li:nth-child(even) {
  background-color: var(--arma-text-color);
}

.oauth-form ul li > em:first-child {
  place-self: self-start;
  color: var(--arma-bckgrd-color);
}

.oauth-form ul li > span {
  place-self: center;
  padding: 0 .25rem;
  color: var(--arma-bckgrd-color);
	line-height: 1.1;
	font-weight: 600;
	font-size: .875rem;
}

.oauth-form ul li > em:last-child {
  place-self: self-end;
  color: var(--rs-frgrd-color);
}

.oauth-form label {
  margin-bottom: .5rem;
  color: var(--arma-title-color);
  font-size: 1.25rem;
}

.oauth-form label em {
  color: var(--arma-text-color);
  font-weight: 700;
  font-style: normal;
}

.oauth-form .form-group,
.oauth-form input {
  text-align: center;
}

div.actions {
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: 1rem;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
}

button[name="allow"] {
  background-color: var(--default-success-color);
  color: var(--arma-bckgrd-color);
}

button[name="allow"]:hover {
  background-color: var(--arma-brand-color);
  color: var(--arma-black-color);
}

button[name="deny"] {
  background-color: var(--default-cancel-color);
  color: var(--default-cancel-reverse-color);
}

button[name="deny"]:hover {
  background-color: var(--default-cancel-hover-color);
  color: var(--default-cancel-color);
}

button[name="allow"]:focus,
button[name="deny"]:focus {
  outline: 2px dotted var(--arma-text-color);
}

#togglePassword {
  position: absolute;
  right: .75rem;
  bottom: calc((var(--default-input-height) / 2) - (var(--default-icon-size) / 2));
  outline-offset: .125rem;
  border-radius: 50%;
  background-color: transparent;
}

#togglePassword.icon-eye.icon-slash::before {
  content: var(--icon-eye-blocked);
  cursor: pointer;
}

#togglePassword.icon-eye::before {
  content: var(--icon-eye);
  cursor: pointer;
}

#togglePassword:focus-visible {
  outline: 2pt dotted var(--arma-focus-border-color);
}

/* UTILITY */
.flexRowSpaceBetween {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
}

.flexRowSpaceAround {
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  align-items: center;
}

.flexRowCenter {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.flexRowWrapResponsive {
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-around;
  align-items: center;
}

@media
only screen and (max-width: 500px)  {
  .flexRowWrapResponsive {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-around;
    align-items: center;
  }
}

.preWrap {
  white-space: pre-wrap;
}

/* ICONS */

[class^="icon-"] {
  display: inline-flex;
  width: var(--default-icon-size);
  height: var(--default-icon-size);
  border: 0;
  padding: .25rem;
}

[class^="icon-"]::before {
  content: '';
  display: inline-block;
  width: 100%;
  margin: auto;
}

.passkeyIcon {
  height: 1.5em;
  margin: 0.5em;
}

.passkeyIconLg {
  height: 6.5em;
  margin: 0.5em;
}

/* SWITCH */
#switch {
  display: flex;
  width: var(--default-icon-size);
  height: var(--default-icon-size);
  background-color: transparent;
  border-radius: 50%;
  border: none;
  color: var(--arma-text-color);
  font-size: 0;
  cursor: pointer;
}

#switch::before {
  content: '';
  display: inline-block;
  place-content: center;
  width: var(--default-icon-size);
  margin: auto;
}

#switch.dark::before {
  content: url('sprite.svg#icon-sun');
}

#switch.light::before {
  content: url('sprite.svg#icon-moon');
}
.deemphasize {
	color: #a6a6a6;
	font-size: 0.8em;
}
.favicon {
	width: 32px;
	height: 32px;
	vertical-align: middle;
}

.account-info td {
	font-size: 0.8em;
}
