.nb-booking-wrap {
  width: 100%;
}

.nb-message {
  margin-bottom: 1rem;
  padding: 0.95rem 1rem;
  border-radius: 16px;
  border: 1px solid rgba(73, 222, 197, 0.24);
  background: rgba(0, 0, 0, 0.46);
  color: #d8fbff;
}

.nb-message--success {
  border-color: rgba(73, 222, 197, 0.5);
}

.nb-message--error {
  border-color: rgba(255, 120, 120, 0.35);
}

.nb-message--info {
  border-color: rgba(145, 245, 255, 0.22);
  color: rgba(216, 251, 255, 0.84);
}

.nb-message ul {
  margin: 0;
  padding-left: 1.1rem;
}

.nb-booking-form {
  display: grid;
  gap: 1rem;
}

.nb-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.nb-field {
  display: grid;
  gap: 0.45rem;
}

.nb-field label {
  font-weight: 600;
  color: #d8fbff;
}

.nb-booking-form input,
.nb-booking-form select,
.nb-booking-form textarea,
.nb-readonly-field {
  width: 100%;
  min-height: 52px;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(73, 222, 197, 0.28);
  border-radius: 16px;
  background: rgba(0, 0, 0, 0.82);
  color: #d8fbff;
  box-sizing: border-box;
  box-shadow: inset 0 0 0 1px rgba(73, 222, 197, 0.06);
  appearance: none;
  -webkit-appearance: none;
}

.nb-readonly-field {
  display: flex;
  align-items: center;
}

.nb-booking-form textarea {
  min-height: 150px;
  resize: vertical;
}

.nb-booking-form input::placeholder,
.nb-booking-form textarea::placeholder {
  color: rgba(216, 251, 255, 0.46);
}

.nb-booking-form input:focus,
.nb-booking-form select:focus,
.nb-booking-form textarea:focus {
  outline: none;
  border-color: rgba(145, 245, 255, 0.72);
  background: rgba(0, 0, 0, 0.92);
  box-shadow:
    0 0 0 3px rgba(73, 222, 197, 0.12),
    0 0 18px rgba(73, 222, 197, 0.08);
}

.nb-booking-form select {
  padding-right: 3rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2391f5ff' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: calc(100% - 16px) center;
  background-size: 16px 16px;
}

.nb-booking-form select option {
  background: #050505;
  color: #d8fbff;
}

.nb-booking-form input[type="date"] {
  /* color-scheme: dark; */
}

.nb-booking-form input[type="date"]::-webkit-calendar-picker-indicator {
  filter: invert(1) brightness(1.2);
  opacity: 0.8;
  cursor: pointer;
}

.nb-slot-picker {
  min-height: 52px;
}

.nb-slot-empty {
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 0.85rem 1rem;
  border: 1px dashed rgba(73, 222, 197, 0.22);
  border-radius: 16px;
  color: rgba(216, 251, 255, 0.62);
  background: rgba(0, 0, 0, 0.24);
}

.nb-slot-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 0.75rem;
}

.nb-slot-button {
  min-height: 48px;
  padding: 0.8rem 0.95rem;
  border: 1px solid rgba(73, 222, 197, 0.24);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.72);
  color: #d8fbff;
  font-weight: 600;
  cursor: pointer;
  transition:
    transform 0.18s ease,
    border-color 0.18s ease,
    background 0.18s ease,
    box-shadow 0.18s ease;
}

.nb-slot-button:hover {
  transform: translateY(-1px);
  border-color: rgba(145, 245, 255, 0.62);
  background: rgba(73, 222, 197, 0.08);
}

.nb-slot-button.is-selected {
  border-color: rgba(145, 245, 255, 0.78);
  background: linear-gradient(135deg, rgba(73, 222, 197, 0.26), rgba(145, 245, 255, 0.14));
  box-shadow:
    0 0 0 1px rgba(73, 222, 197, 0.12),
    0 0 18px rgba(73, 222, 197, 0.14);
}

.nb-actions {
  margin-top: 0.75rem;
}

.nb-submit.nexus-button {
  width: 100%;
  min-height: 56px;
  border-radius: 999px;
  border: 1px solid rgba(145, 245, 255, 0.55);
  background: linear-gradient(135deg, rgba(73, 222, 197, 0.24), rgba(145, 245, 255, 0.1));
  color: #d8fbff;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  box-shadow:
    0 0 0 1px rgba(73, 222, 197, 0.08),
    0 0 24px rgba(73, 222, 197, 0.14);
  cursor: pointer;
  transition:
    transform 0.22s ease,
    border-color 0.22s ease,
    background 0.22s ease,
    box-shadow 0.22s ease;
}

.nb-submit.nexus-button:hover {
  transform: translateY(-2px);
  border-color: rgba(145, 245, 255, 0.78);
  background: linear-gradient(135deg, rgba(73, 222, 197, 0.34), rgba(145, 245, 255, 0.16));
  box-shadow:
    0 0 0 1px rgba(73, 222, 197, 0.12),
    0 0 30px rgba(73, 222, 197, 0.18);
}

