
    /* ===== Overall Page ===== */
    body {
      font-family: 'Segoe UI', Roboto, sans-serif;
      /*background: linear-gradient(135deg, #e0f2f1 0%, #fef9e7 100%);*/
      /*background: top url('/../img/aymos-stage.jpg');*/
      background-size: 100%;
      margin: 0;
      padding: 40px 20px;
      color: #2f3d3e;
  display: flex;
  justify-content: center; /* horizontal centering */
  align-items: center;     /* vertical centering */
  min-height: 100vh;       /* ensures full viewport height */
    }

    h2 {
      font-size: 26px;
      text-align: center;
      color: #00695c;
      margin-bottom: 25px;
      letter-spacing: 1px;
      font-weight: 600;
    }

/* ===== Crew Form Glass Panel ===== */
#crewForm {
  position: relative; /* important to contain the arrow */
  background: rgba(255, 255, 255, 0.15); /* soft transparent glass */
  border-radius: 15px;
  padding: 20px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(12px) saturate(180%) contrast(110%);
  -webkit-backdrop-filter: blur(12px) saturate(180%) contrast(110%);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);

  max-width: 100%;      /* never overflow horizontally */
  max-height: 80vh;     /* max height 80% of viewport */
  overflow-x: auto;      /* horizontal scroll if needed */
  overflow-y: auto;      /* vertical scroll if content grows */
  top: auto;
  /*bottom: 50%;*/
}

/* ===== Table Container Inside Glass ===== */
.table-container {
  width: 90%;
  overflow-x: auto;   /* horizontal scroll if table too wide */
  -webkit-overflow-scrolling: touch; /* smooth scrolling on iOS */
  background: rgba(255, 255, 255, 0.1); /* extra subtle glass overlay */
  border-radius: 12px;
  padding: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  margin: auto;
  max-height: 60vh; /* control vertical scroll */
  overflow-y: auto; /* scroll only tbody */
}

/* Hide scrollbar for a specific element */
.table-container::-webkit-scrollbar {
  display: none;
}

#crewForm::-webkit-scrollbar {
  display: none;
}

body::-webkit-scrollbar {
  display: none;
}

/* ===== Table Styling ===== */
table {
  width: 100%;
  border-collapse: collapse;
}

/* ===== Responsive Adjustment ===== */
@media (max-width: 1200px) {
  table {
    min-width: 900px; /* reduce minimum width on smaller screens */
  }
}

@media (max-width: 900px) {
  #crewForm {
    padding: 15px;
  }
  table {
    min-width: 700px;
  }
}

    th, td {
      padding: 10px 8px;
      text-align: center;
      font-size: 14px;
      border-bottom: 1px solid #e0e0e0;
      white-space: nowrap;
    }

    th {
      background: #00897b;
      color: white;
      font-weight: 600;
      text-transform: uppercase;
      font-size: 13px;
      letter-spacing: 0.5px;
    }

    tr:nth-child(even) {
      background: rgba(255,255,255,.25);
    }

    tr:hover {
      /*background: #e0f7fa;*/
      background: rgba(255,255,255,.1);
      transition: background 0.25s ease;
    }

    /* ===== Inputs ===== */
    input, select {
      /*width: 100%;*/
      padding: 7px 8px;
      border: 1px solid #ccc;
      border-radius: 6px;
      font-size: 13px;
      transition: border-color 0.3s, box-shadow 0.3s;
      /*text-align:;*/
      /*margin: 10px;*/
    }

    input:focus, select:focus {
      border-color: #00897b;
      box-shadow: 0 0 4px rgba(0, 137, 123, 0.4);
      outline: none;
    }


    .mobile-field {
      display: flex;
      /*gap: 6px;*/
      /*justify-content: center;*/
      /*align-items: center;*/
    }

    /*.mobile-field select {*/
    /*  width: 100%;*/
    /*}*/
    
    /*.mobile-field input{*/
    /*    width: 100%;*/
    /*}*/

    /* ===== Buttons ===== */
    .submit-btn, .toggle-btn {
      font-size: 14px;
      font-weight: 600;
      border: none;
      border-radius: 8px;
      padding: 10px 18px;
      cursor: pointer;
      transition: all 0.3s ease;
    }

    .add-row {
      background: #00897b;
      color: white;
      margin-top: 15px;
      display: inline-block;
      border-radius: 8px;
      border: none;
      padding: 10px 18px;
      cursor: pointer;
    }

    .add-row:hover {
      background: #00796b;
      transform: translateY(-2px);
      box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    }

    .remove-row {
      background: #e53935;
      color: white;
      padding: 6px 12px;
      border-radius: 5px;
      border: none;
    }

    .remove-row:hover {
      background: #c62828;
      transform: scale(1.05);
    }

    .submit-btn {
      margin-top: 25px;
      display: block;
      width: fit-content;
      margin-left: auto;
      margin-right: auto;
      background: #fbc02d;
      color: #004d40;
    }

    .submit-btn:hover {
      background: #f9a825;
      transform: translateY(-2px);
      box-shadow: 0 4px 10px rgba(251,192,45,0.4);
    }

