/* Traveller registration form. Scoped to .tmkt-registration-wrapper so nothing leaks into the theme.
   Renders inside the site's /register/ card (max 480px), which supplies the heading, benefits and login link. */
.tmkt-registration-wrapper{
  --rc:#1E4FD6; --rcd:#15379C; --rcoral:#E8532F; --rink:#101828; --rmuted:#5B6472; --rline:#D5DBE7; --rbg:#F6F8FC;
  --rok:#0E7A4F; --rerr:#B42318; --rerr-bg:#FEF3F2; --rok-bg:#ECFDF3;
  font-family:inherit; color:var(--rink); font-size:15px; line-height:1.5; box-sizing:border-box;
}
.tmkt-registration-wrapper *, .tmkt-registration-wrapper *::before, .tmkt-registration-wrapper *::after{ box-sizing:border-box; }
.tmkt-registration-wrapper .tmkt-registration-container{ width:100%; max-width:none; margin:0; padding:0; }
.tmkt-registration-wrapper .tmkt-registration-form{ display:flex; flex-direction:column; gap:18px; margin:0; }

/* Google button */
.tmkt-registration-wrapper .tmkt-google-signin-wrapper{ width:100%; }
.tmkt-registration-wrapper .tmkt-oauth-container{ width:100%; }
.tmkt-registration-wrapper .tmkt-google-signin{ width:100%; min-height:48px; display:flex; align-items:center; justify-content:center; gap:10px; background:#fff; color:var(--rink); border:1.5px solid var(--rline); border-radius:10px; font-weight:600; font-size:15px; line-height:1; font-family:inherit; cursor:pointer; transition:border-color .15s, background .15s; }
.tmkt-registration-wrapper .tmkt-google-signin:hover{ background:var(--rbg); border-color:#B7C0D3; }

/* Divider */
.tmkt-registration-wrapper .tmkt-registration-divider{ display:flex; align-items:center; gap:12px; color:var(--rmuted); font-size:13px; }
.tmkt-registration-wrapper .tmkt-registration-divider::before, .tmkt-registration-wrapper .tmkt-registration-divider::after{ content:''; flex:1; height:1px; background:#E4E9F2; }
.tmkt-registration-wrapper .tmkt-registration-divider span{ white-space:nowrap; }

/* Fields */
.tmkt-registration-wrapper .tmkt-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.tmkt-registration-wrapper .tmkt-form-group{ margin:0; display:flex; flex-direction:column; gap:6px; min-width:0; }
.tmkt-registration-wrapper .tmkt-form-group > label{ font-size:14px; font-weight:600; color:var(--rink); }
.tmkt-registration-wrapper .tmkt-form-input{ width:100%; min-height:48px; padding:12px 14px; font-weight:400; font-size:16px; line-height:1.4; font-family:inherit; color:var(--rink); background:#fff; border:1.5px solid var(--rline); border-radius:10px; transition:border-color .15s, box-shadow .15s; margin:0; }
.tmkt-registration-wrapper .tmkt-form-input::placeholder{ color:#8A93A3; }
.tmkt-registration-wrapper .tmkt-form-input:hover{ border-color:#B7C0D3; }
.tmkt-registration-wrapper .tmkt-form-input:focus{ outline:none; border-color:var(--rc); box-shadow:0 0 0 3px rgba(30,79,214,.18); }
.tmkt-registration-wrapper .tmkt-form-input.tmkt-field-error-input{ border-color:var(--rerr); background:var(--rerr-bg); }
.tmkt-registration-wrapper .tmkt-form-input.tmkt-field-error-input:focus{ box-shadow:0 0 0 3px rgba(180,35,24,.18); }
.tmkt-registration-wrapper .tmkt-field-hint{ font-size:12.5px; color:var(--rmuted); }
.tmkt-registration-wrapper .tmkt-field-error{ display:none; font-size:13px; font-weight:500; color:var(--rerr); }
.tmkt-registration-wrapper .tmkt-field-error.visible{ display:block; }

/* Phone prefix */
.tmkt-registration-wrapper .tmkt-phone-input-wrapper{ display:flex; align-items:stretch; }
.tmkt-registration-wrapper .tmkt-phone-prefix{ display:flex; align-items:center; padding:0 14px; background:var(--rbg); border:1.5px solid var(--rline); border-right:0; border-radius:10px 0 0 10px; color:var(--rmuted); font-weight:600; font-size:15px; }
.tmkt-registration-wrapper .tmkt-phone-input-wrapper .tmkt-form-input{ border-radius:0 10px 10px 0; flex:1; }

/* Password */
.tmkt-registration-wrapper .tmkt-password-input-wrapper{ position:relative; }
.tmkt-registration-wrapper .tmkt-password-input-wrapper .tmkt-form-input{ padding-right:52px; }
.tmkt-registration-wrapper .tmkt-password-toggle{ position:absolute; top:50%; right:4px; transform:translateY(-50%); width:44px; height:44px; display:flex; align-items:center; justify-content:center; background:transparent; border:0; border-radius:8px; color:var(--rmuted); cursor:pointer; padding:0; }
.tmkt-registration-wrapper .tmkt-password-toggle:hover{ color:var(--rc); }
.tmkt-registration-wrapper .tmkt-password-toggle svg{ width:20px; height:20px; }
.tmkt-registration-wrapper .tmkt-password-toggle:focus-visible{ outline:2px solid var(--rc); outline-offset:1px; }

/* Strength meter: JS toggles strength-weak|fair|good|strong on #password-strength-meter */
.tmkt-registration-wrapper .tmkt-password-strength{ display:flex; align-items:center; gap:10px; min-height:18px; }
.tmkt-registration-wrapper .tmkt-strength-bar{ flex:1; height:6px; background:#E4E9F2; border-radius:999px; overflow:hidden; position:relative; }
.tmkt-registration-wrapper .tmkt-strength-bar::after{ content:''; position:absolute; inset:0 auto 0 0; width:0; border-radius:999px; background:#98A2B3; transition:width .25s ease, background-color .25s ease; }
.tmkt-registration-wrapper .strength-weak .tmkt-strength-bar::after{ width:25%; background:#D92D20; }
.tmkt-registration-wrapper .strength-fair .tmkt-strength-bar::after{ width:50%; background:#DC6803; }
.tmkt-registration-wrapper .strength-good .tmkt-strength-bar::after{ width:75%; background:#1E4FD6; }
.tmkt-registration-wrapper .strength-strong .tmkt-strength-bar::after{ width:100%; background:var(--rok); }
.tmkt-registration-wrapper .tmkt-strength-text{ font-size:12.5px; font-weight:600; min-width:64px; text-align:right; color:var(--rmuted); }
.tmkt-registration-wrapper .strength-weak .tmkt-strength-text{ color:#B42318; }
.tmkt-registration-wrapper .strength-fair .tmkt-strength-text{ color:#B54708; }
.tmkt-registration-wrapper .strength-good .tmkt-strength-text{ color:var(--rcd); }
.tmkt-registration-wrapper .strength-strong .tmkt-strength-text{ color:var(--rok); }

/* Checkboxes (44px tap area via label padding) */
.tmkt-registration-wrapper .tmkt-checkbox-group{ gap:4px; }
.tmkt-registration-wrapper .tmkt-checkbox-wrapper{ display:flex; align-items:flex-start; gap:12px; }
.tmkt-registration-wrapper .tmkt-form-checkbox{ width:20px; height:20px; margin:2px 0 0; flex-shrink:0; accent-color:var(--rc); cursor:pointer; }
.tmkt-registration-wrapper .tmkt-form-checkbox:focus-visible{ outline:2px solid var(--rc); outline-offset:2px; }
.tmkt-registration-wrapper .tmkt-checkbox-label{ font-size:14px; font-weight:400; color:var(--rmuted); cursor:pointer; line-height:1.5; }
.tmkt-registration-wrapper .tmkt-checkbox-label a{ color:var(--rc); font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.tmkt-registration-wrapper .tmkt-checkbox-label a:hover{ color:var(--rcd); }

/* Submit */
.tmkt-registration-wrapper .tmkt-btn{ display:flex; align-items:center; justify-content:center; width:100%; min-height:50px; padding:14px 20px; margin-top:4px; font-weight:700; font-size:16px; line-height:1; font-family:inherit; color:#fff; background:var(--rc); border:0; border-radius:10px; cursor:pointer; transition:background .15s, transform .1s; }
.tmkt-registration-wrapper .tmkt-btn:hover{ background:var(--rcd); }
.tmkt-registration-wrapper .tmkt-btn:active{ transform:translateY(1px); }
.tmkt-registration-wrapper .tmkt-btn:focus-visible{ outline:3px solid rgba(30,79,214,.35); outline-offset:2px; }
.tmkt-registration-wrapper .tmkt-btn:disabled{ opacity:.7; cursor:not-allowed; }
.tmkt-registration-wrapper .tmkt-spinner{ width:22px; height:22px; animation:tmkt-spin .8s linear infinite; }
.tmkt-registration-wrapper .tmkt-spinner circle{ stroke:#fff; stroke-dasharray:90 150; stroke-linecap:round; }
@keyframes tmkt-spin{ to{ transform:rotate(360deg); } }

/* Messages */
.tmkt-registration-wrapper .tmkt-form-message{ padding:12px 14px; border-radius:10px; font-size:14px; font-weight:500; border:1px solid transparent; }
.tmkt-registration-wrapper .tmkt-message-success{ background:var(--rok-bg); color:#05603A; border-color:#ABEFC6; }
.tmkt-registration-wrapper .tmkt-message-error{ background:var(--rerr-bg); color:var(--rerr); border-color:#FECDCA; }

/* Narrow screens */
@media (max-width:480px){
  .tmkt-registration-wrapper .tmkt-form-row{ grid-template-columns:1fr; gap:18px; }
}
@media (prefers-reduced-motion:reduce){
  .tmkt-registration-wrapper *{ transition:none !important; animation-duration:.01ms !important; }
}
/* Beat theme-level button :focus/:active colours */
.tmkt-registration-wrapper .tmkt-btn, .tmkt-registration-wrapper .tmkt-btn:focus, .tmkt-registration-wrapper .tmkt-btn:active{ background:var(--rc); color:#fff; box-shadow:none; }
.tmkt-registration-wrapper .tmkt-btn:hover, .tmkt-registration-wrapper .tmkt-btn:focus:hover{ background:var(--rcd); color:#fff; }
.tmkt-registration-wrapper .tmkt-google-signin, .tmkt-registration-wrapper .tmkt-google-signin:focus, .tmkt-registration-wrapper .tmkt-google-signin:active{ background:#fff; color:var(--rink); border-color:var(--rline); }
.tmkt-registration-wrapper .tmkt-google-signin:hover{ background:var(--rbg); border-color:#B7C0D3; color:var(--rink); }
.tmkt-registration-wrapper .tmkt-google-signin:focus-visible{ outline:3px solid rgba(30,79,214,.35); outline-offset:2px; }
.tmkt-registration-wrapper .tmkt-password-toggle, .tmkt-registration-wrapper .tmkt-password-toggle:focus, .tmkt-registration-wrapper .tmkt-password-toggle:active{ background:transparent; color:var(--rmuted); box-shadow:none; }
.tmkt-registration-wrapper .tmkt-password-toggle:hover{ background:transparent; color:var(--rc); }
