/* General */
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

body, html, p {
  margin: 0;
  padding: 0;
}

body {
  font-family: 'Inter', sans-serif;
  text-align: center;
  background-color: #F6F6F6;
}

/* Login Page */
.oyen-bg-color {
  background-color: #F9732A;
}

#loginContainer{
  min-height: 100dvh;
  padding: 40px 20px 0 20px;
  margin: auto;
  background-color: #F9732A;
  position: relative;
}

.white-bg-border {
  background-color: #FFFFFF;
  border-radius: 16px;
  padding: 40px 12px;
}

.logo {
  width: 175px;
  height: auto;
  margin-bottom: 24px;
}

img.left, img.right {
  max-width: 160px;
  height: auto;
  position: absolute;
  bottom: 0;
}

.bottom-decor img.left {
  left: 0;
}

.bottom-decor img.right {
  right: 0;
}

/* Choose Buddy Page */
#chooseBuddy{
  min-height: 100dvh;
  padding: 40px 20px 0 20px;
  margin: auto;
  background-color: #F6F6F6;
  position: relative;
}
.buddy-container {
  width: 90%;
  margin: auto;
  padding: 80px 0 0 0;
  min-height: 90dvh;
}

.buddyOptions {
  display: flex;
  gap: 20px;
  flex-direction: column;
}

.buddyWrapper {
  background: url('../media/buddy-card-bg.png') no-repeat center;
  background-size: cover;
  box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.25);
  border-radius: 16px;
  overflow: hidden;
}

.buddyWrapper input[type="radio"] {
  display: none;
}

.buddyWrapper.selected-buddy {
  border: 10px solid #0A1788;
}

.flex-buddy {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  position: relative;
}

.buddyLabel {
  font-family: 'Montserrat', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: #FFF;
  background-color: #0A1788;
  padding: 20px 20px 10px 40px;
  border-radius: 8px;
  letter-spacing: 2px;
  width: 100px;
  position: absolute;
  top: -6px;
  left: -6px;
}

.buddyDesc {
  padding: 50px 20px 20px 20px;
}

.buddyDesc p {
  font-family: 'Montserrat', sans-serif;
  color: #fff;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 2px;
}

/* Button */
.btn-label {
  font-family: 'Inter', sans-serif;
  color: white;
  font-weight: 500;
  text-decoration: none;
  font-size: 16px;
  line-height: 24px;
}

.action-btn {
  display: inline-block;
  padding: 14.5px 20px;
  background-color: #0A1788;
  border-radius: 8px;
  width: 100%;
  border: none;
  box-shadow: 0px 3px 5px 2px #04271E33;
  cursor: pointer;
}

.action-btn:hover {
  background-color: #0a1477;
}

.action-btn.disabled {
  background-color: #D6D6D6;
  cursor: not-allowed;
  box-shadow: unset;
}

.btn-label.mini {
  font-size: 10px;
  line-height: 14px;
}

.action-btn.mini {
  padding: 8px 10px;
  border-radius: 5px;
  margin-top: 9px;
}

.btn-redeem {
  display: inline-block;
  padding: 12px 65px;
  background-color: #ED1C24;
  color: white;
  font-weight: 600;
  text-decoration: none;
  border-radius: 8px;
  border: none;
  box-shadow: 0px 3px 5px 2px #04271E33;
  transition: background-color 0.3s ease;
  margin-bottom: 40px;
  cursor: pointer;
}

.btn-redeem:hover {
  background-color: #b00c0f;
  color: white;
}

.btn-redeem:disabled, .btn-alreadyRedeem:disabled {
  background-color: #DFDFDF;
  color: #B8B8B8;
  cursor: not-allowed;
}

.btn-cancel {
  display: inline-block;
  padding: 12px 65px;
  background-color: #1c7ded;
  color: white;
  font-weight: 600;
  text-decoration: none;
  border-radius: 8px;
  border: none;
  box-shadow: 0px 3px 5px 2px #04271E33;
  transition: background-color 0.3s ease;
  cursor: pointer;
}

.btn-cancel:hover {
  background-color: #b00c0f;
  color: white;
}

.btn-redeem:hover {
  background-color: #b00c0f;
  color: white;
}

.close-btn{
  background: rgba(0, 0, 0, 0.3);
  width: 45px;
  height: 45px;
  border-radius: 50%;
  border: none;
  cursor: pointer;
}

/* Footer */
.footer {
  position: relative;
  background-color: #0A1788;
  padding: 12px 16px;
  text-align: center;
  width: -webkit-fill-available;
  bottom: 0;
}

.footer p {
  font-size: 12px;
  line-height: 16px;
  color: #FFFFFF;
  font-weight: 600;
}