.toggle-btn {
  position: relative;
  font-size: 12px;
  display: block;
  width: fit-content;
  margin: 10px auto;
  padding: 8px 18px;
  color: limegreen;
  background: rgba(0, 0, 0, 0);
  border: 1px solid white;
  border-radius: 5px;
  overflow: hidden;
  cursor: pointer;
}

/* Reflection swoosh overlay */
.toggle-btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(255, 255, 255, 0.5),
    transparent
  );
  transform: skewX(-25deg);
  animation: reflection 2s infinite;
}

/* Keyframes for the light sweep */
@keyframes reflection {
  0% {
    left: -75%;
  }
  100% {
    left: 125%;
  }
}

    .toggle-btn:hover {
      background: rgba(240,240,240,1);
      color: green;
      transform: translateY(-2px);
      box-shadow: 0 4px 10px rgba(251,192,45,0.4);
    }
    /* ===== Error Highlight ===== */
    .error {
      border: 2px solid #e53935 !important;
      background: #ffebee;
    }

    /* ===== Footer ===== */
    .footer {
      margin-top: 25px;
      text-align: center;
      font-size: 13px;
      color: white;
    }

    .footer span {
      font-weight: 700;
      color: #fbc02d;
    }

    /* ===== Confirmation Box ===== */
    .confirmation-box {
      margin: 20px auto;
      padding: 12px 18px;
      max-width: 400px;
      background: #fffde7;
      border: 1px solid #fbc02d;
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      font-size: 15px;
      color: #00695c;
      transition: background 0.3s;
    }

    .confirmation-box:hover {
      background: #fff9c4;
    }

    .confirmation-box input[type="checkbox"] {
      width: 18px;
      height: 18px;
      accent-color: #fbc02d;
      cursor: pointer;
    }

    .confirmation-box label {
      cursor: pointer;
      font-weight: 500;
      line-height: 1.4;
    }
    
    /* --- Row animation when adding a new crew member --- */
    @keyframes fadeSlideIn {
      0% {
        opacity: 0;
        transform: translateY(-12px);
      }
      100% {
        opacity: 1;
        transform: translateY(0);
      }
    }
    
    .fade-in-row {
      animation: fadeSlideIn 0.4s ease-out forwards;
    }
    
    /* --- Row removal animation --- */
    @keyframes fadeSlideOut {
      0% {
        opacity: 1;
        transform: translateY(0);
      }
      100% {
        opacity: 0;
        transform: translateY(-10px);
      }
    }
    
    .fade-out-row {
      animation: fadeSlideOut 0.35s ease-in forwards;
    }
    
    /* --- Popup Notification Styling --- */
    .popup-message {
      position: fixed;
      top: 20px;
      right: 20px;
      padding: 14px 22px;
      border-radius: 10px;
      color: #fff;
      font-weight: 600;
      box-shadow: 0 6px 16px rgba(0,0,0,0.15);
      opacity: 0;
      transform: translateY(-10px);
      transition: all 0.4s ease;
      z-index: 9999;cover
      pointer-events: none;
    }
    
    .popup-message.show {
      opacity: 1;
      transform: translateY(0);
    }
    
    .popup-success {
      background: linear-gradient(135deg, #26a69a, #00796b);
    }
    
    .popup-error {
      background: linear-gradient(135deg, #ef5350, #c62828);
    }

    .row-no{
        color: #fbc02d;
    }
    
/* === Modern Swipe Arrow Hint (Safari Compatible) === */
.swipe-hint {
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  /*background: rgba(0, 137, 123, 0.85);*/
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 5;
  -webkit-transform: translateY(-50%);
  /*-webkit-tap-highlight-color: transparent;*/
  /*box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);*/
  transition: all 0.3s ease;
  /*animation: pulseGlow 2.2s infinite ease-in-out;*/
  /*backdrop-filter: blur(8px);*/
  /*-webkit-backdrop-filter: blur(8px);  Safari fix */
}

.swipe-hint:hover {
  transform: translateY(-50%) scale(1.1);
  /*background: rgba(0, 137, 123, 1);*/
}

/* === Arrow Shape === */
.swipe-arrow {
  position: absolute;
  width: 60%;
  height: 60%;
  border-top: 3px solid white;
  border-right: 3px solid white;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  animation: arrowSlide 1.4s infinite ease-in-out;
  opacity: 0.95;
  transform: translateY(-50%);
  z-index: 5;
}

/* === Animation Fix for Safari === */
@keyframes arrowSlide {
  0%   { transform: rotate(45deg) translate(0, 0); opacity: 1; }
  50%  { transform: rotate(45deg) translate(6px, 0); opacity: 0.6; }
  100% { transform: rotate(45deg) translate(0, 0); opacity: 1; }
}

@-webkit-keyframes arrowSlide {
  0%   { -webkit-transform: rotate(45deg) translate(0, 0); opacity: 1; }
  50%  { -webkit-transform: rotate(45deg) translate(6px, 0); opacity: 0.6; }
  100% { -webkit-transform: rotate(45deg) translate(0, 0); opacity: 1; }
}

/* === Pulse Glow Effect === */
@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 10px rgba(0, 137, 123, 0.6); }
  50% { box-shadow: 0 0 20px rgba(0, 137, 123, 1); }
}

