﻿/* Match Overview's controls and typography without changing page layouts. */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap');

.entry-page {
  --entry-ink: #1a2233;
  --entry-muted: #526074;
  --entry-border: #dfe4eb;
  --entry-focus: #64859c;
  font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
body.entry-page {
  font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}
.entry-page :is(h1, h2, h3, h4) {
  color: var(--entry-ink);
  font-weight: 600;
  letter-spacing: -.025em;
}
.entry-page h4 { font-size: 22px; }
.entry-page .auth-form-wrap h1 {
  font-size: clamp(26px, 3vw, 32px);
  line-height: 1.2;
  letter-spacing: -.035em;
}
.entry-page :is(.auth-intro, .alt-methods) {
  color: var(--entry-muted);
  font-size: 13px;
  line-height: 1.6;
}
.entry-page form { color: var(--entry-ink); font-size: 13px; }
.entry-page form label {
  color: #344054;
  font-size: 12px;
  font-weight: 500;
  margin-bottom: 7px;
}
.entry-page :is(.form-control, .form-select),
.entry-page .auth-form-wrap input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]) {
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid var(--entry-border);
  border-radius: 7px;
  background-color: #fff;
  color: #344054;
  font-family: inherit;
  font-size: 13px;
  font-weight: 400;
  box-shadow: none;
}
.entry-page :is(.form-control, .form-select):focus,
.entry-page .auth-form-wrap input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):is(:focus, :focus-visible) {
  border: 1px solid var(--entry-focus);
  outline: 2px solid #64859c;
  outline-offset: 2px;
  box-shadow: none;
}
.entry-page :is(.form-control, .auth-form-wrap input)::placeholder { color: #8a95a5; }
.entry-page :is(.form-text, .help-block) { color: var(--entry-muted); font-size: 12px; }
.entry-page :is(.invalid-feedback, .errorlist, .text-danger) { color: #a33737; font-size: 12px; }
.entry-page .form-check-input { accent-color: #40566a !important; }
.entry-page .form-check-input:checked { background-color: #40566a !important; border-color: #40566a; }
.entry-page .form-check-input:focus { border-color: #64859c; box-shadow: 0 0 0 3px #64859c1a; }
.entry-page .form-check-label { font-weight: 400; }
.entry-page .auth-form-wrap .form-check-label { font-size: 12px; font-weight: 400; }
.entry-page .btn {
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid var(--entry-border);
  border-radius: 7px;
  background: #fff;
  color: #344054;
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  box-shadow: none;
}
.entry-page .btn:hover { border-color: #c6d0dc; background: #edf1f5; color: #344054; }
.entry-page .btn:is(.btn-primary, .btn-dark) {
  background: #1a2233;
  border-color: #1a2233;
  color: #fff;
}
.entry-page .btn:is(.btn-primary, .btn-dark):hover { background: #2d3d52; border-color: #2d3d52; color: #fff; }
.entry-page .btn:disabled { opacity: .45; }
.entry-page .auth-actions .btn-pill { min-height: 42px; font-size: 13px; }
.entry-page .auth-links a, .entry-page .link-dark { color: var(--entry-muted); font-size: 12px; }
.entry-page .auth-links a:hover, .entry-page .link-dark:hover { color: var(--entry-ink); text-decoration: underline; text-underline-offset: 3px; }
.entry-page :is(a, button):focus-visible { outline: 2px solid var(--entry-focus); outline-offset: 3px; }
.entry-page .auth-help { margin-top: 20px; color: var(--entry-muted); font-size: 12px; line-height: 1.6; }
.entry-page .auth-notice { margin: 0 0 16px; padding: 12px; border: 1px solid #dfe4eb; border-radius: 7px; background: #f5f7fa; color: #344054; font-size: 13px; }
.entry-page .auth-notice-error { border-color: #e7c9c3; background: #faf1ef; color: #853b2c; }
.entry-page .logout-card { border: 1px solid #e7ebf1; border-radius: 14px; background: #f5f7fa; box-shadow: none; }
.entry-page .logout-title { margin: 0; font-size: 26px; line-height: 1.3; letter-spacing: -.035em; }
.entry-page .logout-intro { color: var(--entry-muted); font-size: 13px; line-height: 1.6; }
.entry-page .logout-prompt { color: var(--entry-muted); font-size: 14px; }
.entry-page .logout-note { color: var(--entry-muted); font-size: 12px; line-height: 1.6; }
.entry-page .auth-submit { gap: 8px; }
.entry-page .auth-submit:disabled { opacity: .8; cursor: wait; }
.entry-page .auth-submit-spinner { width: 14px; height: 14px; flex: 0 0 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: auth-submit-spin .7s linear infinite; }
.entry-page .auth-submit-spinner[hidden] { display: none; }
.entry-page .auth-submit-status { min-height: 18px; margin: 12px 0 0; color: var(--entry-muted); font-size: 12px; line-height: 1.5; }
@keyframes auth-submit-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .entry-page .auth-submit-spinner { animation: none; } }

/* Retain the full-screen photography and existing landing-page composition. */
.landing-body.entry-page .hero-title {
  color: #f7fbff;
  font-family: inherit;
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -.035em;
}
.landing-body.entry-page .nav-chip { font-weight: 500; letter-spacing: 0; border-radius: 7px; }
.landing-body.entry-page :is(.action-primary, .action-secondary) {
  border-radius: 7px;
  padding: 10px 16px;
  font-size: 13px;
  font-weight: 500;
}
.landing-body.entry-page .action-primary { background: #1a2233; border-color: #526074; color: #fff; }
.landing-body.entry-page .action-primary:hover { background: #2d3d52; filter: none; }
.landing-body.entry-page .action-secondary { background: #fff; border-color: #dfe4eb; color: #344054; }
.landing-body.entry-page .action-secondary:hover { background: #edf1f5; filter: none; }
.landing-body.entry-page .slide-dot.is-active { background: #d8e4ed; }

/* Keep the original hotel image alongside the form. */
.entry-page #hotel_card { border: 1px solid #e7ebf1; border-radius: 14px; overflow: hidden; box-shadow: none; }
.entry-page #member_hotels_div {
  border-radius: 7px !important;
  border-color: #dfe4eb !important;
  color: #1a2233 !important;
  font-size: 16px;
  font-weight: 600;
}

/* Override legacy global Select2 !important rules only within these pages. */
.entry-page .select2-container { max-width: 100%; font-size: 13px; }
.entry-page .select2-container--default .select2-selection--single {
  height: 42px !important;
  border: 1px solid #dfe4eb !important;
  border-radius: 7px !important;
  background: #fff !important;
}
.entry-page .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 40px !important; padding-left: 12px; color: #344054; }
.entry-page .select2-container--default .select2-selection--single .select2-selection__arrow { height: 40px !important; right: 8px; }
.entry-page .select2-container--focus .select2-selection--single,
.entry-page .select2-container--open .select2-selection--single { border: 1px solid #64859c !important; }
.entry-page .select2-container--default .select2-selection--single:focus-visible { outline: 2px solid #64859c !important; outline-offset: 3px; }
.entry-page .select2-dropdown { margin-top: 4px !important; border: 1px solid #dfe4eb !important; border-radius: 7px !important; overflow: hidden; }
.entry-page .select2-search--dropdown .select2-search__field { padding: 8px !important; border: 1px solid #dfe4eb !important; border-radius: 5px !important; background: #fff !important; }
.entry-page .select2-container--default .select2-results__option[aria-selected="true"],
.entry-page .select2-container--default .select2-results__option--selected,
.entry-page .select2-container--default .select2-results__option--highlighted,
.entry-page .select2-container--default .select2-results__option:hover { background: #edf1f5 !important; color: #344054 !important; }
