.cp-login-modal{position:fixed;inset:0;z-index:999999;display:none}.cp-login-modal.is-open{display:block}.cp-login-backdrop{position:absolute;inset:0;background:rgba(8,16,32,.56);backdrop-filter:blur(6px)}.cp-login-panel{position:relative;width:min(92vw,430px);margin:8vh auto;padding:34px 32px 28px;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(11,24,45,.25);font-family:inherit}.cp-login-close{position:absolute;top:10px;right:10px;width:36px;height:36px;border:0;border-radius:50%;background:#783864;color:#fff;font-size:22px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.cp-login-brand{text-align:center;margin-bottom:16px}.cp-login-brand img{max-width:138px;max-height:72px;object-fit:contain;border-radius:12px}.cp-login-mark{display:inline-grid;place-items:center;width:70px;height:70px;border-radius:20px;background:var(--cp-login-primary);color:#fff;font-weight:800;font-size:24px}.cp-login-panel h2{margin:0;text-align:center;font-size:24px;line-height:1.25;color:#783766}.cp-login-panel > p{margin:8px 0 24px;text-align:center;color:#783766}.cp-login-form,.cp-register-form{display:flex;flex-direction:column;align-items:stretch;width:100%;margin:0}.cp-login-form label,.cp-register-form label{display:block;width:100%;margin:0 0 14px;color:#24324b;font-size:14px;font-weight:600;text-align:left}.cp-login-form input[type=text],.cp-login-form input[type=password],.cp-login-form input[type=email],.cp-register-form input[type=text],.cp-register-form input[type=password],.cp-register-form input[type=email]{display:block;width:100%;box-sizing:border-box;margin-top:7px;padding:13px 16px;border:1px solid #d8deea;border-radius:999px;background:#fff;font-size:16px;outline:none}.cp-login-form input:focus,.cp-register-form input:focus{border-color:var(--cp-login-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--cp-login-primary) 16%,transparent)}.cp-login-row{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:4px 0 18px}.cp-login-remember{display:flex!important;align-items:center;gap:8px;margin:0!important;font-weight:500!important}.cp-login-row a,.cp-login-links a{color:var(--cp-login-primary)!important;text-decoration:none}.cp-login-submit{display:block;width:100%!important;min-width:0!important;margin:0!important;align-self:stretch!important;border:0;border-radius:12px;padding:14px 18px;background:var(--cp-login-primary);color:#fff;font-size:17px;font-weight:700;cursor:pointer;box-sizing:border-box}.cp-login-submit[disabled]{opacity:.7;cursor:wait}.cp-login-message{min-height:22px;margin-top:12px;text-align:center;color:#d92d20}.cp-login-message.is-success{color:#079455}.cp-login-links{display:flex;justify-content:center;gap:10px;margin-top:18px;color:#98a2b3}.cp-login-links a[href*="wp-login.php"],.cp-login-links span{display:none!important}.cp-login-open{overflow:hidden}@media(max-width:480px){.cp-login-panel{margin:5vh auto;padding:28px 22px;border-radius:14px}}

.cp-account-panel{max-width:520px}.cp-account-head{display:flex;align-items:center;gap:16px;margin-bottom:18px}.cp-account-avatar{width:82px;height:82px;border-radius:50%;object-fit:cover;background:#eef1f6;border:3px solid #fff;box-shadow:0 8px 20px rgba(20,30,50,.12)}.cp-account-head h2{margin:0 0 4px}.cp-account-name{margin:0;font-weight:700}.cp-account-email{margin:3px 0 0;color:#667085;font-size:14px;word-break:break-all}.cp-profile-form{display:grid;gap:12px}.cp-profile-form label{display:grid;gap:6px;text-align:left;font-weight:600}.cp-profile-form input[type="text"],.cp-profile-form input[type="email"],.cp-profile-form input[type="file"]{width:100%;box-sizing:border-box;border-radius:10px;padding:12px 14px;border:1px solid #d8deea}.cp-profile-password-fields{display:grid;gap:12px;margin-top:8px;padding-top:16px;border-top:1px solid #e5e7eb}.cp-profile-password-fields h3{margin:0;font-size:16px}.cp-profile-password-fields label{display:grid;gap:6px;text-align:left;font-weight:600}.cp-profile-password-fields input[type="password"]{width:100%;box-sizing:border-box;border-radius:10px;padding:12px 14px;border:1px solid #d8deea}.cp-profile-password-fields input:focus{border-color:var(--cp-login-primary);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--cp-login-primary) 16%,transparent)}.cp-logout-button{width:100%;border:1px solid var(--cp-login-primary);background:var(--cp-login-primary);color:#fff;border-radius:8px;padding:11px 14px;font-size:17px;font-weight:700;cursor:pointer}.cp-logout-button:hover{background:var(--cp-login-primary);color:#fff}.cp-login-message.is-success{color:#138a36}

/* CP short submit buttons — register right, login center */
#cp-register-modal .cp-register-form{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  width:100%!important;
}
#cp-register-modal .cp-register-form label{
  width:86%!important;
  max-width:86%!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
#cp-register-modal .cp-register-form input[type="text"],
#cp-register-modal .cp-register-form input[type="email"],
#cp-register-modal .cp-register-form input[type="password"]{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
#cp-register-modal .cp-register-form .cp-login-submit{
  align-self:flex-end!important;
  width:34%!important;
  min-width:112px!important;
  max-width:148px!important;
  margin-left:0!important;
  margin-right:7%!important;
  padding-left:18px!important;
  padding-right:18px!important;
}