@-webkit-keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 10px rgba(0, 137, 123, 0.6); }
  50% { box-shadow: 0 0 20px rgba(0, 137, 123, 1); }
}

.crew-info-section {
  width: 85%;
  max-width: 600px;
  background: rgba(255, 255, 255, 0.1); /* extra subtle glass overlay */
  border-radius: 15px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
  padding: 20px 25px;
  margin: auto;
  margin-bottom: 25px;
}

.section-title {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 15px;
  color: white;
  text-transform: uppercase;
  text-align: left;
  border-bottom: 2px solid green;
  padding-bottom: 5px;
}

.main-user-info {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 20px;
  row-gap: 15px;
}

.user-input-box label {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: white;
  margin-bottom: 5px;
}

.user-input-box input {
  width: 80%;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #ccc;
  font-size: 14px;
  outline: none;
  transition: border 0.2s ease;
  margin: 0px 10px;
  background: rgba(255,255,255,.8);
}

.user-input-box input:focus {
  border-color: #007bff;
}



.top-bar{
    display: flex;
    /*border: 1px solid red;*/
    align-items: center;
}

.mobile-field {
  display: flex;
  align-items: center;
  gap: 6px;
}

.countryCode {
    color: grey;
  /*background: rgba(255, 255, 255, .8);*/
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 8px;
  padding: 10px;
  /*color: #fff;*/
  backdrop-filter: blur(12px) saturate(180%) contrast(110%);
  font-size: 14px;
  outline: none;
  /*width: 90px;*/
  appearance: none;
  text-align: center;
  transition: all 0.2s ease;
  margin: 0px 0 0 10px;
}

