body {
  overflow: hidden;
  margin: 0;
  font: 12px arial, sans-serif;
  background: white;
}

a {
  color: #000;
  transition: color .5s;
}

a:hover {
  color: #666;
}

img.icon,
.svg-icon {
  height: 1.4em;
  vertical-align: middle;
}

.svg-icon {
  margin-left: 2px;
  fill: #000;
  transition: fill .5s;
}

a:hover .svg-icon {
  fill: #666;
}

input:disabled + span {
  color: rgb(128, 128, 128);
}

.container {
  display: flex;
  height: 100vh;
}

#header,
.warnings {
  flex: 0 0 280px;
  box-sizing: border-box;
  padding: 1rem;
  border-right: 1px dashed #aaa;
  box-shadow: 0 0 50px -18px black;
  overflow-wrap: break-word;
  overflow-y: auto;
  z-index: 100;
}

#header.meta-init-error {
  display: none;
}

.warnings {
  display: none;
  padding-bottom: 0;
  flex-basis: auto;
  background: #ffe2e2;
  border-right: none;
  border-bottom: 1px dashed #aaa;
}

.has-warnings .warnings {
  display: flex;
}

.warning {
  font-weight: bold;
  font-size: 125%;
  margin-bottom: 1em;
}

.warning pre {
  overflow-wrap: break-word;
  white-space: pre-wrap;
  margin: 1ex 0 0;
  font-family: monospace;
  font-weight: normal;
  font-size: 80%;
}

h1 {
  margin-top: 0;
}

h1 small {
  font-size: 0.6em;
}

.meta-version::before {
  content: " v";
}

.actions {
  margin-bottom: 1em;
}

.actions label {
  max-width: -moz-fit-content;
  max-width: fit-content;
  display: flex;
  align-items: center;
  margin: 0.5em 0;
}

.install {
  font-family: Arial, "DejaVu Sans", Verdana, Geneva, sans-serif;
  font-size: 14px;
  background-color: hsl(0, 0%, 33%);
  color: #eee;
  border-radius: 4px;
  padding: 4px 38px 4px 10px;
  position: relative;
  display: inline-block;
  text-shadow: 1px 1px 1px #333;
  -webkit-appearance: none;
  -moz-appearance: none;
  border-style: none;
  margin-bottom: 1ex;
  cursor: pointer;
  box-shadow: inset 0 -1px 0 0 hsl(0, 0%, 24%), inset 0 1px 0 0 hsl(0, 0%, 30%), inset 1px 0 0 0 hsl(0, 0%, 24%);
  transition: color .25s, background-color .25s;
}

.install,
.install:before {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAAeCAYAAAAGos/EAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4gINFiccyZ2qfAAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAb0lEQVQY012OwQ3CUAzFnNeMAfsv1hk4VDTm0H6ByMmyLL2U+lRowKobwAVFEEWbwqKIIGDXBTQqBU3VbWYk0CTLIAxNEHI1s5oAYXAYm2AIfZ64Ab1ta4s/yHv908twHB5gqf0Tvyg1l9l3efC9Dw0XRC2vHIXXAAAAAElFTkSuQmCC);
  background-size: 100% 100%;
  background-repeat: repeat-x;
}

.install:hover:not(:disabled) {
  background-color: hsl(0, 0%, 38%);
  color: #fff;
  text-shadow: none;
}

.install:before,
.install:after {
  content: "";
  vertical-align: middle;
  box-sizing: border-box;
  border-radius: 0 4px 4px 0;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 30px;
}

.install:before {
  border-left: 1px solid rgba(0, 0, 0, .3);
  box-shadow: inset 0 -1px 0 0 hsl(0, 0%, 24%), inset 0 1px 0 0 hsl(0, 0%, 30%), inset -1px 0 0 0 hsl(0, 0%, 38%);
  padding: 5px 8px;
  transition: background-color .25s;
}

.install:before,
.install:active:before,
.install:active:hover:before {
  background-color: hsl(176, 50%, 35%);
}

.install:hover:before {
  background-color: hsl(176, 50%, 40%);
}

.install:active,
.install:active:before {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAAeCAYAAAAGos/EAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4gINFioX6+ENuQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAc0lEQVQY003OwQ0CQQxD0edsRBX03xg9cFjBhMPuSOT0ZdmxuS/zesWTzExBI7xlZhrKeeYkmZkH1Icg3Rfs1D98v3Kgj+NSypJlpZWU0tbKKlpVCm0JSyuxPbbnqpiJ0JLr8+w9sbtGxqRFInvYbLiVGX46ECZMv8VvjwAAAABJRU5ErkJggg==);
  background-size: 100% 100%;
  background-repeat: repeat-x;
}

.install:active,
.install:active:hover {
  background-color: hsl(0, 0%, 33%);
}

.install:after {
  background-image: url(../images/icon/16.png);
  background-repeat: no-repeat;
  background-position: center center;
}

.install:disabled {
  opacity: .25;
  color: white;
  cursor: auto;
}

.install.reinstall:after {
  filter: grayscale(100%);
}

.install.reinstall:before,
.install.reinstall:active:before,
.install.reinstall:active:hover:before {
  background-color: hsl(0, 0%, 20%);
}

.install.reinstall:hover:before {
  background-color: hsl(0, 0%, 25%);
}

.install.reinstall:hover:before {
  background-color: #444;
}

.install.update:before,
.install.update:active:before,
.install.update:active:hover:before {
  background-color: hsl(140, 100%, 13%);
}

.install.update:hover:before {
  background-color: hsl(140, 100%, 18%);
}

.install.update:after {
  filter: hue-rotate(-18deg) brightness(.7) contrast(2);
}

