* {
  margin:0;
  padding:0;
  font-family: 'Source Sans Pro', sans-serif;
}

body {
  background:#2c3e50; /*From http://flatuicolors.com/ */
}

form {
  position:relative;
  width:360px;
  margin:50px auto;
  text-align:center;
  background:#ecf0f1;
  padding:40px;
  -webkit-border-radius:20px 0 0 0;
     -moz-border-radius:20px 0 0 0;
          border-radius:20px 0 0 0;
  -webkit-box-shadow: 0px 1px 0px #ad392d, inset 0px 1px 0px white;
     -moz-box-shadow: 0px 1px 0px #ad392d, inset 0px 1px 0px white;
          box-shadow: 0px 1px 0px #ad392d, inset 0px 1px 0px white;
  box-shadow: 20px 20px 20px;
    top: 0px;
    left: 0px;
}

h4 {
  font-family: 'Source Sans Pro', sans-serif;
  font-size:2em;
  font-weight:300;
  margin-bottom:25px;
  color:#7f8c8d;
  text-shadow:1px 1px 0px white;
}

input {
  display:block;
  width:315px;
  padding:14px;
  -webkit-border-radius:6px;
     -moz-border-radius:6px;
          border-radius:6px;
  border:0;
  margin-bottom:12px;
  color:#7f8c8d;
  font-weight:600;
  font-size:16px;
}

input:focus {
  background:#fafafa;
}


li {
  position:absolute;
  right:40px;
  bottom:62px;
  list-style:none;
}

a, a:visited {
  text-decoration:none;
  color:#7f8c8d;
  font-weight:400;
  text-shadow:1px 1px 0px white;
  -webkit-transition: all .3s ease-in-out;
     -moz-transition: all .3s ease-in-out;
          transition: all .3s ease-in-out;
}

.button {
  position:relative;
  float:none;
  width:120px;
  height:auto;
  margin-top:10px;
  background:#3498db;
  color:#fff;
  font-weight:400;
  text-shadow:1px 1px 0px #2d7baf;
  box-shadow:3px 5px 3px #7f8c8d;
  -webkit-transition: all .3s ease-in-out;
     -moz-transition: all .3s ease-in-out;
          transition: all .3s ease-in-out;
}

.loading-spinner {
    display: none;
    position: fixed;
    z-index: 9999;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(0, 0, 0, 0.6); /* Semi-transparent background */
    backdrop-filter: blur(5px); /* Apply blur effect */
}

.spinner {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 3px solid #f1f1f1;
    border-top-color: #3498db;
    animation: spin 1s infinite linear;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.loading-message {
    margin-top: 10px;
    font-weight: bold;
    color: #fff;
}

.loading-dots {
    display: inline-block;
    animation: blink 1s infinite;
}

@keyframes blink {
    0%, 50%, 100% {
        opacity: 0;
    }

    25%, 75% {
        opacity: 1;
    }
}

.spinner-container {
    margin-right: 10px;
}

.loading-spinner > div {
    display: block;
}

.loading-spinner > div .spinner {
    margin: 0 auto;
}