/* Header */
header {
  background-color: #F9732A;
  padding: 11px 16px;
  position: relative;
  z-index: 2;
}

.navbar {
  color: #fff;
  padding: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 600px;
  margin: auto;
}

a.navbar-brand {
  color: #fff;
  font-weight: 500;
  font-size: 16px;
  line-height: 20px;
  text-decoration: none;
}

a.navbar-brand:hover {
  color: #0A1788;
}

.navbar-user-info {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 500;
}

.user-icon {
  background-color: #0A1788;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  overflow: hidden;
}

/* Digital Passport Page */
.oyen-bg {
  background: url(../media/oyen-passport-bg.png) no-repeat center;
  background-size: cover;
  position: relative;
}

.oyen-passport {
  max-width: 85%;
  margin: auto;
  border-radius: 16px 16px 0 0;
  padding: 50px 16px 70px 16px;
  position: relative;
  background-color: #FFF;
  box-shadow: 0px 4px 19px 0px #5C391740;
}

.quest-bg {
  position: relative;
  background-color: #F6F6F6;
  padding: 0 20px 80px 20px;
  min-height: 100dvh;
}

/* Spacing */
.mw-600 {
  max-width: 600px;
  margin: auto;
}
.mh-100{
  min-height: 100dvh;
}

.br-15 {
  border-radius: 15px;
}

.overlay-orange {
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(90deg, rgba(221, 74, 75, 0.82) 0%, rgba(235, 75, 35, 0.82) 51.44%, rgba(243, 168, 35, 0.82) 100%);
  width: 100%;
  height: 100%;
}

.login-link {
  margin-top: 32px;
  font-weight: 500;
  font-size: 16px;
  line-height: 24px;
}

.login-link a {
  color: #ED1C24;
  font-weight: 600;
  text-decoration: none;
}

.hide {
  display: none !important;
}

.show {
  display: block;
}

.webTitle {
  color: black;
  font-weight: 700;
  font-size: 26px;
  line-height: 30px;
  text-align: center;
  margin-bottom: 32px;
}

.webTitle-red {
  font-size: 20px;
  font-weight: 700;
  color: #ED1C24;
  margin-bottom: 8px;
  text-align: center;
}

.webTitle-white {
  font-size: 20px;
  font-weight: 500;
  color: #fff;
  text-align: center;
  position: relative;
  z-index: 1
}

.white-text {
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
  position: relative;
  z-index: 1;
}

a.white-text:hover {
  color: #ED1C24;
}

.half-top {
  position: relative;
  top: -24px;
  ;
}

/************* Booth page *************/
.booth-container {
  background-color: #fff;
  border: 1px solid #D6D6D6;
  border-radius: 8px;
  padding: 0;
  margin-bottom: 20px;
}

.top-status {
  background: #F6F6F6;
  border: 1px solid #D6D6D6;
  padding: 10px 16px;
  border-radius: 8px 8px 0 0;
  text-align: left
}

.top-status p {
  margin-bottom: 0;
  font-weight: 600;
  font-size: 14px;
  color: #0A1788;
}

.status-complete {
  color: inherit;
}

.status-incomplete {
  color: #ADADAD;
}

.bottom-status {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  padding: 22px 17px 36px 17px;
  position: relative;
}

.bottom-status p {
  font-size: 14px;
  font-weight: 500;
  color: #2e2e2e;
  text-align: left;
  margin-bottom: 0;
}

.left-side {
  max-width: 60%;
}

.stationName {
  color: #0A1788 !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  line-height: 18px !important;
  margin-bottom: 0 !important;
}

.activityName {
  color: #000!important;
  font-weight: 500 !important;
  font-size: 14px !important;
  line-height: 18px !important;
  margin-bottom: 0 !important;
}

.stamp-container {
  width: 94px;
  height: 94px;
  border: 1px solid #D6D6D6;
  border-radius: 50%;
  background: #F6F6F6;
  position: absolute;
  top: -15px;
  right: 16px;
  display: inline-block;
  padding: 10px;
  overflow: hidden;
}

.stamp-container.success {
  background:linear-gradient(139.62deg, #FF9D67 16.98%, #F9732A 72.02%);
}

.stamp-container img {
  max-width: 90px;
  height: auto;
  transition: opacity 0.3s ease;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.stamp-container a, .stamp-container p {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-decoration: none;
  width: max-content;
  margin-bottom: 0;
}

.stamp-container p{
  color: #FFFFFF;
  font-weight: 800;
  font-size: 12px;
  line-height: 18px;
  text-align: center;
}

.stamp-container a{
  color: #0A1788;
  font-weight: 600;
  font-size: 12px;
}

.stamp-container.success {
  margin-top: 0;
}

/***** MODAL Scanner *****/
#reader {
  width: 100% !important;
  min-height: 300px;
}
#reader video {
  width: 100% !important;
  height: auto !important;
}