.countryCode:focus {
  border-color: #4bc0c8;
  box-shadow: 0 0 6px rgba(75, 192, 200, 0.6);
}

/*

/* ===== Modal Overlay ===== */
.entry-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
  transition: opacity 0.4s ease;
}

/* ===== Modal Box (same style as crew-info-section) ===== */
.entry-modal-content {
  width: 85%;
  max-width: 500px;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 15px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.25);
  backdrop-filter: blur(12px) saturate(180%) contrast(110%);
  padding: 30px 25px;
  text-align: center;
  color: white;
  animation: fadeSlideIn 0.5s ease-out;
}

/* ===== Modal Typography ===== */
.modal-title {
  font-size: 24px;
  font-weight: 600;
  margin-bottom: 10px;
  color: #fbc02d;
  text-transform: uppercase;
}

.modal-subtitle {
  font-size: 16px;
  margin-bottom: 25px;
  color: #e0e0e0;
}

/* ===== Modal Buttons ===== */
.modal-buttons {
  display: flex;
  justify-content: center;
  gap: 15px;
  flex-wrap: wrap;
}

.modal-btn {
  font-size: 15px;
  font-weight: 600;
  padding: 12px 22px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
  color: white;
}

.register-btn {
  background: linear-gradient(135deg, #26a69a, #00796b);
}

.register-btn:hover {
  background: linear-gradient(135deg, #00796b, #004d40);
  transform: translateY(-2px);
}

.ticket-btn {
  background: linear-gradient(135deg, #fbc02d, #f9a825);
  color: #004d40;
}

.ticket-btn:hover {
  background: linear-gradient(135deg, #f9a825, #f57f17);
  transform: translateY(-2px);
}

/* Fade-out animation */
.entry-modal-overlay.hide {
  opacity: 0;
  pointer-events: none;
}

/* ===== Improved Mobile Field Design ===== */

.mobile-field {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255,255,255,0.4);
  padding: 5px;
  border-radius: 10px;
  margin: 10px auto;
}

.mobile-field select.countryCode {
  appearance: none;
  background: rgba(255,255,255,0.18);
  border: 1px solid rgba(255,255,255,0.25);
  color: #fff;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 14px;
  min-width: 80px;
  cursor: pointer;
}

.mobile-field select.countryCode:focus {
  outline: none;
  border-color: #fbc02d;
  /*color: green;*/
}

.mobile-field select.countryCode:hover {
  color: green;
}

.mobile-field input.mobile {
  flex: 1;
  background: rgba(255,255,255,0.18);
  border: 1px solid rgba(255,255,255,0.25);
  color: #fff;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 14px;
}

.mobile-field input.mobile::placeholder {
  color: rgba(255,255,255,0.6);
}

.mobile-field input.mobile:focus {
  outline: none;
  border-color: #fbc02d;
}

/* ============ Mobile Only Improvements ============ */
@media (max-width: 600px) {
  .mobile-field {
    flex-direction: row;
    gap: 6px;
  }

  .mobile-field select.countryCode {
    min-width: 75px;
    font-size: 13px;
    padding: 9px 10px;
  }

  .mobile-field input.mobile {
    font-size: 14px;
    padding: 10px;
  }
}

.closeModal{
    color: crimson;
}

.closeModal:hover{
    cursor: pointer;
    color: #fbc02d;
}

.login-only {
  display: none !important;
}

.swing-out {
  animation: swingOut 0.45s forwards ease;
}

.swing-in {
  animation: swingIn 0.45s forwards ease;
}

@keyframes swingOut {
  0%   { transform: rotateX(0deg); opacity:1; }
  100% { transform: rotateX(90deg); opacity:0; height:0; margin:0; padding:0; }
}

@keyframes swingIn {
  0%   { transform: rotateX(90deg); opacity:0; }
  100% { transform: rotateX(0deg); opacity:1; }
}

