/* ClubPass365 v1.0.179 — scoped Login / Sign Up theme integration.
   The markup and WordPress authentication flow are unchanged. */
.cp365-auth-site {
  --cp365-auth-bg: #f2f5fd;
  --cp365-auth-shell: #ffffff;
  --cp365-auth-header-bg: #ffffff;
  --cp365-auth-panel: #f7f9fe;
  --cp365-auth-card-bg: #ffffff;
  --cp365-auth-input-bg: #f8faff;
  --cp365-auth-border: #d9e1ee;
  --cp365-auth-text: #111c35;
  --cp365-auth-muted: #61718c;
  --cp365-auth-icon-bg: #edf2ff;
  --cp365-auth-icon: #3654a0;
  --cp365-auth-accent: #3656e8;
  --cp365-auth-focus: #6252ed;
  --cp365-auth-card-shadow: 0 16px 42px rgba(28,48,96,.07);
  font-family: 'Montserrat', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--cp365-auth-text);
  background: linear-gradient(145deg,#f5f8ff 0%,#e9efff 60%,#f6f2ff 100%)!important;
  padding: 30px clamp(14px,3vw,48px) 40px;
  min-height: 100vh;
}
.cp365-auth-site .cp365-auth-frame {
  width: min(1360px,100%);
  border-radius: 22px;
  border: 1px solid var(--cp365-auth-border);
  background: var(--cp365-auth-shell);
  box-shadow: 0 24px 78px rgba(28,48,96,.12);
  overflow: hidden;
}
.cp365-auth-site .cp365-auth-header {
  height: 84px;
  padding: 0 clamp(22px,3.4vw,52px);
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: var(--cp365-auth-header-bg);
  border-bottom: 1px solid var(--cp365-auth-border);
}
.cp365-auth-site .cp365-auth-logo { flex: 0 0 auto; }
.cp365-auth-site .cp365-auth-nav { display: flex; flex: 1 1 auto; align-items: center; justify-content: center; gap: clamp(16px,2vw,34px); }
.cp365-auth-site .cp365-auth-nav a,
.cp365-auth-site .cp365-auth-footer nav a { color: var(--cp365-auth-text)!important; font-weight: 700; font-size: 12px; white-space: nowrap; opacity: .9; }
.cp365-auth-site .cp365-auth-nav a:hover,
.cp365-auth-site .cp365-auth-footer nav a:hover { color: var(--cp365-auth-accent)!important; opacity: 1; }
.cp365-auth-site .cp365-auth-header-actions { display: flex; align-items: center; flex: 0 0 auto; gap: 12px; }
.cp365-auth-site .cp365-auth-search {
  width: 40px; height: 40px; display: inline-grid; place-items: center; flex: 0 0 auto;
  background: var(--cp365-auth-icon-bg); border: 1px solid var(--cp365-auth-border);
  color: var(--cp365-auth-text)!important; border-radius: 12px;
}
.cp365-auth-site .cp365-auth-search svg { display: block; width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.9; }
.cp365-auth-site .cp365-auth-header-cta {
  display: inline-flex; justify-content: center; align-items: center;
  min-height: 42px; padding: 0 19px; border-radius: 999px; color: #fff!important;
  font-weight: 800; font-size: 12px; white-space: nowrap;
  background: linear-gradient(100deg,#2755e7,#5030ca 80%,#6024cb);
  box-shadow: 0 8px 20px rgba(56,60,196,.17);
}
.cp365-auth-site .cp365-auth-header-cta:hover { filter: brightness(1.08); }
.cp365-auth-site .cp365-auth-main,
.cp365-auth-site .cp365-auth-main.is-register {
  display: grid; grid-template-columns: minmax(330px,42%) minmax(0,58%);
  align-items: stretch; min-height: 660px; background: var(--cp365-auth-panel);
}
.cp365-auth-site .cp365-auth-main.is-register { min-height: 785px; }
.cp365-auth-site .cp365-auth-visual { height: 100%; min-height: 660px; background-position: 50% 36%; }
.cp365-auth-site .cp365-auth-main.is-register .cp365-auth-visual { min-height: 785px; }
.cp365-auth-site .cp365-auth-visual-shade { background: linear-gradient(180deg,rgba(5,12,29,.05) 0%,rgba(7,14,34,.12) 42%,rgba(3,10,27,.82) 100%); }
.cp365-auth-site .cp365-auth-visual:after { background: linear-gradient(135deg,rgba(34,75,226,.09),transparent 38%,rgba(90,36,204,.28)); }
.cp365-auth-site .cp365-auth-visual-copy { left: clamp(25px,3vw,48px); right: 25px; bottom: clamp(28px,3vw,45px); max-width: 445px; }
.cp365-auth-site .cp365-auth-visual-copy h2 { color: #fff!important; font-size: clamp(37px,3.4vw,52px); line-height: .99; }
.cp365-auth-site .cp365-auth-visual-copy h2 em { color: #ff557e; }
.cp365-auth-site .cp365-auth-visual-copy p { color: #f4f6fe!important; font-size: 14px; line-height: 1.55; }
.cp365-auth-site .cp365-auth-form-panel {
  display: grid; place-items: center; padding: clamp(34px,4vw,65px);
  background: var(--cp365-auth-panel)!important;
}
.cp365-auth-site .cp365-auth-card,
.cp365-auth-site .cp365-register-card {
  width: min(535px,100%); max-width: 100%;
  background: var(--cp365-auth-card-bg)!important;
  border: 1px solid var(--cp365-auth-border)!important;
  border-radius: 22px;
  box-shadow: var(--cp365-auth-card-shadow);
  padding: clamp(27px,3.4vw,46px);
  color: var(--cp365-auth-text)!important;
}
.cp365-auth-site .cp365-register-card { width: min(635px,100%); }
.cp365-auth-site .cp365-auth-card-kicker {
  display: block; margin: 0 0 16px; color: var(--cp365-auth-accent)!important;
  font-size: 10px; font-weight: 900; letter-spacing: 1.9px;
}
.cp365-auth-site .cp365-auth-card h1 { margin: 0; text-align: left; font-size: clamp(28px,2.3vw,38px); line-height: 1.13; letter-spacing: -1px; color: var(--cp365-auth-text)!important; }
.cp365-auth-site .cp365-auth-lead { margin: 10px 0 27px; text-align: left; max-width: 505px; color: var(--cp365-auth-muted)!important; font-size: 13px; line-height: 1.7; }
.cp365-auth-site .cp365-auth-form { gap: 17px; }
.cp365-auth-site .cp365-auth-form > label,
.cp365-auth-site .cp365-auth-grid-2 > label { color: var(--cp365-auth-text)!important; font-size: 12px; line-height: 1.4; font-weight: 800; gap: 8px; min-width: 0; }
.cp365-auth-site .cp365-auth-input {
  display: flex; align-items: center; position: relative;
  width: 100%; height: 54px; border: 1px solid var(--cp365-auth-border);
  border-radius: 13px; overflow: hidden; background: var(--cp365-auth-input-bg)!important;
  transition: border-color .16s ease,box-shadow .16s ease;
}
.cp365-auth-site .cp365-auth-input:focus-within { border-color: var(--cp365-auth-focus)!important; box-shadow: 0 0 0 3px rgba(83,91,239,.16); }
.cp365-auth-site .cp365-auth-field-icon {
  display: grid; place-items: center; width: 42px; height: 100%; flex: 0 0 42px;
  background: var(--cp365-auth-icon-bg)!important;
  border-right: 1px solid var(--cp365-auth-border);
  color: var(--cp365-auth-icon);
}
.cp365-auth-site .cp365-auth-field-icon > svg,
.cp365-auth-site .cp365-auth-input > svg {
  display: block!important; width: 19px!important; height: 19px!important;
  margin: 0!important; background: transparent!important; color: var(--cp365-auth-icon)!important;
  stroke: currentColor!important; fill: none!important; stroke-width: 1.8!important;
  stroke-linecap: round; stroke-linejoin: round;
}
.cp365-auth-site .cp365-auth-input input:not([type="checkbox"]) {
  flex: 1 1 auto; min-width: 0; height: 100%; margin: 0; padding: 0 14px!important;
  color: var(--cp365-auth-text)!important; background: transparent!important;
  border: 0!important; box-shadow: none!important;
  font-size: 14px!important; font-weight: 600;
}
.cp365-auth-site .cp365-auth-input input::placeholder { color: var(--cp365-auth-muted)!important; opacity: .85; font-weight: 500; }
.cp365-auth-site .cp365-auth-eye {
  display: grid; place-items: center; height: 100%; width: 47px; flex: 0 0 47px;
  background: transparent!important; border: 0; cursor: pointer; color: var(--cp365-auth-icon)!important;
}
.cp365-auth-site .cp365-auth-eye svg { width: 20px; height: 20px; stroke: currentColor; stroke-width: 1.8; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.cp365-auth-site .cp365-auth-eye.is-revealed { color: var(--cp365-auth-accent)!important; }
.cp365-auth-site .cp365-auth-row { margin-top: 1px; flex-wrap: wrap; gap: 12px; }
.cp365-auth-site .cp365-auth-row > a, .cp365-auth-site .cp365-auth-switch a,
.cp365-auth-site .cp365-auth-terms a { color: var(--cp365-auth-accent)!important; font-size: 12px; text-decoration: none; }
.cp365-auth-site .cp365-auth-check { align-items: center!important; gap: 10px!important; color: var(--cp365-auth-muted)!important; font-size: 12px!important; font-weight: 650!important; }
.cp365-auth-site .cp365-auth-check input[type="checkbox"] {
  appearance: none!important; width: 18px!important; height: 18px!important; min-width: 18px;
  margin: 0; border-radius: 5px; border: 1px solid var(--cp365-auth-border)!important;
  background: var(--cp365-auth-input-bg)!important; cursor: pointer;
}
.cp365-auth-site .cp365-auth-check input[type="checkbox"]:checked { border-color: var(--cp365-auth-focus)!important; background: #4e3ae0!important; }
.cp365-auth-site .cp365-auth-check input[type="checkbox"]:checked::after { content: '✓'; color: #fff!important; }
.cp365-auth-site .cp365-auth-submit {
  height: 52px; margin-top: 4px; border: none; border-radius: 13px;
  background: linear-gradient(100deg,#265ce9 0%,#4542d9 45%,#6225d4 100%)!important;
  box-shadow: 0 10px 23px rgba(49,69,202,.2); font-size: 14px; font-weight: 850; color: #fff!important;
}
.cp365-auth-site .cp365-auth-submit:hover { filter: brightness(1.08); }
.cp365-auth-site .cp365-auth-grid-2 { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
.cp365-auth-site .cp365-auth-switch { margin-top: 22px; padding-top: 21px; border-top: 1px solid var(--cp365-auth-border); color: var(--cp365-auth-muted)!important; text-align: center; font-size: 12px; }
.cp365-auth-site .cp365-auth-terms { margin-top: 3px; align-items: flex-start!important; }
.cp365-auth-site .cp365-auth-alert { border-radius: 12px; }
.cp365-auth-site .cp365-auth-footer {
  background: var(--cp365-auth-header-bg)!important; border-top: 1px solid var(--cp365-auth-border);
  min-height: 75px; gap: 24px; padding: 17px clamp(22px,3.4vw,52px);
}
.cp365-auth-site .cp365-auth-footer nav { gap: clamp(12px,2vw,27px); }
.cp365-auth-site :is(a,button,input):focus-visible { outline: 3px solid var(--cp365-auth-focus)!important; outline-offset: 2px; }
/* The site theme attribute is set by the existing day/night system, including on login/register. */
html[data-cp365-theme="dark"] .cp365-auth-site {
  --cp365-auth-bg: #071026;
  --cp365-auth-shell: #0a142d;
  --cp365-auth-header-bg: #0c1630;
  --cp365-auth-panel: #0c1936;
  --cp365-auth-card-bg: #132344;
  --cp365-auth-input-bg: #0e1c38;
  --cp365-auth-border: #334468;
  --cp365-auth-text: #f5f7ff;
  --cp365-auth-muted: #b2c0da;
  --cp365-auth-icon-bg: #1d335f;
  --cp365-auth-icon: #becdff;
  --cp365-auth-accent: #a9a5ff;
  --cp365-auth-focus: #9a88ff;
  --cp365-auth-card-shadow: 0 17px 42px rgba(0,0,0,.19);
  color: var(--cp365-auth-text)!important;
  background: radial-gradient(circle at 100% 0%,rgba(56,37,152,.34),transparent 55%),linear-gradient(135deg,#060e22 0%,#0b1c41 62%,#1e114a 100%)!important;
}
html[data-cp365-theme="dark"] .cp365-auth-site .cp365-auth-frame { background: var(--cp365-auth-shell)!important; border-color: var(--cp365-auth-border)!important; }
html[data-cp365-theme="dark"] .cp365-auth-site :is(.cp365-auth-header,.cp365-auth-footer) { background: var(--cp365-auth-header-bg)!important; border-color: var(--cp365-auth-border)!important; }
html[data-cp365-theme="dark"] .cp365-auth-site :is(.cp365-auth-card,.cp365-register-card) { background: var(--cp365-auth-card-bg)!important; border-color: var(--cp365-auth-border)!important; }
html[data-cp365-theme="dark"] .cp365-auth-site .cp365-auth-form-panel { background: var(--cp365-auth-panel)!important; }
html[data-cp365-theme="dark"] .cp365-auth-site :is(.cp365-auth-nav a,.cp365-auth-footer nav a,.cp365-auth-input input,.cp365-auth-card h1,.cp365-auth-form>label,.cp365-auth-grid-2>label) { color: var(--cp365-auth-text)!important; }
html[data-cp365-theme="dark"] .cp365-auth-site .cp365-auth-field-icon { background: var(--cp365-auth-icon-bg)!important; color: var(--cp365-auth-icon)!important; }
html[data-cp365-theme="dark"] .cp365-auth-site .cp365-auth-input { background: var(--cp365-auth-input-bg)!important; border-color: var(--cp365-auth-border)!important; }
html[data-cp365-theme="dark"] .cp365-auth-site :is(.cp365-auth-lead,.cp365-auth-check,.cp365-auth-switch) { color: var(--cp365-auth-muted)!important; }
html[data-cp365-theme="dark"] .cp365-auth-site .cp365-auth-visual-copy h2 em { color: #b6a1ff!important; }
@media(max-width:1070px) {
  .cp365-auth-site .cp365-auth-header { gap: 15px; }
  .cp365-auth-site .cp365-auth-nav { gap: 14px; }
  .cp365-auth-site .cp365-auth-main,.cp365-auth-site .cp365-auth-main.is-register { grid-template-columns:minmax(285px,39%) minmax(0,61%); }
  .cp365-auth-site .cp365-auth-form-panel { padding: 26px; }
  .cp365-auth-site .cp365-auth-card,.cp365-auth-site .cp365-register-card { padding: 27px; }
}
@media(max-width:820px) {
  .cp365-auth-site { padding: 0; min-height:100vh; }
  .cp365-auth-site .cp365-auth-frame { width:100%; border: 0; border-radius: 0; box-shadow: none; }
  .cp365-auth-site .cp365-auth-header { height: 72px; padding: 0 20px; }
  .cp365-auth-site .cp365-auth-nav { display: none; }
  .cp365-auth-site .cp365-auth-header-actions { margin-left:auto; }
  .cp365-auth-site .cp365-auth-main,.cp365-auth-site .cp365-auth-main.is-register { display: flex; flex-direction: column; min-height: 0; }
  .cp365-auth-site .cp365-auth-visual,.cp365-auth-site .cp365-auth-main.is-register .cp365-auth-visual { height: 240px; min-height: 240px; background-position:50% 40%; }
  .cp365-auth-site .cp365-auth-visual-copy { inset:auto 22px 22px; }
  .cp365-auth-site .cp365-auth-visual-copy h2 { font-size: 34px; }
  .cp365-auth-site .cp365-auth-visual.is-register .cp365-auth-script { display: none; }
  .cp365-auth-site .cp365-auth-visual.is-register .cp365-auth-visual-copy h2 { font-size: 32px; }
  .cp365-auth-site .cp365-auth-form-panel { padding: 26px 18px 38px; }
  .cp365-auth-site .cp365-auth-card,.cp365-auth-site .cp365-register-card { width: min(640px,100%); }
  .cp365-auth-site .cp365-auth-footer { padding: 20px; grid-template-columns: 1fr; justify-items:center; }
}
@media(max-width:560px) {
  .cp365-auth-site .cp365-auth-header { padding:0 16px; }
  .cp365-auth-site .cp365-auth-header-cta { min-height: 39px; padding: 0 12px; font-size: 11px; }
  .cp365-auth-site .cp365-auth-search { width: 37px; height:37px; }
  .cp365-auth-site .cp365-auth-visual,.cp365-auth-site .cp365-auth-main.is-register .cp365-auth-visual { height:205px;min-height:205px; }
  .cp365-auth-site .cp365-auth-visual-copy h2 { font-size:31px; }
  .cp365-auth-site .cp365-auth-visual-copy p { font-size:12px; }
  .cp365-auth-site .cp365-auth-form-panel { padding: 18px 12px 30px; }
  .cp365-auth-site .cp365-auth-card,.cp365-auth-site .cp365-register-card { padding: 25px 19px; border-radius:16px; }
  .cp365-auth-site .cp365-auth-grid-2 { grid-template-columns: 1fr; }
  .cp365-auth-site .cp365-auth-row { flex-direction: row; align-items: center; }
  .cp365-auth-site .cp365-auth-footer nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 16px; }
  .cp365-auth-site .cp365-auth-footer nav a { font-size: 11px; }
}
@media(prefers-reduced-motion:reduce) {
  .cp365-auth-site * { transition: none!important; animation: none!important; }
}