.nb-submit.nexus-button:disabled {
  opacity: 0.65;
  cursor: not-allowed;
  transform: none;
}

.nb-submit--danger.nexus-button {
  background: linear-gradient(135deg, rgba(255, 110, 110, 0.18), rgba(255, 160, 160, 0.08));
  border-color: rgba(255, 160, 160, 0.42);
}

.nb-submit--danger.nexus-button:hover {
  background: linear-gradient(135deg, rgba(255, 110, 110, 0.28), rgba(255, 160, 160, 0.12));
  border-color: rgba(255, 180, 180, 0.62);
}

.nb-manage-wrap {
  display: grid;
  gap: 1.2rem;
}

.nb-manage-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 1.2rem;
}

.nb-manage-card {
  padding: 1.4rem;
  border: 1px solid rgba(73, 222, 197, 0.24);
  border-radius: 24px;
  background: rgba(0, 0, 0, 0.46);
  backdrop-filter: blur(10px);
  box-shadow: 0 0 28px rgba(73, 222, 197, 0.1);
}

.nb-manage-card--wide {
  padding: 1.6rem;
}

.nb-manage-card.is-emphasized {
  box-shadow:
    0 0 0 1px rgba(145, 245, 255, 0.14),
    0 0 30px rgba(73, 222, 197, 0.16);
}

.nb-manage-kicker {
  margin: 0 0 0.55rem;
  color: #49dec5;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.78rem;
  font-weight: 700;
}

.nb-manage-card h2,
.nb-manage-card h3 {
  margin: 0 0 0.8rem;
  color: #d8fbff;
  font-family: "Sora", "Poppins", sans-serif;
  line-height: 1.08;
}

.nb-manage-summary {
  display: grid;
  gap: 0.55rem;
  line-height: 1.65;
  color: rgba(216, 251, 255, 0.88);
}
.nb-timezone-note {
  margin-bottom: 0.55rem;
  font-size: 0.9rem;
  line-height: 1.5;
  color: rgba(216, 251, 255, 0.72);
}
.nb-inquiry-panel {
  margin-top: 1.5rem;
  padding: 1.4rem;
  border: 1px solid rgba(73, 222, 197, 0.22);
  border-radius: 24px;
  background: rgba(0, 0, 0, 0.42);
  backdrop-filter: blur(10px);
  box-shadow: 0 0 24px rgba(73, 222, 197, 0.08);
}

.nb-inquiry-panel.is-recommended {
  border-color: rgba(145, 245, 255, 0.62);
  box-shadow:
    0 0 0 1px rgba(145, 245, 255, 0.12),
    0 0 28px rgba(73, 222, 197, 0.18);
}

.nb-inquiry-header {
  margin-bottom: 1rem;
}

.nb-inquiry-header h2 {
  margin: 0 0 0.6rem;
  color: #d8fbff;
  font-family: "Sora", "Poppins", sans-serif;
  line-height: 1.08;
}

.nb-inquiry-header p {
  margin: 0;
  color: rgba(216, 251, 255, 0.82);
  line-height: 1.7;
}

.nb-inquiry-form {
  display: grid;
  gap: 1rem;
}

.nb-inquiry-form input,
.nb-inquiry-form textarea {
  width: 100%;
  min-height: 52px;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(73, 222, 197, 0.28);
  border-radius: 16px;
  background: rgba(0, 0, 0, 0.82);
  color: #d8fbff;
  box-sizing: border-box;
  box-shadow: inset 0 0 0 1px rgba(73, 222, 197, 0.06);
}

.nb-inquiry-form textarea {
  min-height: 150px;
  resize: vertical;
}

.nb-inquiry-form input:focus,
.nb-inquiry-form textarea:focus {
  outline: none;
  border-color: rgba(145, 245, 255, 0.72);
  background: rgba(0, 0, 0, 0.92);
  box-shadow:
    0 0 0 3px rgba(73, 222, 197, 0.12),
    0 0 18px rgba(73, 222, 197, 0.08);
}
.nb-slot-empty--email-mode {
  border-style: solid;
  border-color: rgba(145, 245, 255, 0.42);
  color: rgba(216, 251, 255, 0.88);
  background: rgba(0, 0, 0, 0.42);
}
.nb-turnstile-wrap {
  margin-top: 1rem;
  margin-bottom: 0.5rem;
}

.nb-slot-empty--email-mode {
  border-style: solid;
  border-color: rgba(145, 245, 255, 0.42);
  color: rgba(216, 251, 255, 0.88);
  background: rgba(0, 0, 0, 0.42);
}







@media (max-width: 768px) {
  .nb-field-grid,
  .nb-manage-grid {
    grid-template-columns: 1fr;
  }

  .nb-slot-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.nb-field-note {
  color: rgba(216, 251, 255, 0.58);
  font-weight: 500;
  font-size: 0.88em;
}

.nb-booking-form input:invalid,
.nb-booking-form select:invalid,
.nb-booking-form textarea:invalid {
  border-color: rgba(255, 120, 120, 0.42);
}