.status-container{
  background: #FFFFFF;
  border-radius: 12px;
  padding: 20px;
  position: relative;
}

#statusTitle {
  color: #fff;
  font-size: 20px;
  font-weight: 600;
  text-align: center;
  margin-bottom: 10px;
  text-shadow: 0px 0px 4px #FFFFFF80;
}

#statusMessage{
  color: #0A1788;
  font-weight: 600;
  font-size: 16px;
  margin-bottom: 0;
  text-align: center;
}

/***** Reward MODAL *****/
.rheader-popup {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 10px 0 10px;
  text-align: center;
}

.rheader-popup p{
  font-size: 20px;
  color: #fff;
  font-weight: 600;
  text-shadow: 0px 0px 4px #FFFFFF80;
}

.r-popup-content{
  background-color: #FFFFFF;
  border-radius: 15px;
  padding: 12px;
}

.redeem-box{
  box-shadow: 0px 4px 10px 0px #0000001A inset;
  border-radius: 12px;
  padding: 12px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
}

.reward-text{
  color: #0A1788;
  font-weight: 600;
  font-size: 16px;
  line-height: 18px;
  text-align: left;
  margin-bottom: 9px;
}

/***** Warning MODAL *****/
.w-popup p{
  color: #fff; 
  text-align: center;
}

footer.w-popup {
  padding: 0 20px 20px;
  display: flex;
  justify-content: right;
  align-items: center;
}

.wpopup-btn-container {
  display: flex;
  align-items: end;
  gap: 8px;
  justify-content: flex-end;
}

/***** MODAL Plinko *****/
.plinko-area {
  width: 450px;
  height: auto;
  max-height: 90vh;
  overflow-y: auto;
  border-radius: 16px;
  background-color: #E7ECFF;
  box-shadow: 0 2px 15px rgba(34, 34, 53, 0.1);
  margin: 10px auto;
}

.header-plinko {
  color: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px;
  text-align: center;
  background: url(/media/p-header-bg.png) no-repeat center;
  background-size: cover;;
  border-radius: 16px 16px 0 0;
}

.hp-orange-label{
  background-color: #FE6D2D; 
  padding: 3px 10px; 
  border-radius: 20px; 
  font-size: 7px; 
  font-weight: 700; 
  margin-bottom: 4px;
}

.plinko-title{
  color: #271E4B; 
  font-size: 10px; 
  font-weight: 700;
  text-align: left;;
  margin-bottom: 7px;
}

.plinko-shadow-card{
  background-color: #fff;
  padding: 10px;
  border-radius: 7px;
  box-shadow: 0px 1.22px 1.53px 0px #00000026;
  display: flex;
  gap: 7px;
}

.plinko-shadow-card p{
  font-size: 8px;
  font-weight: 400;
  color: #271E4B;
  text-align: left;
}

.plinko-shadow-card.flex-row{
  flex-direction: row;
  align-items: center;
  margin-bottom: 4px;
}

.plinko-shadow-card.flex-column{
  flex-direction: column;
  align-items: flex-start;
  margin-bottom: 4px;
}

/* Entire MODAL */
.scannerModal, .rewardModal, .warningModal, .plinko-container {
  display: none;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.4);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transition: 0.3s visibility ease-in, opacity 0.3s ease-out;
  visibility: hidden;
  opacity: 0;
}

.scannerModal, .warningModal, .plinko-container{
  z-index: 1000;
}

.rewardModal{
  z-index: 999;
}

.scannerModal.show, .rewardModal.show, .plinko-container.show, .warningModal.show {
  visibility: visible;
  opacity: 1;
}

.scannerPopup, .rewardPopup, .warningPopup {
  max-height: 90vh;
  border-radius: 20px;
  width: 60vw;
  background: linear-gradient(180deg, #F98B2A 0%, #DA4D00 100%);
  box-shadow: 0 2px 15px rgba(34, 34, 53, 0.1);
  margin-bottom: 20px;
}

main.scanner-popup, main.r-popup, main.w-popup, main.cc-plinko{
  display: flex;
  flex-direction: column;
  justify-content: unset;
}

main.scanner-popup, main.w-popup {
  padding: 16px;
  align-items: center;
}

main.r-popup {
  padding: 0 15px 15px 15px;
  align-items: unset;
}

main.cc-plinko {
  background-color: #E7ECFF;
  padding: 0 0 20px;
  align-items: center;
}

@media screen and (max-width: 600px) {
  .close-btn {
    width: 40px;
    height: 40px;
  }
  .plinko-area {
    max-height: 85vh;
  }
  .scannerPopup, .rewardPopup, .plinko-area {
    width: 90vw;
  }
}