#cp-login-modal .cp-login-form{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  width:100%!important;
}
#cp-login-modal .cp-login-form .cp-login-submit{
  align-self:center!important;
  width:34%!important;
  min-width:112px!important;
  max-width:148px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:18px!important;
  padding-right:18px!important;
}

@font-face{
  font-family:"GP001 Fang";
  src:url("/wp-content/plugins/gp-scheme-001-sandbox/assets/fonts/fang.woff2") format("woff2");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
#cp-register-modal .cp-register-form input::placeholder{
  color:#9aa3b2;
  font-weight:400;
  font-family:"GP001 Fang","PingFang TC","Microsoft JhengHei",sans-serif;
}
/* Keep authentication dialogs usable with touch keyboards and iPad safe areas. */
@media (pointer: coarse) and (max-width: 1366px) {
  .cp-login-modal {
    box-sizing: border-box;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-top: max(12px, env(safe-area-inset-top));
    padding-bottom: max(12px, env(safe-area-inset-bottom));
  }
  .cp-login-panel {
    box-sizing: border-box;
    max-height: calc(100vh - 48px);
    max-height: calc(100dvh - max(48px, env(safe-area-inset-top) + env(safe-area-inset-bottom) + 24px));
    margin: 12px auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
  .cp-login-close {
    width: 44px;
    height: 44px;
  }
  .cp-login-links a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
  }
}

/* Center and balance the account profile actions. */
#cp-account-modal .cp-profile-form > .cp-login-submit,#cp-account-modal .cp-profile-form > .cp-logout-button{width:75%!important;max-width:360px;box-sizing:border-box;justify-self:center;align-self:center!important}

/* Mobile register modal: increase the sign-in link by 2px. */
@media (max-width: 480px) {
  #cp-register-modal .cp-login-links a {
    font-size: calc(1em + 2px);
  }
}

/* Desktop: compact the account editor so its actions fit short viewports. */
@media (min-width: 769px) {
  #cp-account-modal .cp-account-panel {
    box-sizing: border-box;
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    margin: 16px auto;
    padding: 22px 28px 16px;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  #cp-account-modal .cp-account-head {
    gap: 12px;
    margin-bottom: 10px;
  }
  #cp-account-modal .cp-account-avatar {
    width: 68px;
    height: 68px;
  }
  #cp-account-modal .cp-profile-form {
    gap: 8px;
  }
  #cp-account-modal .cp-profile-form label,
  #cp-account-modal .cp-profile-password-fields label {
    gap: 4px;
  }
  #cp-account-modal .cp-profile-form input[type=text],
  #cp-account-modal .cp-profile-form input[type=email],
  #cp-account-modal .cp-profile-form input[type=file],
  #cp-account-modal .cp-profile-password-fields input[type=password] {
    padding: 9px 12px;
  }
  #cp-account-modal .cp-profile-password-fields {
    gap: 8px;
    margin-top: 2px;
    padding-top: 10px;
  }
  #cp-account-modal .cp-profile-form > .cp-login-submit,
  #cp-account-modal .cp-profile-form > .cp-logout-button {
    padding-top: 10px;
    padding-bottom: 10px;
  }
  #cp-account-modal .cp-login-message {
    min-height: 14px;
    margin-top: 4px;
  }
}

/* Touch devices: compact the account editor on phones and tablets as well. */
@media (pointer: coarse) and (max-width: 1366px) {
  #cp-account-modal .cp-account-panel {
    margin: 12px auto;
    padding: 16px 18px 12px;
  }
  #cp-account-modal .cp-account-head {
    gap: 10px;
    margin-bottom: 8px;
  }
  #cp-account-modal .cp-account-avatar {
    width: 56px;
    height: 56px;
  }
  #cp-account-modal .cp-profile-form {
    gap: 7px;
  }
  #cp-account-modal .cp-profile-form label,
  #cp-account-modal .cp-profile-password-fields label {
    gap: 3px;
  }
  #cp-account-modal .cp-profile-form input[type=text],
  #cp-account-modal .cp-profile-form input[type=email],
  #cp-account-modal .cp-profile-form input[type=file],
  #cp-account-modal .cp-profile-password-fields input[type=password] {
    padding: 8px 10px;
  }
  #cp-account-modal .cp-profile-password-fields {
    gap: 7px;
    margin-top: 1px;
    padding-top: 8px;
  }
  #cp-account-modal .cp-profile-form > .cp-login-submit,
  #cp-account-modal .cp-profile-form > .cp-logout-button {
    padding-top: 9px;
    padding-bottom: 9px;
  }
  #cp-account-modal .cp-login-message {
    min-height: 12px;
    margin-top: 2px;
  }
}
