/* GLOBAL */


body {
  background: #f5f5f5;
  padding: 40px 20px 20px;
}
body.standalone {
  padding-top: 20px;
}
.standalone-visible {
  display: none;
}
body.standalone .standalone-visible {
  display: block;
}
body.standalone .standalone-hidden {
  display: none;
}

input, a {
  -webkit-transition: all 350ms linear;
  -moz-transition: all 350ms linear;
  -o-transition: all 350ms linear;
  transition: all 350ms linear;
}

@media (max-width: 768px) {
  body {
    padding: 15px 0;
  }
}

#info {
  font-size: 30px;
  position: absolute;
  top: 5px;
  right: 5px;
  width: 30px;
}
#info a {
  color: #000;
  opacity: 0.3;
}
#info a:hover {
  opacity: 1;
}


/* HEADER */

#intro {
  text-align: center;
  margin: 0 auto 30px;
}
#intro h1 {
  color: #333;
  font-family: "cortado",sans-serif;
  font-size: 60px;
  font-weight: 400;
}
#intro p {
  font-family: "proxima-nova",sans-serif;
  font-size: 20px;
  font-weight: 400;
  max-width: 860px;
  margin: 0 auto;
}

@media (max-width: 768px) {
  #intro {
    margin-bottom: 0;
    padding: 0 15px;
  }
  #intro h1 {
    font-size: 34px;
  }
  #intro p {
    font-size: 18px;
    line-height: 22px;
  }
}

body.unknown-auth #summary,
body.pending-auth #summary,
body.unauthorized #summary,
body.unknown-auth #ihttt-form,
body.authorized #loading,
body.pending-auth #loading,
body.unauthorized #loading,
body.authorized #ihttt-step-1,
body.pending-auth #ihttt-step-1,
body.authorized #ihttt-step-2,
body.unauthorized #ihttt-step-2,
body.unauthorized #ihttt-step-3,
body.pending-auth #ihttt-step-3,
#ihttt-logout,
.ihttt-step .success {
  display: none;
}
body.authorized #summary,
body.authorized #ihttt-form,
body.unauthorized #ihtt-form,
body.authorized #ihttt-logout,
body.pending-auth #ihttt-step-2 {
  display: block;
}

#loading,
#ihttt-form,
#ihttt-form input,
#ihttt-alert-container,
#summary {
  text-align: center;
}

#ihttt-alert-container {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
}


#summary {
  max-width: 500px;
  margin: 0 auto 15px;
}
#summary p {
  margin: 0;
}
#summary p:first-child {
  font-size: 20px;
}


/* FORM */

#ihttt-form {
  font-family: "proxima-nova",sans-serif;
  margin: 0 auto;
  max-width: 500px;
  background: #fff;
  padding: 40px;
  margin-top: 50px;
  border-radius: 5px;
}
body.authorized #ihttt-form {
  margin-top: 0px;
}
#ihttt-form label {
  font-size: 18px;
  line-height: 22px;
  font-weight: 400;
}
#ihttt-form label span {
  text-transform: uppercase;
  font-size: 24px;
  font-weight: 700;
}
.ihttt-step.invalid-input .invalid-feedback {
  display: block;
}
.ihttt-step.invalid-input input {
  border-color: #dc3545;
}

.flatpickr-calendar {
  margin: 0 auto;
}

.ihttt-step .success p {
  background: #00ffad;
  border-radius: 5px;
  font-size: 20px;
  line-height: 26px;
  padding: 10px;
}

@media (max-width: 768px) {

  #ihttt-form {
    padding: 20px;
  }
  input#timestamp-input {
    font-size: 17px;
  }
  #summary {
    margin-top: 15px;
  }
  #summary p:first-child {
    font-size: 18px;
  }
  .btn-group .row .btn {
    margin-bottom: 15px;
    display: block;
    width: 100%;
  }

}


#ihttt-logout {
  text-align: center;
  margin-top: 40px;
}
#ihttt-logout > a {
  color: #8a8a8a;
  font-family: "proxima-nova",sans-serif;
  font-weight: 300;
  text-decoration: underline;
}


/* INFO PANEL */

.info-panel {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: #fff;
  padding: 20px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
  transform: translateY(-100%);
  transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  z-index: 9999;
}

.info-panel.active {
  transform: translateY(0);
}

.info-content {
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
  position: relative;
}

.info-content p {
  margin: 8px 0;
  font-family: "proxima-nova", sans-serif;
  font-size: 18px;
  font-weight: 400;
}

.info-content p.info-subtitle {
  font-size: 14px;
  opacity: 0.9;
  font-weight: 300;
}

.info-content a {
  color: #fff;
  text-decoration: underline;
  font-weight: 600;
}

.info-content a:hover {
  opacity: 0.8;
}

.info-close {
  position: absolute;
  top: -10px;
  right: 0;
  background: transparent;
  border: none;
  color: #fff;
  font-size: 32px;
  cursor: pointer;
  padding: 0;
  width: 32px;
  height: 32px;
  line-height: 32px;
  opacity: 0.7;
  transition: opacity 0.3s;
}

.info-close:hover {
  opacity: 1;
}

@media (max-width: 768px) {
  .info-panel {
    padding: 15px;
  }
  
  .info-content p {
    font-size: 16px;
  }
  
  .info-content p.info-subtitle {
    font-size: 13px;
  }
}

