body {
  background: var(--login-background);
}
body.ready {
  transition: all 0.3s ease-in-out;
}
body.ready * {
  transition: all 0.25s ease-in-out;
  transition-property: background, margin, padding, height, width;
}

body:not(.ready) > div#wrapper {
  opacity: 0;
}

div#loginWrapper {
  width: 100%;
  height: 100%;
  margin: 0;
  display: table;
  transition: opacity 1s ease-in-out;
}
div#loginWrapper.transparent {
  opacity: 0;
}

div#frame {
  display: table-cell;
  vertical-align: middle;
}

div#login,
div#loginWarning {
  position: relative;
}
div#login p.contentsInner,
div#loginWarning p.contentsInner {
  white-space: pre-wrap;
  font-size: 150%;
  padding: 0.5em 1em;
}

div#loginWarning {
  width: 560px;
}

#login .logo > img {
  max-width: 100%;
}

div#title {
  margin-bottom: 2em;
}
div#title > div.logo {
  text-align: center;
  font-size: 500%;
  font-family: "Franklin Gothic Medium";
  font-weight: 700;
  padding: 10px;
  position: relative;
}
div#title > div.logo > svg {
  width: 100%;
  fill: currentColor;
}
div#title > div.version {
  text-align: center;
  font-size: 70%;
  color: #CCC;
  color: var(--note-text);
}

div#controlBtns {
  position: absolute;
  top: 5px;
  top: var(--margin);
  right: 5px;
  right: var(--margin);
}
div#controlBtns > button {
  border-radius: 1em;
}

#form div.form-group {
  margin-bottom: 1em;
}
#form div.form-group > label {
  color: #CCC;
  color: var(--note-text);
  text-align: right;
  white-space: nowrap;
}
#form div.form-group > input[type=text],
#form div.form-group > input[type=password] {
  display: inline;
}
#form div.form-group > .message {
  color: #3b86ff;
  font-size: var(--font-size-small);
  margin-left: 10em;
}
#form select {
  background: #136;
  background: var(--control-background);
  color: #FFF;
  color: var(--control-text);
  padding: 3px 6px;
  padding: var(--padding) var(--padding-horz);
  border: none;
  border: var(--control-edge);
  box-shadow: none;
  box-shadow: var(--control-shadow);
  position: relative;
}
#form .footer {
  margin-top: 2em;
}

div#action {
  margin-top: 3em;
  display: flex;
}
div#action > button.expand {
  flex: 1;
}

body[screen-mode=MOBILE] div#loginWrapper {
  background: #222;
  background: var(--contents-background);
}
body[screen-mode=MOBILE] div#login,
body[screen-mode=MOBILE] div#loginWarning {
  width: 100%;
  padding: 2em;
  overflow: auto;
  max-height: 100%;
  max-width: 500px;
  margin: auto;
}
body[screen-mode=MOBILE] #form div.form-group > label {
  width: 20%;
}
body[screen-mode=MOBILE] #form div.form-group > input[type=text],
body[screen-mode=MOBILE] #form div.form-group > input[type=password],
body[screen-mode=MOBILE] #form div.form-group > select {
  width: 60%;
}
body[screen-mode=MOBILE] #form div.form-group > .message {
  margin: 2em 0px;
}

body[screen-mode=PC] div#login,
body[screen-mode=PC] div#loginWarning {
  width: 40em;
  margin: 0 auto;
  padding: 3em;
  background: #222;
  background: var(--contents-background);
  border: none;
  border: var(--contents-edge);
  box-shadow: none;
  box-shadow: var(--shadow);
  border-radius: 1em;
}
body[screen-mode=PC] #form div.form-group > label {
  width: 10em;
}
body[screen-mode=PC] #form div.form-group > input[type=text],
body[screen-mode=PC] #form div.form-group > input[type=password] {
  width: 20em;
}
body[screen-mode=PC] #form div.form-group > select {
  width: 20em;
}
body[screen-mode=PC] #form div.form-group > .message {
  margin-left: 10em;
}