.install.installed,
h2.installed {
  display: none;
}

h2.installed.active {
  display: inline-block;
  font-weight: bold;
  margin-bottom: 1ex;
  margin-top: 0;
}

.actions label input {
  margin: 0 0.5em 0 0;
  flex: 0 0 auto;
}

.actions label span {
  min-width: 0;
}

.set-update-url {
  flex-wrap: wrap;
}

.set-update-url p {
  word-break: break-all;
  opacity: .5;
  width: 100%;
  margin: .25em 0 .25em;
}

.external {
  text-align: center;
}

.external > * {
  margin: 0 7.5px;
}

li {
  margin-left: -2em;
}

.main {
  overflow: hidden;
}

.main,
.main .CodeMirror {
  height: 100% !important;
  width: 100% !important;
  border: none;
}

/* spinner-related */

#header {
  position: relative;
}

#header:not(.meta-init) > *:not(.lds-spinner),
#header.meta-init > .lds-spinner {
  -moz-user-select: none;
  user-select: none;
  pointer-events: none;
  opacity: 0;
}

#header.meta-init > * {
  opacity: 1;
  transition: opacity .5s;
  -moz-user-select: auto;
  user-select: auto;
}

label {
  padding-left: 16px;
  position: relative;
}
/* spinner: https://github.com/loadingio/css-spinner */

@keyframes lds-spinner {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.lds-spinner {
  position: absolute;
  width: 200px;
  height: 200px;
  top: 50px;
  left: 0;
  right: 0;
  margin: auto;
  opacity: .2;
  transition: opacity .5s;
}
.lds-spinner div {
  left: 94px;
  top: 23px;
  position: absolute;
  animation: lds-spinner linear 1s infinite;
  background: currentColor;
  width: 12px;
  height: 34px;
  border-radius: 20%;
  transform-origin: 6px 77px;
}
.lds-spinner div:nth-child(1) {
  transform: rotate(0deg);
  animation-delay: -0.916666666666667s;
}
.lds-spinner div:nth-child(2) {
  transform: rotate(30deg);
  animation-delay: -0.833333333333333s;
}
.lds-spinner div:nth-child(3) {
  transform: rotate(60deg);
  animation-delay: -0.75s;
}
.lds-spinner div:nth-child(4) {
  transform: rotate(90deg);
  animation-delay: -0.666666666666667s;
}
.lds-spinner div:nth-child(5) {
  transform: rotate(120deg);
  animation-delay: -0.583333333333333s;
}
.lds-spinner div:nth-child(6) {
  transform: rotate(150deg);
  animation-delay: -0.5s;
}
.lds-spinner div:nth-child(7) {
  transform: rotate(180deg);
  animation-delay: -0.416666666666667s;
}
.lds-spinner div:nth-child(8) {
  transform: rotate(210deg);
  animation-delay: -0.333333333333333s;
}
.lds-spinner div:nth-child(9) {
  transform: rotate(240deg);
  animation-delay: -0.25s;
}
.lds-spinner div:nth-child(10) {
  transform: rotate(270deg);
  animation-delay: -0.166666666666667s;
}
.lds-spinner div:nth-child(11) {
  transform: rotate(300deg);
  animation-delay: -0.083333333333333s;
}
.lds-spinner div:nth-child(12) {
  transform: rotate(330deg);
  animation-delay: 0s;
}
@keyframes load3 {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/************ reponsive layouts ************/

@media (max-width: 850px) {
  body {
    overflow: hidden;
  }
  .container {
    flex-direction: column;
  }
  #header {
    flex: 0 1 auto;
    border-right: none;
    border-bottom: 1px dashed #AAA;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0;
  }
  #header:not(.meta-init) {
    min-height: 300px;
  }
  .main {
    flex: 1;
  }
  #header-content-wrapper {
    display: flex;
    flex-wrap: wrap;
    padding: .5rem 0 0 1rem;
    box-sizing: border-box;
    height: min-content;
  }
  #header-content-wrapper > * {
    flex-grow: 1;
    margin: 0;
    padding: 0 1rem .5rem 0;
    min-width: 0;
  }
  #header-content-wrapper > .meta-description + .flex-wrapper {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 0;
  }
  #header-content-wrapper > .meta-description + .flex-wrapper > * {
    display: flex;
    flex-direction: column;
    flex: 1;
    flex-wrap: wrap;
    white-space: nowrap;
    padding: 0 1rem .5rem 0;
    box-sizing: border-box;
  }
  .flex-wrapper ul {
    margin: 0;
  }
  #header-content-wrapper > .meta-description {
    flex-basis: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .actions {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .set-update-url p {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .actions label {
    min-width: 100px;
    flex: 1;
  }
  .actions label span {
    white-space: nowrap;
  }
  .has-warnings #header {
    min-height: 4em;
    max-height: 20%;
  }
  .warnings {
    max-height: 20%;
  }
  .warning:not(:last-child) {
    border-bottom: 1px dashed #b57c7c;
    padding-bottom: 1em;
  }
  ul.applies-to,
  .actions label {
    margin: 0;
  }
  #header-content-wrapper > h1 {
    font-size: 1.75em;
    display: flex;
    align-items: baseline;
  }
  #header-content-wrapper > h1 > .meta-version {
    padding-left: 3px;
  }
  #header-content-wrapper > h1 > .meta-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  #header-content-wrapper > * h3 {
    margin: 0 0 .5rem;
  }
  .install {
    flex-shrink: 0;
    margin-right: 1em;
  }
}

/* Retina-specific stuff here */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .install:after {
    background-image: url(../images/icon/32.png);
    background-size: 16px 16px;
  }
}