@charset "utf-8";
@import url("https://cdn.jsdelivr.net/gh/sunn-us/SUIT/fonts/variable/woff2/SUIT-Variable.css");
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/variable/pretendardvariable-dynamic-subset.css");

/* community_auth_v27
   로그인/회원가입/계정찾기/회원 보조화면 공통 커뮤니티 스킨 디자인
   v26: 모바일 viewport/980px 축소 렌더링 대응 강화 */

:root {
  --ca-font: "Pretendard Variable", "Pretendard", "SUIT Variable", "SUIT", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", Arial, sans-serif;
  --ca-ink: #172033;
  --ca-title: #0f172a;
  --ca-muted: #647089;
  --ca-soft: #8a95aa;
  --ca-line: rgba(35, 48, 78, .12);
  --ca-line-strong: rgba(35, 48, 78, .18);
  --ca-panel: rgba(255, 255, 255, .82);
  --ca-panel-strong: rgba(255, 255, 255, .94);
  --ca-blue: #4776ff;
  --ca-blue-deep: #3158f2;
  --ca-purple: #7a5cff;
  --ca-pink: #ff7bbd;
  --ca-mint: #35d5c5;
  --ca-yellow: #ffd166;
  --ca-shadow: 0 24px 70px rgba(33, 45, 82, .16);
  --ca-shadow-sm: 0 12px 32px rgba(33, 45, 82, .10);
  --ca-radius-xl: 30px;
  --ca-radius-lg: 22px;
  --ca-radius-md: 16px;
}

html {
  -webkit-text-size-adjust: 100%;
}

body.ca-auth-page {
  min-width: 0 !important;
  background: #f7f8ff !important;
}

body.ca-auth-page #hd,
body.ca-auth-page #aside,
body.ca-auth-page #ft,
body.ca-auth-page .top_bn,
body.ca-auth-page .hd_login_msg {
  display: none !important;
}

body.ca-auth-page #wrapper,
body.ca-auth-page #container,
body.ca-auth-page #contents,
body.ca-auth-page #ctt,
body.ca-auth-page .sub_page,
body.ca-auth-page .container {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ca-auth,
.ca-auth * {
  box-sizing: border-box;
  font-family: var(--ca-font);
}

.ca-auth {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 100vh;
  padding: clamp(18px, 3.2vw, 46px);
  color: var(--ca-ink);
  background:
    radial-gradient(circle at 10% 12%, rgba(255, 123, 189, .25), transparent 28%),
    radial-gradient(circle at 92% 8%, rgba(71, 118, 255, .24), transparent 30%),
    radial-gradient(circle at 75% 94%, rgba(53, 213, 197, .16), transparent 27%),
    linear-gradient(135deg, #fff7fd 0%, #f8f9ff 45%, #eef5ff 100%);
}

.ca-auth::before {
  content: "";
  position: absolute;
  inset: -20px;
  z-index: -3;
  background-image:
    linear-gradient(rgba(63, 73, 113, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(63, 73, 113, .055) 1px, transparent 1px);
  background-size: 36px 36px;
  transform: rotate(-2deg) scale(1.04);
}

.ca-auth::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(115deg, transparent 0 28%, rgba(255,255,255,.50) 28% 29%, transparent 29% 100%),
    radial-gradient(ellipse at center, rgba(255,255,255,.74), transparent 68%);
  pointer-events: none;
}

.ca-bg {
  position: absolute;
  z-index: -1;
  width: 340px;
  height: 340px;
  border-radius: 999px;
  filter: blur(18px);
  opacity: .75;
  pointer-events: none;
}

.ca-bg-1 {
  top: 80px;
  left: -130px;
  background: rgba(255, 123, 189, .28);
}

.ca-bg-2 {
  right: -130px;
  bottom: 80px;
  background: rgba(71, 118, 255, .25);
}

.ca-shell,
.ca-register-shell,
.ca-form-shell,
.ca-recovery-shell {
  width: min(1120px, 100%);
  min-height: calc(100vh - clamp(36px, 6.4vw, 92px));
  margin: 0 auto;
  display: grid;
  align-items: center;
  gap: clamp(18px, 2.6vw, 34px);
}

.ca-shell {
  grid-template-columns: minmax(390px, .95fr) minmax(380px, .72fr);
}

.ca-register-shell,
.ca-form-shell {
  grid-template-columns: minmax(300px, .56fr) minmax(500px, .94fr);
}

.ca-recovery-shell {
  grid-template-columns: minmax(300px, .58fr) minmax(430px, .86fr);
}

.ca-side,
.ca-card,
.ca-register-hero,
.ca-terms-card,
.ca-form-hero,
.ca-form-card,
.ca-recovery-side,
.ca-recovery-card,
.ca-guest-box,
.ca-missing-basic {
  border: 1px solid rgba(255,255,255,.72);
  border-radius: var(--ca-radius-xl);
  background: var(--ca-panel);
  box-shadow: var(--ca-shadow);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
}

.ca-side,
.ca-register-hero,
.ca-form-hero,
.ca-recovery-side {
  position: relative;
  overflow: hidden;
  align-self: stretch;
  min-height: 540px;
  padding: clamp(28px, 3.8vw, 44px);
  background:
    linear-gradient(150deg, rgba(255,255,255,.90), rgba(255,255,255,.62)),
    radial-gradient(circle at 12% 12%, rgba(255, 123, 189, .22), transparent 34%),
    radial-gradient(circle at 85% 18%, rgba(71, 118, 255, .22), transparent 37%);
}

.ca-side::before,
.ca-register-hero::before,
.ca-form-hero::before,
.ca-recovery-side::before {
  content: "";
  position: absolute;
  inset: 16px;
  border: 1px solid rgba(255,255,255,.68);
  border-radius: 23px;
  pointer-events: none;
}

.ca-side::after,
.ca-register-hero::after,
.ca-form-hero::after,
.ca-recovery-side::after {
  content: "";
  position: absolute;
  right: -74px;
  bottom: -74px;
  width: 230px;
  height: 230px;
  border-radius: 50%;
  background:
    linear-gradient(135deg, rgba(71,118,255,.16), rgba(255,123,189,.14));
  pointer-events: none;
}

.ca-card,
.ca-terms-card,
.ca-form-card,
.ca-recovery-card {
  padding: clamp(26px, 3.2vw, 38px);
}

.ca-brand,
.ca-logo,
.ca-badge,
.ca-side-title,
.ca-community-preview,
.ca-step-list,
.ca-recovery-tips,
.ca-register-hero > *,
.ca-form-hero > *,
.ca-recovery-side > * {
  position: relative;
  z-index: 1;
}

.ca-brand {
  display: flex;
  align-items: center;
  gap: 13px;
}

.ca-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  flex: 0 0 50px;
  border-radius: 17px;
  color: #fff !important;
  background: linear-gradient(135deg, var(--ca-blue), var(--ca-purple) 56%, var(--ca-pink));
  box-shadow: 0 14px 30px rgba(71, 118, 255, .25);
  text-decoration: none !important;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: -.05em;
}

.ca-brand strong {
  display: block;
  max-width: 280px;
  overflow: hidden;
  color: var(--ca-title);
  font-size: 15px;
  line-height: 1.25;
  font-weight: 850;
  letter-spacing: -.035em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ca-brand span {
  display: block;
  margin-top: 4px;
  color: var(--ca-muted);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: -.02em;
}

.ca-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 30px;
  padding: 0 12px;
  border: 1px solid rgba(71,118,255,.10);
  border-radius: 999px;
  color: var(--ca-blue-deep);
  background: rgba(71, 118, 255, .10);
  font-size: 12px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.015em;
}

.ca-side-title,
.ca-register-hero .ca-badge,
.ca-form-hero .ca-badge,
.ca-recovery-side .ca-badge {
  margin-top: clamp(34px, 5vw, 62px);
}

.ca-side-title h2,
.ca-register-hero h1,
.ca-form-hero h1,
.ca-recovery-side h1 {
  margin: 15px 0 0;
  color: var(--ca-title);
  font-size: clamp(32px, 4.4vw, 52px);
  line-height: 1.13;
  font-weight: 900;
  letter-spacing: -.055em;
  word-break: keep-all;
}

.ca-side-title p,
.ca-register-hero p,
.ca-form-hero p,
.ca-recovery-side p {
  width: min(100%, 520px);
  margin: 16px 0 0;
  color: #5a657b;
  font-size: clamp(14px, 1.35vw, 17px);
  line-height: 1.75;
  font-weight: 650;
  letter-spacing: -.03em;
  word-break: keep-all;
}

/* 로그인 왼쪽 커뮤니티 미리보기 */
.ca-community-preview {
  display: grid;
  gap: 12px;
  margin-top: 28px;
}

.ca-post-card,
.ca-mini-card,
.ca-member-row,
.ca-recovery-tips div,
.ca-step-list span {
  border: 1px solid rgba(255,255,255,.72);
  background: rgba(255,255,255,.62);
  box-shadow: var(--ca-shadow-sm);
}

.ca-post-card {
  border-radius: 22px;
  padding: 20px;
}

.ca-post-head,
.ca-post-meta,
.ca-member-row,
.ca-account-box {
  display: flex;
  align-items: center;
}

.ca-post-head {
  gap: 9px;
}

.ca-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--ca-mint), var(--ca-blue));
  box-shadow: 0 0 0 6px rgba(53,213,197,.13);
}

.ca-post-head strong {
  color: var(--ca-title);
  font-size: 14px;
  font-weight: 900;
  letter-spacing: -.035em;
}

.ca-post-head em {
  margin-left: auto;
  color: var(--ca-soft);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}

.ca-post-card p {
  margin: 13px 0 0;
  color: #536078;
  font-size: 14px;
  line-height: 1.62;
  font-weight: 650;
  letter-spacing: -.025em;
}

.ca-post-meta {
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 16px;
}

.ca-post-meta span {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  color: #46536b;
  background: rgba(255,255,255,.76);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: -.025em;
}

.ca-mini-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.ca-mini-card {
  min-height: 92px;
  border-radius: 20px;
  padding: 14px;
}

.ca-mini-card span,
.ca-mini-card strong,
.ca-mini-card em {
  display: block;
}

.ca-mini-card span {
  font-size: 20px;
  line-height: 1;
}

.ca-mini-card strong {
  margin-top: 8px;
  color: #2c374d;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: -.035em;
}

.ca-mini-card em {
  margin-top: 5px;
  color: var(--ca-blue-deep);
  font-size: 18px;
  font-style: normal;
  font-weight: 950;
  letter-spacing: -.03em;
}

.ca-member-row {
  gap: 14px;
  border-radius: 20px;
  padding: 15px;
}

.ca-avatars {
  display: flex;
  flex: 0 0 auto;
}

.ca-avatars span {
  width: 34px;
  height: 34px;
  margin-left: -9px;
  border: 3px solid #fff;
  border-radius: 999px;
  background: linear-gradient(135deg, #dbe7ff, #ffd6ed);
}

.ca-avatars span:first-child { margin-left: 0; }

.ca-member-row p {
  margin: 0;
  color: #5f6a80;
  font-size: 13px;
  line-height: 1.45;
  font-weight: 650;
  letter-spacing: -.025em;
}

.ca-member-row b {
  color: var(--ca-title);
  font-weight: 900;
}

/* 오른쪽 카드 공통 */
.ca-card-head h1,
.ca-card-head h2 {
  margin: 14px 0 0;
  color: var(--ca-title);
  font-size: clamp(28px, 3vw, 39px);
  line-height: 1.16;
  font-weight: 900;
  letter-spacing: -.055em;
  word-break: keep-all;
}

.ca-card-head p {
  margin: 9px 0 0;
  color: var(--ca-muted);
  font-size: 14px;
  line-height: 1.65;
  font-weight: 650;
  letter-spacing: -.03em;
  word-break: keep-all;
}

.ca-tabs {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
  margin: 24px 0 20px;
  padding: 6px;
  border: 1px solid var(--ca-line);
  border-radius: 18px;
  background: rgba(246,248,255,.86);
}

.ca-tabs span,
.ca-tabs a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border-radius: 14px;
  color: #738098;
  text-decoration: none !important;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: -.035em;
}

.ca-tabs .is-active {
  color: #fff;
  background: linear-gradient(135deg, var(--ca-blue), var(--ca-purple));
  box-shadow: 0 12px 26px rgba(71, 118, 255, .24);
}

.ca-form fieldset,
.ca-auth fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.ca-field { margin-top: 15px; }

.ca-field label,
.ca-form-card .tbl_frm01 th,
.ca-form-card .form_01 label,
.ca-auth .frm_label {
  display: block;
  margin: 0 0 8px !important;
  padding: 0 !important;
  color: #2d374d;
  background: transparent !important;
  font-size: 14px;
  line-height: 1.35;
  font-weight: 900;
  letter-spacing: -.035em;
  text-align: left !important;
}

.ca-field input,
.ca-auth input.frm_input,
.ca-auth input.full_input,
.ca-auth input[type="text"],
.ca-auth input[type="password"],
.ca-auth input[type="email"],
.ca-auth input[type="tel"],
.ca-auth input[type="number"],
.ca-auth textarea,
.ca-auth select {
  width: 100%;
  max-width: 100%;
  min-height: 50px;
  padding: 0 15px;
  border: 1px solid rgba(35, 48, 78, .14);
  border-radius: 15px;
  color: #182236;
  background: rgba(255,255,255,.90);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
  font-size: 15px;
  font-weight: 650;
  letter-spacing: -.025em;
  outline: 0;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease, transform .16s ease;
}

.ca-auth textarea {
  min-height: 136px;
  padding: 14px 15px;
  line-height: 1.65;
  resize: vertical;
}

.ca-auth select {
  padding-right: 34px;
}

.ca-field input:focus,
.ca-auth input.frm_input:focus,
.ca-auth input.full_input:focus,
.ca-auth input[type="text"]:focus,
.ca-auth input[type="password"]:focus,
.ca-auth input[type="email"]:focus,
.ca-auth input[type="tel"]:focus,
.ca-auth input[type="number"]:focus,
.ca-auth textarea:focus,
.ca-auth select:focus {
  border-color: rgba(71, 118, 255, .55);
  background: #fff;
  box-shadow: 0 0 0 5px rgba(71, 118, 255, .10);
}

.ca-auth input::placeholder,
.ca-auth textarea::placeholder {
  color: #9aa5b8;
}

.ca-submit,
.ca-auth .btn_submit,
.ca-auth input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  padding: 0 20px;
  border: 0 !important;
  border-radius: 16px;
  color: #fff !important;
  background: linear-gradient(135deg, var(--ca-blue), var(--ca-purple));
  box-shadow: 0 15px 32px rgba(71, 118, 255, .26);
  text-decoration: none !important;
  font-size: 15px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.035em;
  cursor: pointer;
  transition: transform .16s ease, filter .16s ease, box-shadow .16s ease;
}

.ca-form .ca-submit { margin-top: 20px; }

.ca-submit:hover,
.ca-auth .btn_submit:hover,
.ca-auth input[type="submit"]:hover {
  filter: brightness(1.03);
  transform: translateY(-1px);
  box-shadow: 0 18px 36px rgba(71, 118, 255, .30);
}

.ca-login-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 15px;
}

.ca-login-info a,
.ca-recovery-bottom a {
  color: #2c374d !important;
  text-decoration: none !important;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: -.03em;
}

.ca-login-info a:hover,
.ca-recovery-bottom a:hover { color: var(--ca-blue-deep) !important; }

.ca-check label,
.ca-mini-check,
.ca-all-check label,
.ca-auth .chk_box label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #66728a;
  font-size: 13px;
  line-height: 1.35;
  font-weight: 700;
  letter-spacing: -.03em;
  cursor: pointer;
  word-break: keep-all;
}

.ca-check input,
.ca-mini-check input,
.ca-all-check input,
.ca-auth .chk_box input[type="checkbox"] {
  position: static !important;
  width: 18px !important;
  height: 18px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 18px;
  accent-color: var(--ca-blue);
}

.ca-check label span,
.ca-auth .chk_box label span { display: none !important; }

/* 회원가입 약관 */
.ca-terms-card,
.ca-form-card { align-self: stretch; }

.ca-step-list {
  display: grid;
  gap: 10px;
  margin-top: 28px;
}

.ca-step-list span {
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 0 15px;
  border-radius: 999px;
  color: #5d687d;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: -.03em;
}

.ca-step-list .is-now {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(135deg, var(--ca-blue), var(--ca-purple));
  box-shadow: 0 12px 26px rgba(71, 118, 255, .22);
}

.ca-term-box {
  overflow: hidden;
  margin-top: 16px;
  border: 1px solid var(--ca-line);
  border-radius: 20px;
  background: rgba(255,255,255,.66);
}

.ca-term-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 16px;
  border-bottom: 1px solid rgba(35,48,78,.10);
}

.ca-term-title h3 {
  margin: 0;
  color: var(--ca-title);
  font-size: 15px;
  line-height: 1.35;
  font-weight: 900;
  letter-spacing: -.04em;
}

.ca-term-title h3 em {
  display: inline-flex;
  align-items: center;
  height: 22px;
  margin-left: 5px;
  padding: 0 7px;
  border-radius: 999px;
  color: #e94182;
  background: rgba(255, 123, 189, .13);
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
}

.ca-term-box textarea {
  display: block;
  width: 100%;
  height: 150px;
  min-height: 150px;
  border: 0 !important;
  border-radius: 0 !important;
  background: rgba(255,255,255,.38) !important;
  box-shadow: none !important;
  color: #3f4b61;
  font-size: 13px;
}

.ca-privacy-table {
  overflow: visible;
}

.ca-privacy-table table {
  width: 100%;
  min-width: 0;
  border-collapse: collapse;
  table-layout: fixed;
}

.ca-privacy-table caption {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
}

.ca-privacy-table th,
.ca-privacy-table td {
  padding: 13px 14px;
  border-bottom: 1px solid rgba(35,48,78,.09);
  color: #4c586d;
  font-size: 12.5px;
  line-height: 1.55;
  font-weight: 650;
  letter-spacing: -.03em;
  vertical-align: top;
  word-break: keep-all;
}

.ca-privacy-table th {
  color: #273247;
  background: rgba(246,248,255,.82);
  font-weight: 900;
}

.ca-all-check {
  margin-top: 16px;
  padding: 15px 16px;
  border: 1px solid rgba(71,118,255,.16);
  border-radius: 18px;
  background: rgba(71,118,255,.07);
}

.ca-all-check label { color: #273247; font-weight: 900; }

.ca-actions,
.ca-auth .btn_confirm,
.ca-auth .win_btn {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
}

.ca-actions .btn_close,
.ca-auth .btn_close,
.ca-auth .btn_cancel,
.ca-auth a.btn_close,
.ca-auth a.btn_cancel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 22px;
  border: 1px solid var(--ca-line-strong);
  border-radius: 16px;
  color: #58657a !important;
  background: rgba(255,255,255,.78);
  text-decoration: none !important;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: -.035em;
}

.ca-actions .ca-submit,
.ca-actions .btn_submit,
.ca-auth .btn_confirm .btn_submit,
.ca-auth .btn_confirm input[type="submit"] {
  flex: 1;
  width: auto;
}

/* 기본 회원가입 입력폼을 카드 안에 자연스럽게 정리 */
.ca-form-card { overflow: hidden; }

.ca-form-card .register,
.ca-form-card #fregisterform,
.ca-form-card form,
.ca-form-card .form_01,
.ca-form-card .tbl_frm01,
.ca-form-card .register_form_inner,
.ca-form-card #register_form {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ca-form-card #fregisterform > p,
.ca-form-card .register > p,
.ca-form-card .frm_info,
.ca-form-card .reg_msg,
.ca-form-card #msg_mb_id,
.ca-form-card #msg_mb_nick,
.ca-form-card #msg_mb_email {
  display: block;
  margin: 7px 0 0 !important;
  color: var(--ca-soft) !important;
  font-size: 12px !important;
  line-height: 1.55 !important;
  font-weight: 650 !important;
  letter-spacing: -.025em;
}

.ca-form-card h2,
.ca-form-card .form_01 h2,
.ca-form-card .tbl_frm01 h2,
.ca-form-card .register_form_inner h2 {
  margin: 24px 0 13px !important;
  padding: 0 !important;
  color: var(--ca-title) !important;
  font-size: 19px !important;
  line-height: 1.35 !important;
  font-weight: 900 !important;
  letter-spacing: -.045em;
}

.ca-form-card ul,
.ca-form-card ol {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.ca-form-card li,
.ca-form-card .tbl_frm01 tr,
.ca-form-card .form_01 li {
  margin: 0 0 12px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.ca-form-card .tbl_frm01 table,
.ca-form-card .tbl_frm01 tbody,
.ca-form-card .tbl_frm01 tr,
.ca-form-card .tbl_frm01 th,
.ca-form-card .tbl_frm01 td {
  display: block;
  width: 100% !important;
  border: 0 !important;
  background: transparent !important;
}

.ca-form-card .tbl_frm01 td { padding: 0 !important; }

.ca-form-card .btn_frmline,
.ca-form-card .btn_file,
.ca-form-card button[type="button"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 13px;
  border: 1px solid rgba(71,118,255,.18) !important;
  border-radius: 14px;
  color: var(--ca-blue-deep) !important;
  background: rgba(71,118,255,.08) !important;
  font-size: 12.5px;
  font-weight: 900;
  letter-spacing: -.03em;
  text-decoration: none !important;
  cursor: pointer;
}

.ca-form-card .adress,
.ca-form-card .addr_line,
.ca-form-card .filebox {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ca-form-card .adress input,
.ca-form-card .addr_line input { flex: 1 1 170px; }
.ca-form-card .frm_address { margin-top: 8px; }

.ca-form-card .captcha,
.ca-form-card #captcha,
.ca-captcha-wrap #captcha,
.ca-captcha-wrap .captcha,
.ca-recovery #captcha,
.ca-recovery .captcha {
  width: 100%;
  margin: 16px 0 0 !important;
  padding: 15px !important;
  border: 1px solid var(--ca-line) !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.64) !important;
}

/* 아이디/비밀번호 찾기 · 비밀번호 재설정 */
.ca-recovery { display: flex; align-items: center; }

.ca-recovery-tips {
  display: grid;
  gap: 10px;
  margin-top: 30px;
}

.ca-recovery-tips div {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 50px;
  padding: 10px 14px;
  border-radius: 18px;
}

.ca-recovery-tips strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 28px;
  border-radius: 999px;
  color: var(--ca-blue-deep);
  background: rgba(71,118,255,.10);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: -.02em;
}

.ca-recovery-tips span {
  color: #566278;
  font-size: 13px;
  line-height: 1.35;
  font-weight: 850;
  letter-spacing: -.03em;
}

.ca-recovery-card .new_win_con,
.ca-recovery-card #info_fs {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  float: none !important;
}

.ca-recovery-form { margin-top: 20px; }

.ca-help-box,
.ca-account-box,
.ca-cert-panel {
  border: 1px solid var(--ca-line);
  border-radius: 19px;
  background: rgba(255,255,255,.64);
  box-shadow: 0 10px 24px rgba(33,45,82,.06);
}

.ca-help-box { padding: 17px; }

.ca-help-box strong {
  display: block;
  color: var(--ca-title);
  font-size: 15px;
  font-weight: 900;
  letter-spacing: -.04em;
}

.ca-help-box p,
.ca-cert-panel p {
  margin: 7px 0 0 !important;
  color: var(--ca-muted);
  font-size: 13px;
  line-height: 1.6;
  font-weight: 650;
  letter-spacing: -.03em;
}

.ca-captcha-wrap { margin-top: 16px; }

.ca-single-action { margin-top: 17px !important; }
.ca-single-action .btn_submit,
.ca-single-action .ca-submit { width: 100% !important; }

.ca-cert-panel {
  margin-top: 17px !important;
  padding: 17px !important;
}

.ca-cert-panel h3 {
  margin: 0 0 5px !important;
  color: var(--ca-title);
  font-size: 16px;
  line-height: 1.35;
  font-weight: 900;
  letter-spacing: -.045em;
}

.ca-cert-buttons {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 8px;
  margin-top: 13px;
}

.ca-cert-buttons .btn_submit {
  min-height: 44px;
  border-radius: 14px;
  font-size: 13px;
  box-shadow: 0 10px 24px rgba(71,118,255,.18);
}

.ca-recovery-bottom {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(35,48,78,.10);
}

.ca-account-box {
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 17px;
  padding: 15px 17px;
}

.ca-account-box span {
  color: var(--ca-muted);
  font-size: 13px;
  font-weight: 850;
  letter-spacing: -.03em;
}

.ca-account-box strong {
  color: var(--ca-title);
  font-size: 15px;
  font-weight: 950;
  letter-spacing: -.025em;
  word-break: break-all;
}

/* 비회원/기본 파일 누락 */
.ca-guest-box,
.ca-missing-basic {
  width: min(920px, calc(100% - 36px));
  margin: 22px auto 0;
  padding: 24px;
}

.ca-guest-box h2,
.ca-missing-basic h2 {
  margin: 0 0 9px;
  color: var(--ca-title);
  font-size: 21px;
  font-weight: 900;
  letter-spacing: -.045em;
}

.ca-guest-box p,
.ca-missing-basic p {
  margin: 0 0 15px;
  color: var(--ca-muted);
  font-size: 14px;
  line-height: 1.65;
  font-weight: 650;
  letter-spacing: -.03em;
}

.ca-auth a { transition: color .16s ease, background .16s ease, transform .16s ease, filter .16s ease; }

.ca-auth .sound_only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (max-width: 980px) {
  .ca-auth { padding: 16px; }

  .ca-shell,
  .ca-register-shell,
  .ca-form-shell,
  .ca-recovery-shell {
    min-height: auto;
    grid-template-columns: 1fr;
  }

  .ca-side,
  .ca-register-hero,
  .ca-form-hero,
  .ca-recovery-side {
    min-height: auto;
  }

  .ca-side-title,
  .ca-register-hero .ca-badge,
  .ca-form-hero .ca-badge,
  .ca-recovery-side .ca-badge {
    margin-top: 28px;
  }

  .ca-side-title h2,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1 {
    font-size: clamp(30px, 7.5vw, 44px);
  }

  .ca-community-preview { display: none; }

  .ca-step-list,
  .ca-recovery-tips,
  .ca-reset .ca-recovery-tips {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ca-reset .ca-recovery-tips { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .ca-step-list span,
  .ca-recovery-tips div {
    justify-content: center;
    text-align: center;
  }

  .ca-recovery-tips div {
    align-items: center;
    flex-direction: column;
  }
}

@media (max-width: 640px) {
  .ca-auth { padding: 10px; }

  .ca-side,
  .ca-card,
  .ca-register-hero,
  .ca-terms-card,
  .ca-form-hero,
  .ca-form-card,
  .ca-recovery-side,
  .ca-recovery-card {
    border-radius: 22px;
    padding: 20px;
  }

  .ca-side::before,
  .ca-register-hero::before,
  .ca-form-hero::before,
  .ca-recovery-side::before {
    inset: 10px;
    border-radius: 18px;
  }

  .ca-logo {
    width: 44px;
    height: 44px;
    flex-basis: 44px;
    border-radius: 15px;
  }

  .ca-brand { gap: 10px; }
  .ca-brand strong { max-width: 210px; font-size: 14px; }
  .ca-brand span { font-size: 11px; }

  .ca-badge {
    min-height: 28px;
    padding: 0 10px;
    font-size: 11px;
  }

  .ca-side-title h2,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1 {
    font-size: 29px;
    line-height: 1.16;
    letter-spacing: -.05em;
  }

  .ca-side-title p,
  .ca-register-hero p,
  .ca-form-hero p,
  .ca-recovery-side p {
    font-size: 13.5px;
    line-height: 1.68;
  }

  .ca-card-head h1,
  .ca-card-head h2 {
    font-size: 27px;
    line-height: 1.18;
  }

  .ca-card-head p { font-size: 13.5px; }

  .ca-tabs { margin: 20px 0 18px; }
  .ca-tabs span,
  .ca-tabs a {
    min-height: 40px;
    font-size: 13px;
  }

  .ca-field input,
  .ca-auth input.frm_input,
  .ca-auth input.full_input,
  .ca-auth input[type="text"],
  .ca-auth input[type="password"],
  .ca-auth input[type="email"],
  .ca-auth input[type="tel"],
  .ca-auth input[type="number"],
  .ca-auth textarea,
  .ca-auth select,
  .ca-submit,
  .ca-auth .btn_submit,
  .ca-auth input[type="submit"],
  .ca-actions .btn_close,
  .ca-auth .btn_close,
  .ca-auth .btn_cancel {
    min-height: 48px;
    border-radius: 14px;
    font-size: 14px;
  }

  .ca-login-info,
  .ca-actions,
  .ca-auth .btn_confirm,
  .ca-auth .win_btn {
    align-items: stretch;
    flex-direction: column;
  }

  .ca-login-info { gap: 10px; }
  .ca-login-info a { align-self: flex-end; }

  .ca-actions .btn_close,
  .ca-auth .btn_close,
  .ca-auth .btn_cancel,
  .ca-actions .ca-submit,
  .ca-actions .btn_submit,
  .ca-auth .btn_confirm .btn_submit,
  .ca-auth .btn_confirm input[type="submit"] {
    width: 100%;
  }

  .ca-step-list,
  .ca-recovery-tips,
  .ca-reset .ca-recovery-tips {
    grid-template-columns: 1fr;
  }

  .ca-step-list span {
    justify-content: flex-start;
    min-height: 40px;
  }

  .ca-term-title {
    align-items: flex-start;
    flex-direction: column;
    padding: 14px;
  }

  .ca-term-title h3 { font-size: 14px; }
  .ca-term-box textarea { height: 132px; min-height: 132px; font-size: 12.5px; }

  /* 모바일에서는 개인정보 표를 카드형으로 변경해서 가로 스크롤 제거 */
  .ca-privacy-table table,
  .ca-privacy-table thead,
  .ca-privacy-table tbody,
  .ca-privacy-table tr,
  .ca-privacy-table th,
  .ca-privacy-table td {
    display: block;
    width: 100% !important;
  }

  .ca-privacy-table thead { display: none; }

  .ca-privacy-table tbody {
    padding: 10px;
  }

  .ca-privacy-table tr {
    overflow: hidden;
    margin: 0 0 10px;
    border: 1px solid rgba(35,48,78,.10);
    border-radius: 16px;
    background: rgba(255,255,255,.72);
  }

  .ca-privacy-table tr:last-child { margin-bottom: 0; }

  .ca-privacy-table td {
    position: relative;
    padding: 10px 12px 10px 98px;
    border-bottom: 1px solid rgba(35,48,78,.08);
    font-size: 12.5px;
    min-height: 41px;
  }

  .ca-privacy-table td:last-child { border-bottom: 0; }

  .ca-privacy-table td::before {
    position: absolute;
    left: 12px;
    top: 10px;
    width: 74px;
    color: #2f3a50;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: -.035em;
  }

  .ca-privacy-table td:nth-child(1)::before { content: "수집 목적"; }
  .ca-privacy-table td:nth-child(2)::before { content: "수집 항목"; }
  .ca-privacy-table td:nth-child(3)::before { content: "보유 기간"; }

  .ca-all-check { padding: 14px; }

  .ca-form-card h2,
  .ca-form-card .form_01 h2,
  .ca-form-card .tbl_frm01 h2,
  .ca-form-card .register_form_inner h2 {
    font-size: 18px !important;
  }

  .ca-guest-box,
  .ca-missing-basic {
    width: calc(100% - 20px);
    padding: 20px;
  }
}

@media (max-width: 380px) {
  .ca-auth { padding: 8px; }
  .ca-side,
  .ca-card,
  .ca-register-hero,
  .ca-terms-card,
  .ca-form-hero,
  .ca-form-card,
  .ca-recovery-side,
  .ca-recovery-card {
    padding: 18px;
  }

  .ca-side-title h2,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1 { font-size: 26px; }
  .ca-card-head h1,
  .ca-card-head h2 { font-size: 25px; }
  .ca-login-info a { align-self: flex-start; }
}


/* v7: 기본 회원가입폼의 도움말 버튼 정리
   - basic/register_form.skin.php의 tooltip_icon이 일반 버튼 스타일을 먹어서 햄버거 메뉴처럼 보이던 문제 수정 */
.ca-form-card .tooltip_icon,
.ca-auth .tooltip_icon {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 22px !important;
  min-width: 22px !important;
  height: 22px !important;
  min-height: 22px !important;
  margin: -2px 0 0 6px !important;
  padding: 0 !important;
  border: 1px solid rgba(71,118,255,.18) !important;
  border-radius: 999px !important;
  color: #4776ff !important;
  background: rgba(71,118,255,.09) !important;
  box-shadow: none !important;
  font-size: 0 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  vertical-align: middle !important;
  transform: none !important;
  cursor: help !important;
}

.ca-form-card .tooltip_icon i,
.ca-auth .tooltip_icon i {
  display: none !important;
}

.ca-form-card .tooltip_icon::before,
.ca-auth .tooltip_icon::before {
  content: "?";
  display: block;
  color: #4776ff;
  font-size: 12px;
  line-height: 1;
  font-weight: 950;
  font-family: var(--ca-font);
}

.ca-form-card label .tooltip,
.ca-form-card .chk_box .tooltip,
.ca-auth label .tooltip,
.ca-auth .chk_box .tooltip {
  display: none;
  width: 100%;
  margin: 8px 0 0 !important;
  padding: 10px 12px !important;
  border: 1px solid rgba(71,118,255,.14) !important;
  border-radius: 13px !important;
  color: #4d5a70 !important;
  background: rgba(245,248,255,.94) !important;
  box-shadow: 0 10px 24px rgba(33,45,82,.06) !important;
  font-size: 12px !important;
  line-height: 1.55 !important;
  font-weight: 650 !important;
  letter-spacing: -.025em !important;
  white-space: normal !important;
}

.ca-form-card label .tooltip.is-show,
.ca-form-card .chk_box .tooltip.is-show,
.ca-form-card .tooltip_icon:hover + .tooltip,
.ca-form-card .tooltip_icon:focus + .tooltip,
.ca-auth label .tooltip.is-show,
.ca-auth .chk_box .tooltip.is-show,
.ca-auth .tooltip_icon:hover + .tooltip,
.ca-auth .tooltip_icon:focus + .tooltip {
  display: block !important;
}

.ca-form-card .chk_box {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}

.ca-form-card .chk_box .chk_li {
  flex: 1 1 auto;
  min-width: 220px;
  color: #4f5d73;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: -.03em;
}

.ca-form-card .chk_box .tooltip_icon {
  margin-left: 0 !important;
}

.ca-form-card .btn_frmline,
.ca-form-card .btn_file {
  min-width: 86px !important;
  width: auto !important;
  white-space: nowrap !important;
}

@media (max-width: 640px) {
  .ca-form-card .tooltip_icon,
  .ca-auth .tooltip_icon {
    width: 20px !important;
    min-width: 20px !important;
    height: 20px !important;
    min-height: 20px !important;
    margin-left: 5px !important;
  }

  .ca-form-card .tooltip_icon::before,
  .ca-auth .tooltip_icon::before {
    font-size: 11px;
  }

  .ca-form-card label .tooltip,
  .ca-form-card .chk_box .tooltip,
  .ca-auth label .tooltip,
  .ca-auth .chk_box .tooltip {
    font-size: 11.5px !important;
  }

  .ca-form-card .chk_box .chk_li {
    min-width: 0;
    flex-basis: calc(100% - 42px);
    font-size: 12.5px;
  }
}


/* v8: 정보수정/비밀번호 확인 화면 정리
   - 정보수정(w=u)에서는 좌측 안내 + 폼 영역이 너무 좁아지지 않도록 단일 컬럼으로 전환
   - 기본 member_confirm 스킨을 커뮤니티 계정 화면 톤으로 래핑 */
.ca-register-form.is-modify {
  padding-top: clamp(14px, 2vw, 32px);
  padding-bottom: clamp(14px, 2vw, 32px);
}

.ca-form-shell.is-modify {
  width: min(980px, 100%);
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: 16px;
}

.ca-form-shell.is-modify .ca-form-hero {
  min-height: auto;
  padding: clamp(22px, 3vw, 32px);
}

.ca-form-shell.is-modify .ca-form-hero::after {
  width: 170px;
  height: 170px;
  right: -54px;
  bottom: -78px;
}

.ca-form-shell.is-modify .ca-form-hero .ca-badge {
  margin-top: 24px;
}

.ca-form-shell.is-modify .ca-form-hero h1 {
  font-size: clamp(28px, 3.7vw, 40px);
  line-height: 1.16;
}

.ca-form-shell.is-modify .ca-form-hero p {
  width: min(100%, 720px);
  margin-top: 12px;
}

.ca-form-shell.is-modify .ca-step-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 20px;
}

.ca-form-shell.is-modify .ca-step-list span {
  justify-content: center;
  min-height: 38px;
  padding: 0 12px;
  text-align: center;
}

.ca-form-card.ca-modify-card {
  overflow: visible;
  padding: clamp(22px, 3vw, 34px);
}

.ca-modify-card #register_form,
.ca-modify-card .form_01 {
  display: grid !important;
  gap: 16px !important;
}

.ca-modify-card .register_form_inner,
.ca-modify-card .tbl_frm01.register_form_inner {
  overflow: hidden;
  margin: 0 !important;
  padding: clamp(18px, 2.3vw, 24px) !important;
  border: 1px solid rgba(35,48,78,.10) !important;
  border-radius: 22px !important;
  background: rgba(255,255,255,.58) !important;
  box-shadow: 0 14px 34px rgba(33,45,82,.06) !important;
}

.ca-modify-card .register_form_inner h2,
.ca-modify-card .tbl_frm01 h2,
.ca-modify-card .form_01 h2 {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 16px !important;
  font-size: 18px !important;
}

.ca-modify-card .register_form_inner h2::before {
  content: "";
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--ca-blue), var(--ca-purple));
  box-shadow: 0 0 0 6px rgba(71,118,255,.10);
}

.ca-form-card .half_input,
.ca-form-card .left_input,
.ca-form-card .margin_input {
  float: none !important;
  clear: both !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.ca-form-card .register_form_inner > ul > li,
.ca-form-card .tbl_frm01 .register_form_inner > ul > li,
.ca-form-card .form_01 .register_form_inner > ul > li {
  width: 100% !important;
  min-width: 0 !important;
}

.ca-form-card .ca-is-readonly input,
.ca-form-card input[readonly],
.ca-form-card input.readonly {
  color: #65728a !important;
  background: rgba(241,244,252,.85) !important;
  border-color: rgba(35,48,78,.09) !important;
  cursor: default;
}

.ca-form-card .cert_desc,
.ca-form-card #msg_certify {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  margin-left: 6px;
  padding: 0 8px;
  border-radius: 999px;
  color: var(--ca-blue-deep) !important;
  background: rgba(71,118,255,.09) !important;
  font-size: 11.5px !important;
  line-height: 1;
  font-weight: 900 !important;
  letter-spacing: -.03em;
}

.ca-form-card #msg_certify {
  display: flex;
  width: fit-content;
  margin: 4px 0 0;
}

.ca-form-card .frm_info br,
.ca-form-card .reg_msg br {
  display: none;
}

.ca-form-card .selec_chk,
.ca-form-card .marketing-sync,
.ca-form-card .child-promo {
  min-height: 30px;
}

.ca-form-card input[type="file"] {
  min-height: 46px;
  padding: 10px 12px;
  border: 1px dashed rgba(71,118,255,.26);
  border-radius: 15px;
  background: rgba(255,255,255,.72);
}

.ca-form-card .btn_confirm {
  padding-top: 2px;
}

.ca-form-card .btn_confirm .btn_submit,
.ca-form-card .btn_confirm input[type="submit"] {
  min-width: 160px;
}

.ca-form-card .btn_confirm .btn_cancel,
.ca-form-card .btn_confirm a.btn_cancel,
.ca-form-card .btn_confirm .btn_close {
  flex: 0 0 auto;
}

/* 정보수정 전 비밀번호 확인 */
.ca-confirm-page {
  display: flex;
  align-items: center;
}

.ca-confirm-shell {
  min-height: auto;
}

.ca-confirm-card {
  overflow: hidden;
}

.ca-basic-skin-wrap,
.ca-basic-skin-wrap .mbskin,
.ca-basic-skin-wrap #mb_confirm,
.ca-basic-skin-wrap .new_win,
.ca-basic-skin-wrap .new_win_con,
.ca-basic-skin-wrap .form_01 {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  float: none !important;
}

.ca-confirm-basic {
  margin-top: 20px;
}

.ca-confirm-basic h1,
.ca-confirm-basic h2,
.ca-confirm-basic .win_title,
.ca-confirm-basic #win_title {
  display: none !important;
}

.ca-confirm-basic p {
  display: none !important;
}

.ca-confirm-basic fieldset {
  display: grid;
  gap: 12px;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

.ca-confirm-basic #mb_confirm {
  display: grid;
  gap: 12px;
}

.ca-confirm-basic .confirm_id {
  margin-top: 2px !important;
}

.ca-confirm-basic .confirm_id,
.ca-confirm-basic .confirm_password,
.ca-confirm-basic label,
.ca-confirm-basic span:not(.sound_only) {
  color: #2d374d !important;
  font-size: 13px !important;
  line-height: 1.35;
  font-weight: 900 !important;
  letter-spacing: -.035em;
}

.ca-confirm-basic strong {
  display: block;
  margin-top: -6px;
  padding: 15px 16px;
  border: 1px solid rgba(35,48,78,.10);
  border-radius: 15px;
  color: var(--ca-title) !important;
  background: rgba(255,255,255,.74);
  font-size: 15px;
  font-weight: 950;
  letter-spacing: -.02em;
}

.ca-confirm-basic input[type="password"],
.ca-confirm-basic input.frm_input,
.ca-confirm-basic input.required {
  width: 100% !important;
  max-width: none !important;
}

.ca-confirm-basic .btn_submit,
.ca-confirm-basic input[type="submit"] {
  margin-top: 4px;
}

@media (max-width: 980px) {
  .ca-form-shell.is-modify .ca-step-list {
    grid-template-columns: 1fr;
  }

  .ca-form-shell.is-modify .ca-step-list span {
    justify-content: flex-start;
    text-align: left;
  }
}

@media (max-width: 640px) {
  .ca-form-shell.is-modify {
    gap: 10px;
  }

  .ca-form-shell.is-modify .ca-form-hero {
    padding: 20px;
  }

  .ca-form-shell.is-modify .ca-form-hero h1 {
    font-size: 27px;
  }

  .ca-modify-card .register_form_inner,
  .ca-modify-card .tbl_frm01.register_form_inner {
    padding: 16px !important;
    border-radius: 18px !important;
  }

  .ca-modify-card .register_form_inner h2,
  .ca-modify-card .tbl_frm01 h2,
  .ca-modify-card .form_01 h2 {
    font-size: 17px !important;
  }

  .ca-form-card .cert_desc,
  .ca-form-card #msg_certify {
    margin: 6px 0 0;
  }

  .ca-form-card .btn_confirm .btn_submit,
  .ca-form-card .btn_confirm input[type="submit"] {
    min-width: 0;
  }
}


/* v9: 회원가입 자동등록방지 중복 문구/캡차 영역 정리 */
.ca-form-card h2:empty,
.ca-form-card h3:empty {
  display: none !important;
}

.ca-captcha-hidden-label,
.ca-form-card #captcha legend.ca-captcha-hidden-label,
.ca-form-card #captcha label.ca-captcha-hidden-label,
.ca-form-card .ca-captcha-item > label.ca-captcha-hidden-label {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.ca-form-card .ca-captcha-item {
  margin-top: 2px !important;
}

.ca-form-card #captcha.ca-captcha-clean,
.ca-form-card .captcha.ca-captcha-clean {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 14px !important;
  border: 1px solid rgba(71,118,255,.13) !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.70) !important;
  box-shadow: 0 10px 24px rgba(33,45,82,.05) !important;
}

.ca-form-card #captcha.ca-captcha-clean img,
.ca-form-card .captcha.ca-captcha-clean img {
  display: block !important;
  max-width: 136px !important;
  height: 42px !important;
  object-fit: contain !important;
  border: 1px solid rgba(35,48,78,.12) !important;
  border-radius: 12px !important;
  background: #fff !important;
}

.ca-form-card #captcha.ca-captcha-clean input,
.ca-form-card .captcha.ca-captcha-clean input,
.ca-form-card #captcha.ca-captcha-clean input.frm_input,
.ca-form-card .captcha.ca-captcha-clean input.frm_input {
  flex: 1 1 128px !important;
  width: auto !important;
  min-width: 118px !important;
  max-width: none !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 0 13px !important;
  border-radius: 12px !important;
  font-size: 14px !important;
}

.ca-form-card #captcha.ca-captcha-clean button,
.ca-form-card .captcha.ca-captcha-clean button,
.ca-form-card #captcha_mp3,
.ca-form-card #captcha_reload {
  flex: 0 0 42px !important;
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 12px !important;
  font-size: 0 !important;
  line-height: 1 !important;
}

.ca-form-card #captcha.ca-captcha-clean button span,
.ca-form-card .captcha.ca-captcha-clean button span {
  margin: 0 !important;
}

.ca-form-card #captcha_info {
  flex: 1 0 100% !important;
  display: block !important;
  margin: 2px 0 0 !important;
  color: var(--ca-muted) !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  font-weight: 700 !important;
  letter-spacing: -.03em !important;
}

.ca-form-card .register_form_inner h2,
.ca-form-card .tbl_frm01 h2,
.ca-form-card .form_01 h2 {
  word-break: keep-all;
}

@media (max-width: 520px) {
  .ca-form-card #captcha.ca-captcha-clean,
  .ca-form-card .captcha.ca-captcha-clean {
    gap: 7px !important;
    padding: 12px !important;
  }

  .ca-form-card #captcha.ca-captcha-clean img,
  .ca-form-card .captcha.ca-captcha-clean img {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: none !important;
  }

  .ca-form-card #captcha.ca-captcha-clean input,
  .ca-form-card .captcha.ca-captcha-clean input,
  .ca-form-card #captcha.ca-captcha-clean input.frm_input,
  .ca-form-card .captcha.ca-captcha-clean input.frm_input {
    flex: 1 1 calc(100% - 98px) !important;
  }
}


/* v10: member_confirm 기본 안내문 중복 제거 */
.ca-confirm-basic .mb_confirm_msg,
.ca-confirm-basic .confirm_msg {
  display: none !important;
}

/* v11/v12: 캡차 버튼이 무슨 기능인지 보이도록 실제 텍스트 라벨 표시 */
.ca-form-card #captcha.ca-captcha-clean button,
.ca-form-card .captcha.ca-captcha-clean button,
.ca-form-card #captcha_mp3,
.ca-form-card #captcha_reload {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 64px !important;
  height: 42px !important;
  min-height: 42px !important;
  padding: 0 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(86,126,255,.26) !important;
  border-radius: 13px !important;
  background: linear-gradient(180deg, #f8fbff 0%, #eef4ff 100%) !important;
  color: #2456d6 !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: -.04em !important;
  line-height: 1 !important;
  box-shadow: 0 8px 18px rgba(75,112,255,.08) !important;
  text-indent: 0 !important;
  overflow: visible !important;
  white-space: nowrap !important;
}

/* v12: 버튼 텍스트는 JS에서 실제 문구로 교체합니다. pseudo-label은 중복 표시를 막기 위해 사용하지 않습니다. */

.ca-form-card #captcha_mp3:hover,
.ca-form-card #captcha_reload:hover {
  transform: translateY(-1px);
  border-color: rgba(86,126,255,.44) !important;
  background: linear-gradient(180deg, #ffffff 0%, #e8f0ff 100%) !important;
}

.ca-form-card #captcha.ca-captcha-clean button span,
.ca-form-card .captcha.ca-captcha-clean button span,
.ca-form-card #captcha_mp3 span,
.ca-form-card #captcha_reload span,
.ca-form-card #captcha_mp3 img,
.ca-form-card #captcha_reload img {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

@media (max-width: 520px) {
  .ca-form-card #captcha.ca-captcha-clean input,
  .ca-form-card .captcha.ca-captcha-clean input,
  .ca-form-card #captcha.ca-captcha-clean input.frm_input,
  .ca-form-card .captcha.ca-captcha-clean input.frm_input {
    flex: 1 1 100% !important;
  }

  .ca-form-card #captcha_mp3,
  .ca-form-card #captcha_reload {
    flex: 1 1 calc(50% - 4px) !important;
    min-width: 0 !important;
  }

  .ca-form-card #captcha_mp3::before,
  .ca-form-card .captcha.ca-captcha-clean #captcha_mp3::before {
    content: "음성 듣기";
  }

  .ca-form-card #captcha_reload::before,
  .ca-form-card .captcha.ca-captcha-clean #captcha_reload::before {
    content: "새로고침";
  }
}


/* v12: 캡차 버튼 중복 문구 방지 + 명확한 버튼 크기 */
.ca-form-card #captcha_mp3,
.ca-form-card #captcha_reload {
  min-width: 66px !important;
}
.ca-form-card #captcha_reload {
  min-width: 78px !important;
}
.ca-form-card #captcha_mp3::before,
.ca-form-card #captcha_reload::before {
  content: none !important;
  display: none !important;
}

/* v13: 캡차 공통 최종 보정 — 회원가입/정보수정/아이디찾기 모두 동일하게 */
.ca-auth .ca-captcha-hidden-label,
.ca-auth #captcha legend.ca-captcha-hidden-label,
.ca-auth #captcha label.ca-captcha-hidden-label,
.ca-auth .captcha legend.ca-captcha-hidden-label,
.ca-auth .captcha label.ca-captcha-hidden-label,
.ca-auth .ca-has-captcha > .ca-captcha-hidden-label {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.ca-auth #captcha.ca-captcha-clean,
.ca-auth .captcha.ca-captcha-clean {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 14px !important;
  border: 1px solid rgba(71,118,255,.13) !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.74) !important;
  box-shadow: 0 10px 24px rgba(33,45,82,.05) !important;
}

.ca-recovery .ca-captcha-wrap {
  margin-top: 16px !important;
}

.ca-auth #captcha.ca-captcha-clean img,
.ca-auth .captcha.ca-captcha-clean img {
  display: block !important;
  flex: 0 0 auto !important;
  width: 112px !important;
  max-width: 112px !important;
  height: 42px !important;
  object-fit: contain !important;
  border: 1px solid rgba(35,48,78,.12) !important;
  border-radius: 12px !important;
  background: #fff !important;
}

.ca-auth #captcha.ca-captcha-clean input,
.ca-auth .captcha.ca-captcha-clean input,
.ca-auth #captcha.ca-captcha-clean input.frm_input,
.ca-auth .captcha.ca-captcha-clean input.frm_input,
.ca-auth #captcha_key {
  flex: 1 1 150px !important;
  width: auto !important;
  min-width: 120px !important;
  max-width: none !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 0 13px !important;
  border-radius: 12px !important;
  font-size: 14px !important;
}

.ca-auth #captcha.ca-captcha-clean button,
.ca-auth .captcha.ca-captcha-clean button,
.ca-auth #captcha_mp3,
.ca-auth #captcha_reload {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 66px !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 0 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(86,126,255,.26) !important;
  border-radius: 13px !important;
  background: linear-gradient(180deg, #f8fbff 0%, #eef4ff 100%) !important;
  color: #2456d6 !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: -.04em !important;
  line-height: 1 !important;
  text-indent: 0 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  box-shadow: 0 8px 18px rgba(75,112,255,.08) !important;
}

.ca-auth #captcha_reload {
  min-width: 78px !important;
}

.ca-auth #captcha_mp3::before,
.ca-auth #captcha_reload::before {
  content: none !important;
  display: none !important;
}

.ca-auth #captcha.ca-captcha-clean button span,
.ca-auth .captcha.ca-captcha-clean button span,
.ca-auth #captcha_mp3 span,
.ca-auth #captcha_reload span,
.ca-auth #captcha_mp3 img,
.ca-auth #captcha_reload img {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.ca-auth #captcha_info {
  flex: 1 0 100% !important;
  display: block !important;
  margin: 2px 0 0 !important;
  color: var(--ca-muted) !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  font-weight: 750 !important;
  letter-spacing: -.03em !important;
}

@media (max-width: 520px) {
  .ca-auth #captcha.ca-captcha-clean,
  .ca-auth .captcha.ca-captcha-clean {
    gap: 7px !important;
    padding: 12px !important;
  }

  .ca-auth #captcha.ca-captcha-clean img,
  .ca-auth .captcha.ca-captcha-clean img {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: none !important;
  }

  .ca-auth #captcha.ca-captcha-clean input,
  .ca-auth .captcha.ca-captcha-clean input,
  .ca-auth #captcha.ca-captcha-clean input.frm_input,
  .ca-auth .captcha.ca-captcha-clean input.frm_input,
  .ca-auth #captcha_key {
    flex: 1 1 100% !important;
  }

  .ca-auth #captcha_mp3,
  .ca-auth #captcha_reload {
    flex: 1 1 calc(50% - 4px) !important;
    min-width: 0 !important;
  }
}


/* v14: 히어로 문구/모바일 타이포 최종 정리
   - 강제 줄바꿈과 과한 굵기 때문에 계정찾기/회원가입/정보수정 안내 문구가 깨져 보이던 문제 개선 */
.ca-register-hero h1,
.ca-form-hero h1,
.ca-recovery-side h1 {
  max-width: 640px;
  text-wrap: balance;
  word-break: keep-all;
  overflow-wrap: normal;
}

.ca-recovery-side h1 {
  font-size: clamp(32px, 4.05vw, 48px);
  line-height: 1.18;
  letter-spacing: -.052em;
}

.ca-register-hero h1,
.ca-form-hero h1 {
  font-size: clamp(31px, 3.9vw, 46px);
  line-height: 1.18;
}

.ca-recovery-side p,
.ca-register-hero p,
.ca-form-hero p {
  max-width: 560px;
}

.ca-recovery-tips span,
.ca-step-list span {
  word-break: keep-all;
}

@media (max-width: 980px) {
  .ca-recovery-side,
  .ca-register-hero,
  .ca-form-hero {
    min-height: auto;
  }

  .ca-recovery-side h1,
  .ca-register-hero h1,
  .ca-form-hero h1 {
    font-size: clamp(28px, 5.8vw, 38px);
    line-height: 1.18;
    letter-spacing: -.048em;
  }
}

@media (max-width: 640px) {
  .ca-recovery-side,
  .ca-register-hero,
  .ca-form-hero {
    padding: 18px;
  }

  .ca-recovery-side .ca-badge,
  .ca-register-hero .ca-badge,
  .ca-form-hero .ca-badge {
    margin-top: 22px;
  }

  .ca-recovery-side h1,
  .ca-register-hero h1,
  .ca-form-hero h1 {
    margin-top: 14px;
    font-size: 28px;
    line-height: 1.2;
    letter-spacing: -.045em;
  }

  .ca-recovery-side p,
  .ca-register-hero p,
  .ca-form-hero p {
    margin-top: 10px;
    font-size: 13px;
    line-height: 1.62;
  }

  .ca-recovery-tips,
  .ca-step-list {
    gap: 8px;
    margin-top: 18px;
  }

  .ca-recovery-tips div,
  .ca-step-list span {
    min-height: 40px;
    padding: 8px 12px;
    border-radius: 15px;
  }

  .ca-recovery-tips strong {
    min-width: 36px;
    height: 24px;
    font-size: 11px;
  }

  .ca-recovery-tips span,
  .ca-step-list span {
    font-size: 12px;
    line-height: 1.35;
  }

  .ca-reset .ca-recovery-tips,
  .ca-recovery-tips {
    grid-template-columns: 1fr;
  }

  .ca-recovery-tips div {
    align-items: center;
    flex-direction: row;
    justify-content: flex-start;
    text-align: left;
  }
}

@media (max-width: 380px) {
  .ca-recovery-side h1,
  .ca-register-hero h1,
  .ca-form-hero h1 {
    font-size: 25px;
    letter-spacing: -.04em;
  }
}


/* v15 friendly typography polish */
.ca-auth,
.ca-auth * {
  font-family: var(--ca-font) !important;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.ca-side-title h2,
.ca-register-hero h1,
.ca-form-hero h1,
.ca-recovery-side h1 {
  font-size: clamp(30px, 4.1vw, 48px) !important;
  line-height: 1.21 !important;
  font-weight: 780 !important;
  letter-spacing: -.032em !important;
}

.ca-card-head h1,
.ca-card-head h2 {
  font-size: clamp(25px, 2.7vw, 34px) !important;
  line-height: 1.25 !important;
  font-weight: 780 !important;
  letter-spacing: -.03em !important;
}

.ca-side-title p,
.ca-register-hero p,
.ca-form-hero p,
.ca-recovery-side p,
.ca-card-head p,
.ca-post-card p,
.ca-member-row p,
.ca-term-box textarea,
.ca-form-card .frm_info,
.ca-form-card .reg_msg,
.ca-form-card #msg_mb_id,
.ca-form-card #msg_mb_nick,
.ca-form-card #msg_mb_email,
.ca-recovery-form p,
.ca-cert-panel p,
.ca-guest-box p {
  line-height: 1.72 !important;
  font-weight: 520 !important;
  letter-spacing: -.012em !important;
}

.ca-brand strong,
.ca-mini-card strong,
.ca-form-card label,
.ca-form-card th,
.ca-form-card .form_01 label,
.ca-term-title h3,
.ca-captcha-clean #captcha_info,
.ca-login-info a,
.ca-check label {
  font-weight: 680 !important;
  letter-spacing: -.018em !important;
}

.ca-logo,
.ca-badge,
.ca-tabs span,
.ca-tabs a,
.ca-submit,
.ca-actions a,
.ca-captcha-clean #captcha_mp3,
.ca-captcha-clean #captcha_reload,
.ca-cert-buttons .btn_submit,
.ca-step-list span,
.ca-recovery-tips div strong {
  font-weight: 740 !important;
  letter-spacing: -.012em !important;
}

.ca-form-card h2,
.ca-form-card .form_01 h2,
.ca-form-card .tbl_frm01 h2,
.ca-form-card .register_form_inner h2,
.ca-modify-card .register_form_inner h2,
.ca-modify-card .tbl_frm01 h2,
.ca-modify-card .form_01 h2 {
  font-size: 18px !important;
  line-height: 1.45 !important;
  font-weight: 760 !important;
  letter-spacing: -.025em !important;
  margin-top: 22px !important;
}

.ca-field input,
.ca-auth input.frm_input,
.ca-auth textarea,
.ca-auth select {
  font-weight: 520 !important;
  letter-spacing: -.012em !important;
}

.ca-auth input::placeholder,
.ca-auth textarea::placeholder {
  color: #a3adbf !important;
  font-weight: 520 !important;
}

.ca-post-card,
.ca-mini-card,
.ca-member-row,
.ca-step-list span,
.ca-recovery-tips div,
.ca-term-box,
.ca-all-check,
.ca-account-box,
.ca-cert-panel {
  border-color: rgba(71, 118, 255, .11) !important;
}

.ca-card,
.ca-terms-card,
.ca-form-card,
.ca-recovery-card {
  background: rgba(255, 255, 255, .90) !important;
}

@media (max-width: 640px) {
  .ca-side-title h2,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1 {
    font-size: 25px !important;
    line-height: 1.27 !important;
    letter-spacing: -.026em !important;
  }

  .ca-card-head h1,
  .ca-card-head h2 {
    font-size: 23px !important;
    line-height: 1.28 !important;
  }

  .ca-side-title p,
  .ca-register-hero p,
  .ca-form-hero p,
  .ca-recovery-side p,
  .ca-card-head p {
    font-size: 13px !important;
    line-height: 1.7 !important;
  }

  .ca-form-card h2,
  .ca-form-card .form_01 h2,
  .ca-form-card .tbl_frm01 h2,
  .ca-form-card .register_form_inner h2 {
    font-size: 17px !important;
  }
}

/* v16: 모바일 회원가입 약관 화면 긴급 정리
   - 글자가 한 글자씩 깨져 보이던 원인(overflow-wrap:anywhere) 제거
   - 개인정보 안내를 표 대신 카드형 목록으로 안정화
   - 모바일에서 약관 카드/버튼/체크박스가 밀리지 않도록 보정 */
.ca-auth,
.ca-auth * {
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

.ca-auth input,
.ca-auth textarea,
.ca-auth select,
.ca-auth code,
.ca-auth pre,
.ca-auth .ca-account-box strong,
.ca-auth .ca-privacy-item strong {
  word-break: break-word !important;
  overflow-wrap: break-word !important;
}

body.ca-auth-page {
  overflow-x: hidden !important;
}

.ca-auth {
  width: 100% !important;
  max-width: 100% !important;
}

.ca-register-terms .ca-register-shell {
  align-items: stretch;
}

.ca-register-terms .ca-register-hero {
  min-height: auto;
}

.ca-privacy-list {
  display: grid;
  gap: 10px;
  padding: 12px;
}

.ca-privacy-item {
  overflow: hidden;
  border: 1px solid rgba(35, 48, 78, .10);
  border-radius: 17px;
  background: rgba(255, 255, 255, .76);
}

.ca-privacy-item > div {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(35, 48, 78, .08);
}

.ca-privacy-item > div:last-child {
  border-bottom: 0;
}

.ca-privacy-item span {
  color: #6b768d;
  font-size: 12px;
  line-height: 1.45;
  font-weight: 720;
  letter-spacing: -.01em;
}

.ca-privacy-item strong {
  color: #263149;
  font-size: 13px;
  line-height: 1.55;
  font-weight: 620;
  letter-spacing: -.012em;
}

.ca-terms-card .ca-actions .btn_close,
.ca-terms-card .ca-actions .ca-submit,
.ca-terms-card .ca-actions .btn_submit {
  justify-content: center !important;
  text-align: center !important;
}

@media (max-width: 640px) {
  .ca-auth {
    min-height: auto;
    padding: 8px !important;
  }

  .ca-register-shell,
  .ca-form-shell,
  .ca-recovery-shell,
  .ca-shell {
    gap: 10px !important;
    width: 100% !important;
  }

  .ca-register-hero,
  .ca-form-hero,
  .ca-recovery-side,
  .ca-card,
  .ca-terms-card,
  .ca-form-card,
  .ca-recovery-card {
    width: 100% !important;
    max-width: 100% !important;
    padding: 18px 16px !important;
    border-radius: 22px !important;
  }

  .ca-register-hero::before,
  .ca-form-hero::before,
  .ca-recovery-side::before,
  .ca-side::before {
    inset: 9px !important;
    border-radius: 18px !important;
  }

  .ca-register-hero .ca-badge,
  .ca-form-hero .ca-badge,
  .ca-recovery-side .ca-badge,
  .ca-side-title {
    margin-top: 18px !important;
  }

  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1,
  .ca-side-title h2 {
    margin-top: 13px !important;
    font-size: 24px !important;
    line-height: 1.32 !important;
    letter-spacing: -.02em !important;
  }

  .ca-register-hero p,
  .ca-form-hero p,
  .ca-recovery-side p,
  .ca-side-title p {
    margin-top: 9px !important;
    font-size: 13px !important;
    line-height: 1.68 !important;
  }

  .ca-step-list,
  .ca-recovery-tips {
    gap: 7px !important;
    margin-top: 16px !important;
  }

  .ca-step-list span,
  .ca-recovery-tips div {
    min-height: 38px !important;
    padding: 8px 12px !important;
    border-radius: 15px !important;
    font-size: 12.5px !important;
    line-height: 1.35 !important;
  }

  .ca-card-head h1,
  .ca-card-head h2 {
    font-size: 23px !important;
    line-height: 1.32 !important;
    letter-spacing: -.02em !important;
  }

  .ca-card-head p {
    font-size: 13px !important;
    line-height: 1.68 !important;
  }

  .ca-term-title {
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    padding: 13px 14px !important;
  }

  .ca-term-title h3 {
    min-width: 0;
    font-size: 14px !important;
    line-height: 1.35 !important;
  }

  .ca-term-title h3 em {
    height: 20px;
    padding: 0 6px;
    font-size: 10.5px;
  }

  .ca-mini-check {
    flex: 0 0 auto;
    font-size: 12.5px !important;
  }

  .ca-term-box textarea {
    height: 128px !important;
    min-height: 128px !important;
    padding: 13px !important;
    font-size: 12.5px !important;
    line-height: 1.65 !important;
  }

  .ca-privacy-list {
    gap: 9px;
    padding: 10px;
  }

  .ca-privacy-item {
    border-radius: 16px;
  }

  .ca-privacy-item > div {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 8px;
    padding: 10px 11px;
  }

  .ca-privacy-item span {
    font-size: 11.5px;
  }

  .ca-privacy-item strong {
    font-size: 12.5px;
    line-height: 1.55;
  }

  .ca-all-check {
    padding: 13px 14px !important;
  }

  .ca-all-check label,
  .ca-mini-check,
  .ca-check label,
  .ca-auth .chk_box label {
    font-size: 12.5px !important;
  }

  .ca-terms-card .ca-actions,
  .ca-auth .btn_confirm,
  .ca-auth .win_btn {
    gap: 9px !important;
    margin-top: 14px !important;
  }

  .ca-terms-card .ca-actions .btn_close,
  .ca-terms-card .ca-actions .ca-submit,
  .ca-terms-card .ca-actions .btn_submit {
    min-height: 48px !important;
    padding: 0 16px !important;
    border-radius: 15px !important;
    font-size: 14px !important;
  }
}

@media (max-width: 380px) {
  .ca-auth {
    padding: 6px !important;
  }

  .ca-register-hero,
  .ca-form-hero,
  .ca-recovery-side,
  .ca-card,
  .ca-terms-card,
  .ca-form-card,
  .ca-recovery-card {
    padding: 16px 14px !important;
  }

  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1,
  .ca-side-title h2,
  .ca-card-head h1,
  .ca-card-head h2 {
    font-size: 22px !important;
  }

  .ca-privacy-item > div {
    grid-template-columns: 70px minmax(0, 1fr);
  }
}


/* v17: 모바일 폰트/간격 소형화
   - 모바일에서 전체 글자가 과하게 커 보이는 문제 보정
   - 제목, 본문, 약관, 폼, 버튼의 크기를 한 단계 낮춤 */
@media (max-width: 640px) {
  .ca-auth {
    font-size: 13px !important;
    line-height: 1.58 !important;
  }

  .ca-register-hero,
  .ca-form-hero,
  .ca-recovery-side,
  .ca-side,
  .ca-card,
  .ca-terms-card,
  .ca-form-card,
  .ca-recovery-card {
    padding: 16px 14px !important;
    border-radius: 20px !important;
  }

  .ca-logo {
    width: 38px !important;
    height: 38px !important;
    flex-basis: 38px !important;
    border-radius: 13px !important;
    font-size: 12px !important;
  }

  .ca-badge {
    min-height: 25px !important;
    padding: 0 9px !important;
    border-radius: 999px !important;
    font-size: 10.5px !important;
    line-height: 1 !important;
  }

  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1,
  .ca-side-title h2 {
    margin-top: 12px !important;
    font-size: 21px !important;
    line-height: 1.34 !important;
    letter-spacing: -.018em !important;
  }

  .ca-register-hero p,
  .ca-form-hero p,
  .ca-recovery-side p,
  .ca-side-title p,
  .ca-card-head p,
  .ca-post-card p,
  .ca-member-row p,
  .ca-recovery-form p,
  .ca-cert-panel p,
  .ca-guest-box p {
    font-size: 12px !important;
    line-height: 1.66 !important;
  }

  .ca-step-list,
  .ca-recovery-tips {
    gap: 6px !important;
    margin-top: 14px !important;
  }

  .ca-step-list span,
  .ca-recovery-tips div {
    min-height: 35px !important;
    padding: 7px 10px !important;
    border-radius: 13px !important;
    font-size: 11.5px !important;
    line-height: 1.32 !important;
  }

  .ca-step-list b,
  .ca-recovery-tips strong {
    min-width: 32px !important;
    height: 22px !important;
    padding: 0 8px !important;
    font-size: 10.5px !important;
  }

  .ca-card-head h1,
  .ca-card-head h2,
  .ca-terms-card .ca-card-head h1,
  .ca-terms-card .ca-card-head h2,
  .ca-recovery-card .ca-card-head h1,
  .ca-recovery-card .ca-card-head h2 {
    font-size: 20px !important;
    line-height: 1.34 !important;
    letter-spacing: -.018em !important;
  }

  .ca-form-card h2,
  .ca-form-card .form_01 h2,
  .ca-form-card .tbl_frm01 h2,
  .ca-form-card .register_form_inner h2,
  .ca-modify-card .register_form_inner h2,
  .ca-modify-card .tbl_frm01 h2,
  .ca-modify-card .form_01 h2 {
    margin-top: 18px !important;
    font-size: 15px !important;
    line-height: 1.42 !important;
  }

  .ca-term-title {
    padding: 11px 12px !important;
    gap: 8px !important;
  }

  .ca-term-title h3 {
    font-size: 13px !important;
    line-height: 1.34 !important;
  }

  .ca-term-title h3 em {
    height: 19px !important;
    padding: 0 6px !important;
    font-size: 10px !important;
  }

  .ca-mini-check,
  .ca-all-check label,
  .ca-check label,
  .ca-auth .chk_box label,
  .ca-form-card label,
  .ca-auth label,
  .ca-form-card th,
  .ca-auth th {
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  .ca-term-box textarea {
    height: 112px !important;
    min-height: 112px !important;
    padding: 12px !important;
    font-size: 12px !important;
    line-height: 1.62 !important;
  }

  .ca-privacy-list {
    gap: 7px !important;
    padding: 8px !important;
  }

  .ca-privacy-item {
    border-radius: 14px !important;
  }

  .ca-privacy-item > div {
    grid-template-columns: 66px minmax(0, 1fr) !important;
    gap: 7px !important;
    padding: 9px 10px !important;
  }

  .ca-privacy-item span {
    font-size: 10.5px !important;
    line-height: 1.4 !important;
  }

  .ca-privacy-item strong {
    font-size: 11.5px !important;
    line-height: 1.5 !important;
  }

  .ca-field input,
  .ca-auth input.frm_input,
  .ca-auth input.full_input,
  .ca-auth input[type="text"],
  .ca-auth input[type="password"],
  .ca-auth input[type="email"],
  .ca-auth input[type="tel"],
  .ca-auth input[type="number"],
  .ca-auth textarea,
  .ca-auth select {
    min-height: 44px !important;
    padding: 0 13px !important;
    border-radius: 13px !important;
    font-size: 13px !important;
  }

  .ca-auth textarea {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  .ca-submit,
  .ca-auth .btn_submit,
  .ca-auth input[type="submit"],
  .ca-actions .btn_close,
  .ca-auth .btn_close,
  .ca-auth .btn_cancel,
  .ca-terms-card .ca-actions .btn_close,
  .ca-terms-card .ca-actions .ca-submit,
  .ca-terms-card .ca-actions .btn_submit {
    min-height: 44px !important;
    padding: 0 14px !important;
    border-radius: 14px !important;
    font-size: 13px !important;
  }

  .ca-all-check {
    padding: 12px !important;
    border-radius: 15px !important;
  }

  .ca-captcha-clean #captcha_info,
  .ca-form-card .frm_info,
  .ca-form-card .reg_msg,
  .ca-form-card #msg_mb_id,
  .ca-form-card #msg_mb_nick,
  .ca-form-card #msg_mb_email {
    font-size: 11.5px !important;
    line-height: 1.55 !important;
  }

  .ca-captcha-clean #captcha_mp3,
  .ca-captcha-clean #captcha_reload {
    min-height: 38px !important;
    padding: 0 10px !important;
    font-size: 11.5px !important;
    border-radius: 12px !important;
  }
}

@media (max-width: 380px) {
  .ca-register-hero,
  .ca-form-hero,
  .ca-recovery-side,
  .ca-side,
  .ca-card,
  .ca-terms-card,
  .ca-form-card,
  .ca-recovery-card {
    padding: 14px 12px !important;
  }

  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1,
  .ca-side-title h2,
  .ca-card-head h1,
  .ca-card-head h2 {
    font-size: 19px !important;
  }

  .ca-register-hero p,
  .ca-form-hero p,
  .ca-recovery-side p,
  .ca-side-title p,
  .ca-card-head p {
    font-size: 11.5px !important;
  }

  .ca-privacy-item > div {
    grid-template-columns: 62px minmax(0, 1fr) !important;
  }
}

/* community_auth_v18
   - 친절한 문구 톤에 맞춰 폰트/자간/소셜 로그인 UI 재정리
   - 카카오/네이버 간편 로그인만 커스텀 버튼으로 노출 */
:root {
  --ca-font: "Pretendard Variable", "Pretendard", "SUIT Variable", "SUIT", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", Arial, sans-serif;
}

.ca-auth,
.ca-auth * {
  font-family: var(--ca-font) !important;
}

.ca-side-title h2,
.ca-register-hero h1,
.ca-form-hero h1,
.ca-recovery-side h1,
.ca-card-head h1,
.ca-card-head h2 {
  font-weight: 850;
  letter-spacing: -.04em;
  word-break: keep-all;
  overflow-wrap: normal;
}

.ca-card-head h1,
.ca-card-head h2 {
  font-size: clamp(27px, 2.75vw, 36px);
  line-height: 1.2;
}

.ca-side-title p,
.ca-register-hero p,
.ca-form-hero p,
.ca-recovery-side p,
.ca-card-head p,
.ca-help-box p,
.ca-term-box textarea,
.ca-privacy-item strong,
.ca-recovery-tips span,
.ca-step-list span {
  font-weight: 600;
  letter-spacing: -.025em;
}

.ca-field label,
.ca-form-card .tbl_frm01 th,
.ca-form-card .form_01 label,
.ca-auth .frm_label,
.ca-term-title h3 {
  font-weight: 800;
  letter-spacing: -.03em;
}

.ca-auth input.frm_input,
.ca-auth input.full_input,
.ca-auth input[type="text"],
.ca-auth input[type="password"],
.ca-auth input[type="email"],
.ca-auth input[type="tel"],
.ca-auth input[type="number"],
.ca-auth textarea,
.ca-auth select {
  font-weight: 560;
  letter-spacing: -.018em;
}

.ca-social-box {
  display: none;
  margin-top: 22px;
}

.ca-social-box.is-ready {
  display: block;
}

.ca-social-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 16px;
  color: #98a3b8;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: -.02em;
}

.ca-social-divider::before,
.ca-social-divider::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: rgba(35, 48, 78, .11);
}

.ca-social-head {
  margin-bottom: 12px;
}

.ca-social-head strong {
  display: block;
  color: #1b2538;
  font-size: 15px;
  line-height: 1.35;
  font-weight: 850;
  letter-spacing: -.035em;
}

.ca-social-head p {
  margin: 4px 0 0;
  color: #738098;
  font-size: 12.5px;
  line-height: 1.55;
  font-weight: 600;
  letter-spacing: -.025em;
}

.ca-social-native,
.ca-social-list {
  min-width: 0;
}

.ca-social-list {
  display: grid;
  gap: 9px;
}

.ca-social-btn {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100% !important;
  min-height: 50px;
  padding: 0 16px;
  border-radius: 15px;
  border: 1px solid rgba(35, 48, 78, .12);
  box-shadow: 0 10px 24px rgba(33, 45, 82, .08);
  text-decoration: none !important;
  transform: translateZ(0);
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

.ca-social-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(33, 45, 82, .12);
  filter: brightness(1.01);
}

.ca-social-btn strong {
  font-size: 14px;
  line-height: 1;
  font-weight: 850;
  letter-spacing: -.03em;
}

.ca-social-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 9px;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
}

.ca-social-kakao {
  background: #fee500 !important;
  color: #191600 !important;
  border-color: rgba(25, 22, 0, .08) !important;
}

.ca-social-kakao .ca-social-icon {
  background: rgba(25, 22, 0, .10);
  color: #191600;
}

.ca-social-naver {
  background: #03c75a !important;
  color: #fff !important;
  border-color: rgba(0, 0, 0, .04) !important;
}

.ca-social-naver .ca-social-icon {
  background: rgba(255, 255, 255, .20);
  color: #fff;
}

.ca-social-register {
  margin: 4px 0 22px;
  padding: 16px;
  border: 1px solid rgba(71, 118, 255, .12);
  border-radius: 20px;
  background: rgba(247, 249, 255, .82);
}

.ca-login .ca-submit {
  margin-top: 18px;
}

.ca-recovery-tips div span,
.ca-step-list span {
  word-break: keep-all;
}

@media (max-width: 640px) {
  .ca-side-title h2,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1 {
    font-size: 27px;
    line-height: 1.22;
    letter-spacing: -.04em;
  }

  .ca-card-head h1,
  .ca-card-head h2 {
    font-size: 24px;
    line-height: 1.24;
    letter-spacing: -.035em;
  }

  .ca-card-head p,
  .ca-side-title p,
  .ca-register-hero p,
  .ca-form-hero p,
  .ca-recovery-side p {
    font-size: 13px;
    line-height: 1.62;
  }

  .ca-social-box {
    margin-top: 18px;
  }

  .ca-social-head strong {
    font-size: 14px;
  }

  .ca-social-head p {
    font-size: 12px;
  }

  .ca-social-btn {
    min-height: 46px;
    border-radius: 14px;
  }

  .ca-social-btn strong {
    font-size: 13.5px;
  }

  .ca-form-hero h1 {
    font-size: 25px;
  }

  .ca-register-hero h1,
  .ca-recovery-side h1 {
    font-size: 26px;
  }
}

@media (max-width: 380px) {
  .ca-side-title h2,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1 {
    font-size: 24px;
  }

  .ca-card-head h1,
  .ca-card-head h2 {
    font-size: 22px;
  }
}

/* v19: 버튼 글자색/대비 보정
   - 일부 테마 공통 CSS가 .btn_submit 색상이나 배경을 덮어써서
     PC/모바일에서 '다음' 버튼 글자가 안 보이던 문제 수정 */
.ca-auth button.ca-submit,
.ca-auth .ca-submit,
.ca-auth .btn_submit,
.ca-auth input[type="submit"],
.ca-auth .btn_confirm .btn_submit,
.ca-auth .btn_confirm button[type="submit"],
.ca-auth .btn_confirm input[type="submit"],
.ca-terms-card .ca-actions button.ca-submit,
.ca-terms-card .ca-actions .ca-submit,
.ca-terms-card .ca-actions .btn_submit,
.ca-form-card .btn_confirm .btn_submit,
.ca-form-card .btn_confirm input[type="submit"] {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: linear-gradient(135deg, var(--ca-blue), var(--ca-purple)) !important;
  border-color: transparent !important;
  text-shadow: 0 1px 1px rgba(20, 30, 70, .16) !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.ca-auth button.ca-submit *,
.ca-auth .ca-submit *,
.ca-auth .btn_submit *,
.ca-auth .btn_confirm .btn_submit *,
.ca-terms-card .ca-actions .ca-submit *,
.ca-terms-card .ca-actions .btn_submit * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

.ca-auth .btn_close,
.ca-auth .btn_cancel,
.ca-auth a.btn_close,
.ca-auth a.btn_cancel,
.ca-terms-card .ca-actions .btn_close,
.ca-form-card .btn_confirm .btn_cancel,
.ca-form-card .btn_confirm a.btn_cancel,
.ca-form-card .btn_confirm .btn_close {
  color: #4f5f78 !important;
  -webkit-text-fill-color: #4f5f78 !important;
  background: rgba(255, 255, 255, .88) !important;
  border-color: rgba(83, 101, 134, .18) !important;
  text-shadow: none !important;
}

.ca-auth .btn_close *,
.ca-auth .btn_cancel *,
.ca-auth a.btn_close *,
.ca-auth a.btn_cancel * {
  color: #4f5f78 !important;
  -webkit-text-fill-color: #4f5f78 !important;
}

@media (max-width: 640px) {
  .ca-auth button.ca-submit,
  .ca-auth .ca-submit,
  .ca-auth .btn_submit,
  .ca-auth input[type="submit"],
  .ca-terms-card .ca-actions button.ca-submit,
  .ca-terms-card .ca-actions .ca-submit,
  .ca-terms-card .ca-actions .btn_submit {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    background: linear-gradient(135deg, var(--ca-blue), var(--ca-purple)) !important;
  }
}


/* v20: 전체 디자인/반응형 QA 보정
   - v18 이후 다시 커진 모바일 글자 크기 최종 고정
   - 버튼/소셜/완료 화면 대비와 줄바꿈 안정화
   - 긴 텍스트가 카드 밖으로 튀는 문제 방지 */
.ca-auth {
  min-width: 0 !important;
}

.ca-auth p,
.ca-auth strong,
.ca-auth span,
.ca-auth label,
.ca-auth a,
.ca-auth button,
.ca-auth h1,
.ca-auth h2,
.ca-auth h3,
.ca-auth li,
.ca-auth td,
.ca-auth th {
  min-width: 0;
}

.ca-auth p,
.ca-auth label,
.ca-auth .ca-card-head p,
.ca-auth .ca-help-box p,
.ca-auth .ca-privacy-item strong,
.ca-auth .frm_info,
.ca-auth .reg_msg {
  overflow-wrap: break-word !important;
}

.ca-auth a,
.ca-auth button,
.ca-auth input[type="submit"] {
  -webkit-appearance: none;
  appearance: none;
}

.ca-submit,
.ca-auth .btn_submit,
.ca-auth input[type="submit"],
.ca-auth .btn_close,
.ca-auth .btn_cancel,
.ca-social-btn {
  min-width: 0 !important;
  white-space: normal !important;
  text-align: center !important;
}

.ca-auth .btn_submit:disabled,
.ca-auth input[type="submit"]:disabled,
.ca-auth button:disabled {
  opacity: .58 !important;
  cursor: not-allowed !important;
  transform: none !important;
  filter: grayscale(.08) !important;
}

.ca-social-kakao,
.ca-social-kakao *,
.ca-social-kakao strong,
.ca-social-kakao .ca-social-icon {
  color: #191600 !important;
  -webkit-text-fill-color: #191600 !important;
}

.ca-social-naver,
.ca-social-naver *,
.ca-social-naver strong,
.ca-social-naver .ca-social-icon {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

.ca-social-native:empty,
.ca-social-list:empty {
  display: none !important;
}

.ca-form-card .btn_confirm,
.ca-form-card .btn_confirm > *,
.ca-terms-card .ca-actions,
.ca-terms-card .ca-actions > * {
  min-width: 0 !important;
}

.ca-form-card .btn_confirm input[type="submit"],
.ca-form-card .btn_confirm button[type="submit"] {
  flex: 1 1 180px !important;
}

.ca-form-card .btn_confirm a,
.ca-form-card .btn_confirm .btn_cancel,
.ca-form-card .btn_confirm .btn_close {
  flex: 0 1 auto !important;
}

.ca-auth input[type="checkbox"],
.ca-auth input[type="radio"] {
  -webkit-appearance: auto !important;
  appearance: auto !important;
}

/* 가입 완료 화면 */
.ca-result-page {
  display: flex;
  align-items: center;
}

.ca-result-shell {
  width: min(720px, 100%);
  margin: 0 auto;
}

.ca-result-card {
  position: relative;
  overflow: hidden;
  padding: clamp(28px, 4vw, 44px);
  border: 1px solid rgba(255,255,255,.74);
  border-radius: var(--ca-radius-xl);
  background: rgba(255,255,255,.92);
  box-shadow: var(--ca-shadow);
  text-align: center;
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
}

.ca-result-card::before {
  content: "";
  position: absolute;
  inset: 14px;
  border: 1px solid rgba(71,118,255,.10);
  border-radius: 23px;
  pointer-events: none;
}

.ca-result-card > * {
  position: relative;
  z-index: 1;
}

.ca-result-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  margin-bottom: 16px;
  border-radius: 24px;
  color: #fff;
  background: linear-gradient(135deg, var(--ca-blue), var(--ca-purple));
  box-shadow: 0 18px 36px rgba(71,118,255,.24);
  font-size: 32px;
  font-weight: 850;
}

.ca-result-card h1 {
  margin: 15px 0 0;
  color: var(--ca-title);
  font-size: clamp(27px, 3vw, 38px);
  line-height: 1.22;
  font-weight: 850;
  letter-spacing: -.035em;
}

.ca-result-card p {
  width: min(100%, 520px);
  margin: 12px auto 0;
  color: var(--ca-muted);
  font-size: 14px;
  line-height: 1.7;
  font-weight: 560;
  letter-spacing: -.018em;
}

.ca-result-help {
  width: min(100%, 500px);
  margin: 18px auto 0;
  text-align: left;
}

.ca-result-actions {
  justify-content: center;
  margin-top: 24px !important;
}

.ca-result-actions .btn_close,
.ca-result-actions .ca-submit {
  flex: 1 1 180px;
  max-width: 240px;
}

@media (max-width: 640px) {
  .ca-auth {
    padding: 8px !important;
    font-size: 12.5px !important;
    line-height: 1.58 !important;
  }

  .ca-shell,
  .ca-register-shell,
  .ca-form-shell,
  .ca-recovery-shell {
    gap: 9px !important;
  }

  .ca-side,
  .ca-card,
  .ca-register-hero,
  .ca-terms-card,
  .ca-form-hero,
  .ca-form-card,
  .ca-recovery-side,
  .ca-recovery-card,
  .ca-result-card {
    padding: 15px 13px !important;
    border-radius: 19px !important;
  }

  .ca-side::before,
  .ca-register-hero::before,
  .ca-form-hero::before,
  .ca-recovery-side::before,
  .ca-result-card::before {
    inset: 8px !important;
    border-radius: 16px !important;
  }

  .ca-brand strong {
    max-width: calc(100vw - 110px) !important;
    font-size: 13px !important;
  }

  .ca-brand span {
    font-size: 10.5px !important;
  }

  .ca-logo {
    width: 38px !important;
    height: 38px !important;
    flex-basis: 38px !important;
    border-radius: 13px !important;
    font-size: 12px !important;
  }

  .ca-badge {
    min-height: 24px !important;
    padding: 0 8px !important;
    font-size: 10.5px !important;
  }

  .ca-side-title,
  .ca-register-hero .ca-badge,
  .ca-form-hero .ca-badge,
  .ca-recovery-side .ca-badge {
    margin-top: 15px !important;
  }

  .ca-side-title h2,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1 {
    margin-top: 11px !important;
    font-size: 21px !important;
    line-height: 1.32 !important;
    font-weight: 780 !important;
    letter-spacing: -.018em !important;
  }

  .ca-side-title p,
  .ca-register-hero p,
  .ca-form-hero p,
  .ca-recovery-side p,
  .ca-card-head p,
  .ca-result-card p {
    margin-top: 8px !important;
    font-size: 12px !important;
    line-height: 1.66 !important;
  }

  .ca-card-head h1,
  .ca-card-head h2,
  .ca-result-card h1 {
    font-size: 20px !important;
    line-height: 1.34 !important;
    font-weight: 780 !important;
    letter-spacing: -.018em !important;
  }

  .ca-tabs {
    margin: 16px 0 14px !important;
    padding: 5px !important;
    border-radius: 15px !important;
  }

  .ca-tabs span,
  .ca-tabs a {
    min-height: 36px !important;
    border-radius: 12px !important;
    font-size: 12px !important;
  }

  .ca-field {
    margin-top: 12px !important;
  }

  .ca-field label,
  .ca-form-card .tbl_frm01 th,
  .ca-form-card .form_01 label,
  .ca-auth .frm_label,
  .ca-auth label {
    margin-bottom: 6px !important;
    font-size: 12px !important;
    line-height: 1.42 !important;
  }

  .ca-field input,
  .ca-auth input.frm_input,
  .ca-auth input.full_input,
  .ca-auth input[type="text"],
  .ca-auth input[type="password"],
  .ca-auth input[type="email"],
  .ca-auth input[type="tel"],
  .ca-auth input[type="number"],
  .ca-auth textarea,
  .ca-auth select {
    min-height: 42px !important;
    padding: 0 12px !important;
    border-radius: 12px !important;
    font-size: 12.5px !important;
  }

  .ca-submit,
  .ca-auth .btn_submit,
  .ca-auth input[type="submit"],
  .ca-actions .btn_close,
  .ca-auth .btn_close,
  .ca-auth .btn_cancel,
  .ca-social-btn {
    min-height: 42px !important;
    padding: 0 13px !important;
    border-radius: 13px !important;
    font-size: 12.5px !important;
  }

  .ca-login-info,
  .ca-actions,
  .ca-auth .btn_confirm,
  .ca-auth .win_btn {
    gap: 8px !important;
    margin-top: 13px !important;
  }

  .ca-social-box {
    margin-top: 15px !important;
  }

  .ca-social-divider {
    margin-bottom: 12px !important;
  }

  .ca-social-head strong {
    font-size: 13px !important;
  }

  .ca-social-head p {
    font-size: 11.5px !important;
  }

  .ca-social-icon {
    width: 23px !important;
    height: 23px !important;
    border-radius: 8px !important;
    font-size: 12px !important;
  }

  .ca-step-list,
  .ca-recovery-tips {
    gap: 6px !important;
    margin-top: 13px !important;
  }

  .ca-step-list span,
  .ca-recovery-tips div {
    min-height: 34px !important;
    padding: 7px 10px !important;
    border-radius: 13px !important;
    font-size: 11.5px !important;
    line-height: 1.32 !important;
  }

  .ca-term-title {
    padding: 10px 11px !important;
  }

  .ca-term-title h3 {
    font-size: 12.5px !important;
  }

  .ca-term-box textarea {
    height: 106px !important;
    min-height: 106px !important;
    font-size: 11.5px !important;
  }

  .ca-privacy-item > div {
    grid-template-columns: 62px minmax(0, 1fr) !important;
    padding: 8px 9px !important;
  }

  .ca-privacy-item span {
    font-size: 10.5px !important;
  }

  .ca-privacy-item strong {
    font-size: 11.3px !important;
  }

  .ca-form-card h2,
  .ca-form-card .form_01 h2,
  .ca-form-card .tbl_frm01 h2,
  .ca-form-card .register_form_inner h2,
  .ca-modify-card .register_form_inner h2,
  .ca-modify-card .tbl_frm01 h2,
  .ca-modify-card .form_01 h2 {
    margin-top: 16px !important;
    margin-bottom: 10px !important;
    font-size: 15px !important;
    line-height: 1.42 !important;
  }

  .ca-form-card .btn_frmline,
  .ca-form-card .btn_file,
  .ca-form-card button[type="button"] {
    min-height: 38px !important;
    border-radius: 12px !important;
    font-size: 11.5px !important;
  }

  .ca-auth #captcha.ca-captcha-clean,
  .ca-auth .captcha.ca-captcha-clean {
    gap: 6px !important;
    padding: 10px !important;
    border-radius: 15px !important;
  }

  .ca-auth #captcha.ca-captcha-clean img,
  .ca-auth .captcha.ca-captcha-clean img,
  .ca-auth #captcha.ca-captcha-clean input,
  .ca-auth .captcha.ca-captcha-clean input,
  .ca-auth #captcha.ca-captcha-clean input.frm_input,
  .ca-auth .captcha.ca-captcha-clean input.frm_input,
  .ca-auth #captcha_key {
    height: 38px !important;
    min-height: 38px !important;
  }

  .ca-auth #captcha_mp3,
  .ca-auth #captcha_reload {
    min-height: 38px !important;
    height: 38px !important;
    font-size: 11px !important;
  }

  .ca-auth #captcha_info,
  .ca-captcha-clean #captcha_info,
  .ca-form-card .frm_info,
  .ca-form-card .reg_msg,
  .ca-form-card #msg_mb_id,
  .ca-form-card #msg_mb_nick,
  .ca-form-card #msg_mb_email {
    font-size: 11px !important;
    line-height: 1.52 !important;
  }

  .ca-result-mark {
    width: 56px !important;
    height: 56px !important;
    border-radius: 19px !important;
    font-size: 26px !important;
    margin-bottom: 13px !important;
  }

  .ca-result-actions .btn_close,
  .ca-result-actions .ca-submit {
    max-width: none !important;
  }
}

@media (max-width: 380px) {
  .ca-auth {
    padding: 6px !important;
  }

  .ca-side,
  .ca-card,
  .ca-register-hero,
  .ca-terms-card,
  .ca-form-hero,
  .ca-form-card,
  .ca-recovery-side,
  .ca-recovery-card,
  .ca-result-card {
    padding: 13px 11px !important;
  }

  .ca-side-title h2,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1,
  .ca-card-head h1,
  .ca-card-head h2,
  .ca-result-card h1 {
    font-size: 19px !important;
  }

  .ca-privacy-item > div {
    grid-template-columns: 58px minmax(0, 1fr) !important;
  }
}

/* v22: 보조 member 스킨은 기본 제목을 재사용하고, 외부 제목 중복 없이 카드만 적용 */
.ca-lite-page {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  min-height: min(820px, calc(100vh - 40px));
  padding: clamp(18px, 4vw, 54px) 14px;
  overflow: hidden;
  isolation: isolate;
}

.ca-lite-shell {
  position: relative;
  z-index: 1;
  width: min(760px, 100%);
  margin: 0 auto;
}

.ca-lite-card {
  width: 100%;
  padding: clamp(22px, 4vw, 36px);
  border: 1px solid rgba(206,216,239,.82);
  border-radius: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(250,252,255,.92) 100%);
  box-shadow: 0 24px 70px rgba(39,57,113,.13), 0 1px 0 rgba(255,255,255,.85) inset;
  backdrop-filter: blur(18px);
}

.ca-lite-head {
  margin-bottom: 22px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(35,48,78,.08);
}

.ca-lite-head h1 {
  margin-top: 13px !important;
  font-size: clamp(27px, 4vw, 38px) !important;
  line-height: 1.13 !important;
  letter-spacing: -.055em !important;
}

.ca-lite-head p {
  max-width: 520px;
}

.ca-modal-skin {
  width: 100%;
}

.ca-lite-basic,
.ca-lite-basic .new_win,
.ca-lite-basic .new_win_con,
.ca-lite-basic .mbskin,
.ca-lite-basic .form_01,
.ca-lite-basic .tbl_frm01,
.ca-lite-basic .tbl_head01,
.ca-lite-basic #memo,
.ca-lite-basic #memo_view,
.ca-lite-basic #memo_write,
.ca-lite-basic #point,
.ca-lite-basic #profile,
.ca-lite-basic #scrap,
.ca-lite-basic #formmail,
.ca-lite-basic #mb_password {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  float: none !important;
}

.ca-lite-basic h1:first-child,
.ca-lite-basic .win_title,
.ca-lite-basic #win_title,
.ca-lite-basic .new_win_title {
  display: block !important;
  margin: 0 0 18px !important;
  padding: 0 0 15px !important;
  border-bottom: 1px solid rgba(35,48,78,.08) !important;
  color: var(--ca-title) !important;
  font-size: clamp(24px, 3.4vw, 34px) !important;
  line-height: 1.18 !important;
  font-weight: 950 !important;
  letter-spacing: -.055em !important;
  word-break: keep-all;
}

.ca-lite-pass .ca-lite-card {
  padding-top: clamp(20px, 3.2vw, 32px);
}

.ca-lite-pass .ca-lite-basic h1 + h1,
.ca-lite-pass .ca-lite-basic h1 + .win_title,
.ca-lite-pass .ca-lite-basic .win_title + h1,
.ca-lite-pass .ca-lite-basic .new_win_title + h1 {
  display: none !important;
}


/* 중복 제목/안내가 생기지 않도록 기본 스킨 내부의 연속 제목을 정리 */
.ca-lite-pass .ca-lite-basic .ca-card-head,
.ca-lite-pass .ca-lite-basic .ca-lite-head {
  display: none !important;
}

.ca-lite-pass .ca-lite-basic p + p {
  margin-top: 4px !important;
}

.ca-lite-basic table caption,
.ca-lite-basic .sound_only + .sound_only {
  display: none !important;
}

.ca-lite-basic h2,
.ca-lite-basic h3 {
  margin: 18px 0 10px !important;
  color: var(--ca-title) !important;
  font-size: 18px !important;
  line-height: 1.35 !important;
  font-weight: 900 !important;
  letter-spacing: -.045em !important;
  word-break: keep-all;
}

.ca-lite-basic p,
.ca-lite-basic li,
.ca-lite-basic td,
.ca-lite-basic th,
.ca-lite-basic label,
.ca-lite-basic span,
.ca-lite-basic div {
  word-break: keep-all;
}

.ca-lite-basic p,
.ca-lite-basic .frm_info,
.ca-lite-basic .empty_table,
.ca-lite-basic .empty_list {
  color: var(--ca-muted) !important;
  font-size: 13px !important;
  line-height: 1.65 !important;
  letter-spacing: -.03em !important;
}

.ca-lite-basic .frm_info {
  display: block;
  margin: 7px 0 0 !important;
}

.ca-lite-basic input[type="text"],
.ca-lite-basic input[type="password"],
.ca-lite-basic input[type="email"],
.ca-lite-basic input[type="tel"],
.ca-lite-basic input[type="number"],
.ca-lite-basic input[type="url"],
.ca-lite-basic select,
.ca-lite-basic textarea,
.ca-lite-basic .frm_input {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 46px !important;
  padding: 0 15px !important;
  border: 1px solid rgba(35,48,78,.13) !important;
  border-radius: 15px !important;
  background: rgba(255,255,255,.82) !important;
  color: var(--ca-title) !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 750 !important;
  letter-spacing: -.035em !important;
  box-shadow: 0 8px 22px rgba(33,45,82,.045) !important;
  outline: none !important;
  box-sizing: border-box !important;
}

.ca-lite-basic textarea {
  min-height: 150px !important;
  padding: 14px 15px !important;
  line-height: 1.55 !important;
  resize: vertical;
}

.ca-lite-basic input:focus,
.ca-lite-basic select:focus,
.ca-lite-basic textarea:focus,
.ca-lite-basic .frm_input:focus {
  border-color: rgba(71,118,255,.55) !important;
  box-shadow: 0 0 0 4px rgba(71,118,255,.11), 0 12px 28px rgba(33,45,82,.07) !important;
}

.ca-lite-basic .btn_submit,
.ca-lite-basic input[type="submit"],
.ca-lite-basic button[type="submit"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  padding: 0 22px !important;
  border: 0 !important;
  border-radius: 15px !important;
  background: linear-gradient(135deg, #4776ff 0%, #7547ff 100%) !important;
  color: #fff !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  letter-spacing: -.04em !important;
  box-shadow: 0 14px 34px rgba(71,118,255,.24) !important;
  text-decoration: none !important;
  cursor: pointer;
}

.ca-lite-basic .btn_close,
.ca-lite-basic .btn_cancel,
.ca-lite-basic a.btn_cancel,
.ca-lite-basic a.btn_close,
.ca-lite-basic .btn_b01,
.ca-lite-basic .btn_b02 {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 42px !important;
  padding: 0 18px !important;
  border: 1px solid rgba(35,48,78,.12) !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,.82) !important;
  color: #516079 !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 850 !important;
  letter-spacing: -.035em !important;
  text-decoration: none !important;
  box-shadow: 0 10px 24px rgba(33,45,82,.055) !important;
}

.ca-lite-basic .btn_confirm,
.ca-lite-basic .win_btn,
.ca-lite-basic .btn_win,
.ca-lite-basic .btn_list {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-top: 18px !important;
  padding-top: 16px !important;
  border-top: 1px solid rgba(35,48,78,.08) !important;
}

.ca-lite-basic ul,
.ca-lite-basic ol {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.ca-lite-basic .form_01 li,
.ca-lite-basic .tbl_frm01 tr,
.ca-lite-basic .list_01 li,
.ca-lite-basic .profile_tbl li {
  margin: 0 0 10px !important;
  padding: 14px !important;
  border: 1px solid rgba(35,48,78,.09) !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.62) !important;
  box-shadow: 0 10px 24px rgba(33,45,82,.04) !important;
}

.ca-lite-basic .tbl_head01,
.ca-lite-basic .tbl_frm01 {
  overflow-x: auto !important;
  border-radius: 18px !important;
}

.ca-lite-basic table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  overflow: hidden !important;
  border: 1px solid rgba(35,48,78,.08) !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.72) !important;
}

.ca-lite-basic th,
.ca-lite-basic td {
  padding: 13px 14px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(35,48,78,.07) !important;
  color: #334058 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  font-weight: 750 !important;
  letter-spacing: -.035em !important;
  text-align: left !important;
}

.ca-lite-basic th {
  color: var(--ca-title) !important;
  background: rgba(71,118,255,.06) !important;
  font-weight: 950 !important;
}

.ca-lite-basic tr:last-child th,
.ca-lite-basic tr:last-child td {
  border-bottom: 0 !important;
}

.ca-lite-basic a {
  color: #3465f2 !important;
  font-weight: 850;
  text-decoration: none !important;
}

.ca-lite-basic .sound_only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
}

.ca-lite-basic .profile_img,
.ca-lite-basic .profile_img img,
.ca-lite-basic .mb_img,
.ca-lite-basic .mb_img img {
  border-radius: 20px !important;
  overflow: hidden !important;
}

.ca-lite-basic .win_desc,
.ca-lite-basic .memo_desc,
.ca-lite-basic .point_desc {
  margin-bottom: 14px !important;
  padding: 14px 15px !important;
  border: 1px solid rgba(71,118,255,.12) !important;
  border-radius: 16px !important;
  background: rgba(71,118,255,.06) !important;
  color: #566278 !important;
}

.ca-lite-basic #captcha,
.ca-lite-basic .captcha {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  padding: 12px !important;
  border: 1px solid rgba(71,118,255,.13) !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.72) !important;
}

.ca-lite-basic #captcha img,
.ca-lite-basic .captcha img {
  max-width: 132px !important;
  height: 42px !important;
  object-fit: contain !important;
  border-radius: 11px !important;
  background: #fff !important;
}

.ca-lite-basic #captcha input,
.ca-lite-basic .captcha input {
  flex: 1 1 130px !important;
  min-width: 120px !important;
}

@media (max-width: 640px) {
  .ca-lite-page {
    min-height: auto;
    padding: 12px 10px 22px;
  }

  .ca-lite-card {
    padding: 18px;
    border-radius: 22px;
  }

  .ca-lite-head {
    margin-bottom: 16px;
    padding-bottom: 14px;
  }

  .ca-lite-head h1,
  .ca-lite-basic h1:first-child,
  .ca-lite-basic .win_title,
  .ca-lite-basic #win_title,
  .ca-lite-basic .new_win_title {
    font-size: 23px !important;
    line-height: 1.18 !important;
    letter-spacing: -.05em !important;
  }

  .ca-lite-head p,
  .ca-lite-basic p,
  .ca-lite-basic .frm_info,
  .ca-lite-basic td,
  .ca-lite-basic th,
  .ca-lite-basic label,
  .ca-lite-basic li {
    font-size: 12.5px !important;
  }

  .ca-lite-basic h2,
  .ca-lite-basic h3 {
    font-size: 16px !important;
  }

  .ca-lite-basic input[type="text"],
  .ca-lite-basic input[type="password"],
  .ca-lite-basic input[type="email"],
  .ca-lite-basic input[type="tel"],
  .ca-lite-basic input[type="number"],
  .ca-lite-basic input[type="url"],
  .ca-lite-basic select,
  .ca-lite-basic textarea,
  .ca-lite-basic .frm_input {
    min-height: 42px !important;
    border-radius: 13px !important;
    font-size: 13px !important;
  }

  .ca-lite-basic .btn_confirm,
  .ca-lite-basic .win_btn,
  .ca-lite-basic .btn_win,
  .ca-lite-basic .btn_list {
    justify-content: stretch !important;
  }

  .ca-lite-basic .btn_submit,
  .ca-lite-basic input[type="submit"],
  .ca-lite-basic button[type="submit"],
  .ca-lite-basic .btn_close,
  .ca-lite-basic .btn_cancel,
  .ca-lite-basic a.btn_cancel,
  .ca-lite-basic a.btn_close,
  .ca-lite-basic .btn_b01,
  .ca-lite-basic .btn_b02 {
    flex: 1 1 100% !important;
    width: 100% !important;
  }

  .ca-lite-basic .tbl_head01,
  .ca-lite-basic .tbl_frm01 {
    margin-left: -2px !important;
    margin-right: -2px !important;
  }

  .ca-lite-basic th,
  .ca-lite-basic td {
    padding: 11px 12px !important;
    white-space: normal !important;
  }
}


/* =========================================================
   v23 responsive hardening
   - 기본 basic 스킨에서 강제 width/float/table 구조가 섞여도 모바일에서 안 깨지게 보정
   ========================================================= */
body.ca-auth-page,
body.ca-auth-page * {
  -webkit-tap-highlight-color: rgba(71,118,255,.12);
}

body.ca-auth-page {
  overflow-x: hidden !important;
}

body.ca-auth-page #wrapper,
body.ca-auth-page #container,
body.ca-auth-page #contents,
body.ca-auth-page #ctt,
body.ca-auth-page .container,
.ca-auth,
.ca-auth * {
  max-width: 100%;
}

.ca-auth img,
.ca-lite-basic img {
  max-width: 100% !important;
  height: auto;
}

.ca-auth input,
.ca-auth select,
.ca-auth textarea,
.ca-auth button {
  max-width: 100%;
}

.ca-auth .ca-side-title h2,
.ca-auth .ca-register-hero h1,
.ca-auth .ca-form-hero h1,
.ca-auth .ca-recovery-side h1,
.ca-auth .ca-card-head h1,
.ca-auth .ca-card-head h2,
.ca-auth .ca-lite-basic h1,
.ca-auth .ca-lite-basic h2,
.ca-auth .ca-lite-basic h3,
.ca-auth p,
.ca-auth label,
.ca-auth li,
.ca-auth td,
.ca-auth th,
.ca-auth a,
.ca-auth button,
.ca-auth input,
.ca-auth textarea,
.ca-auth select {
  word-break: keep-all;
  overflow-wrap: break-word;
}

.ca-auth .ca-form-card,
.ca-auth .ca-terms-card,
.ca-auth .ca-card,
.ca-auth .ca-recovery-card,
.ca-auth .ca-lite-card {
  min-width: 0;
}

.ca-auth .ca-basic-skin-wrap,
.ca-auth .ca-lite-basic,
.ca-auth .ca-form-card form,
.ca-auth .ca-form-card fieldset,
.ca-auth .ca-form-card .tbl_frm01,
.ca-auth .ca-form-card .form_01,
.ca-auth .ca-form-card .register_form_inner {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.ca-auth .ca-form-card input[type="text"],
.ca-auth .ca-form-card input[type="password"],
.ca-auth .ca-form-card input[type="email"],
.ca-auth .ca-form-card input[type="tel"],
.ca-auth .ca-form-card input[type="number"],
.ca-auth .ca-form-card input[type="url"],
.ca-auth .ca-form-card select,
.ca-auth .ca-form-card textarea,
.ca-auth .ca-form-card .frm_input,
.ca-auth .ca-lite-basic input[type="text"],
.ca-auth .ca-lite-basic input[type="password"],
.ca-auth .ca-lite-basic input[type="email"],
.ca-auth .ca-lite-basic input[type="tel"],
.ca-auth .ca-lite-basic input[type="number"],
.ca-auth .ca-lite-basic input[type="url"],
.ca-auth .ca-lite-basic select,
.ca-auth .ca-lite-basic textarea,
.ca-auth .ca-lite-basic .frm_input {
  max-width: 100% !important;
}

.ca-auth .ca-lite-basic .tbl_head01,
.ca-auth .ca-lite-basic .tbl_frm01,
.ca-auth .ca-form-card .tbl_head01,
.ca-auth .ca-form-card .tbl_frm01 {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

.ca-auth .ca-lite-basic table,
.ca-auth .ca-form-card table {
  max-width: 100% !important;
}

@media (max-width: 720px) {
  body.ca-auth-page {
    width: 100% !important;
    min-width: 0 !important;
  }

  .ca-auth {
    width: 100% !important;
    max-width: 100vw !important;
    min-height: 100svh;
    padding: 10px 8px 20px !important;
    overflow-x: hidden !important;
  }

  .ca-shell,
  .ca-register-shell,
  .ca-form-shell,
  .ca-recovery-shell,
  .ca-lite-shell {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: auto !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: stretch !important;
  }

  .ca-side,
  .ca-card,
  .ca-register-hero,
  .ca-terms-card,
  .ca-form-hero,
  .ca-form-card,
  .ca-recovery-side,
  .ca-recovery-card,
  .ca-lite-card,
  .ca-guest-box,
  .ca-missing-basic {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 17px !important;
    border-radius: 22px !important;
  }

  .ca-side,
  .ca-register-hero,
  .ca-form-hero,
  .ca-recovery-side {
    min-height: auto !important;
  }

  .ca-side-title,
  .ca-register-hero .ca-badge,
  .ca-form-hero .ca-badge,
  .ca-recovery-side .ca-badge {
    margin-top: 12px !important;
  }

  .ca-side-title h2,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1 {
    font-size: clamp(23px, 7vw, 30px) !important;
    line-height: 1.18 !important;
    letter-spacing: -.055em !important;
  }

  .ca-card-head h1,
  .ca-card-head h2,
  .ca-lite-head h1,
  .ca-lite-basic h1:first-child,
  .ca-lite-basic .win_title,
  .ca-lite-basic #win_title,
  .ca-lite-basic .new_win_title {
    font-size: clamp(21px, 6vw, 25px) !important;
    line-height: 1.22 !important;
    letter-spacing: -.045em !important;
  }

  .ca-side-title p,
  .ca-register-hero p,
  .ca-form-hero p,
  .ca-recovery-side p,
  .ca-card-head p,
  .ca-lite-head p,
  .ca-lite-basic p,
  .ca-lite-basic .frm_info,
  .ca-form-card .frm_info,
  .ca-form-card label,
  .ca-form-card li,
  .ca-lite-basic label,
  .ca-lite-basic li {
    font-size: 12.5px !important;
    line-height: 1.58 !important;
  }

  .ca-badge {
    min-height: 27px !important;
    padding: 0 10px !important;
    font-size: 11px !important;
  }

  .ca-logo {
    width: 42px !important;
    height: 42px !important;
    flex: 0 0 42px !important;
    border-radius: 15px !important;
  }

  .ca-step-list,
  .ca-recovery-tips,
  .ca-reset .ca-recovery-tips {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .ca-step-list span,
  .ca-recovery-tips div {
    min-height: 36px !important;
    justify-content: flex-start !important;
    padding: 9px 12px !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
    text-align: left !important;
  }

  .ca-tabs {
    padding: 4px !important;
    margin: 14px 0 !important;
    border-radius: 16px !important;
  }

  .ca-tabs span,
  .ca-tabs a {
    min-height: 38px !important;
    font-size: 12.5px !important;
    border-radius: 13px !important;
  }

  .ca-field,
  .ca-form-card .form_01 li,
  .ca-lite-basic .form_01 li,
  .ca-lite-basic .list_01 li,
  .ca-lite-basic .profile_tbl li {
    width: 100% !important;
    min-width: 0 !important;
  }

  .ca-field input,
  .ca-auth input.frm_input,
  .ca-auth input.full_input,
  .ca-auth input[type="text"],
  .ca-auth input[type="password"],
  .ca-auth input[type="email"],
  .ca-auth input[type="tel"],
  .ca-auth input[type="number"],
  .ca-auth input[type="url"],
  .ca-auth select,
  .ca-auth textarea,
  .ca-auth .frm_input,
  .ca-auth .full_input {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    padding-left: 13px !important;
    padding-right: 13px !important;
    border-radius: 13px !important;
    font-size: 13px !important;
  }

  .ca-auth textarea {
    min-height: 116px !important;
  }

  .ca-auth .btn_confirm,
  .ca-auth .win_btn,
  .ca-auth .btn_win,
  .ca-auth .btn_list,
  .ca-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
    align-items: stretch !important;
    width: 100% !important;
  }

  .ca-auth .btn_submit,
  .ca-auth input[type="submit"],
  .ca-auth button[type="submit"],
  .ca-auth .btn_close,
  .ca-auth .btn_cancel,
  .ca-auth a.btn_close,
  .ca-auth a.btn_cancel,
  .ca-auth .btn_b01,
  .ca-auth .btn_b02,
  .ca-actions .btn_close,
  .ca-actions .ca-submit {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 43px !important;
    padding: 0 14px !important;
    border-radius: 14px !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    white-space: normal !important;
    float: none !important;
  }

  .ca-social-box {
    padding: 13px !important;
    border-radius: 18px !important;
  }

  .ca-social-head strong {
    font-size: 13.5px !important;
  }

  .ca-social-head p {
    font-size: 12px !important;
  }

  .ca-social-list {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .ca-social-btn {
    min-height: 42px !important;
    border-radius: 14px !important;
    font-size: 13px !important;
  }

  .ca-term-title {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 13px !important;
  }

  .ca-term-title h3 {
    min-width: 0 !important;
    font-size: 13.5px !important;
    line-height: 1.35 !important;
  }

  .ca-mini-check {
    white-space: nowrap !important;
    font-size: 12px !important;
  }

  .ca-term-box textarea {
    height: 122px !important;
    min-height: 122px !important;
    padding: 13px !important;
    font-size: 12.5px !important;
    line-height: 1.58 !important;
  }

  .ca-privacy-list {
    gap: 9px !important;
  }

  .ca-privacy-item {
    padding: 12px !important;
    border-radius: 16px !important;
  }

  .ca-privacy-item div {
    grid-template-columns: 70px minmax(0, 1fr) !important;
    gap: 8px !important;
  }

  .ca-privacy-item span,
  .ca-privacy-item strong {
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  /* 회원가입/정보수정 basic 폼의 2단 테이블을 모바일 1단으로 강제 */
  .ca-form-card .tbl_frm01 table,
  .ca-form-card .tbl_frm01 tbody,
  .ca-form-card .tbl_frm01 tr,
  .ca-form-card .tbl_frm01 th,
  .ca-form-card .tbl_frm01 td,
  .ca-form-card table.form_table,
  .ca-form-card table.form_table tbody,
  .ca-form-card table.form_table tr,
  .ca-form-card table.form_table th,
  .ca-form-card table.form_table td {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .ca-form-card .tbl_frm01 th,
  .ca-form-card table.form_table th {
    padding: 12px 2px 6px !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--ca-title) !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
  }

  .ca-form-card .tbl_frm01 td,
  .ca-form-card table.form_table td {
    padding: 0 0 11px !important;
    border: 0 !important;
    background: transparent !important;
  }

  .ca-form-card .register_form_inner,
  .ca-form-card .tbl_frm01,
  .ca-form-card .form_01,
  .ca-form-card .form_01 ul {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .ca-form-card .form_01 li,
  .ca-form-card .register_form_inner li {
    display: block !important;
    padding: 10px 0 !important;
    border-bottom: 1px solid rgba(35,48,78,.07) !important;
  }

  .ca-form-card .frm_info,
  .ca-lite-basic .frm_info {
    margin-top: 6px !important;
    padding: 10px 11px !important;
    border-radius: 13px !important;
  }

  .ca-auth .tooltip_icon {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    border-radius: 9px !important;
    vertical-align: middle !important;
  }

  .ca-auth label .tooltip,
  .ca-auth .chk_box .tooltip,
  .ca-form-card .tooltip {
    left: 0 !important;
    right: 0 !important;
    width: auto !important;
    max-width: calc(100vw - 44px) !important;
    font-size: 12px !important;
  }

  /* 캡차는 2줄 구조로 바꿔서 좁은 화면에서도 버튼이 안 찌그러지게 */
  .ca-auth #captcha.ca-captcha-clean,
  .ca-auth .captcha.ca-captcha-clean,
  .ca-lite-basic #captcha,
  .ca-lite-basic .captcha {
    display: grid !important;
    grid-template-columns: minmax(96px, 132px) minmax(0, 1fr) !important;
    gap: 8px !important;
    align-items: center !important;
    padding: 10px !important;
  }

  .ca-auth #captcha img,
  .ca-auth .captcha img,
  .ca-lite-basic #captcha img,
  .ca-lite-basic .captcha img {
    width: 100% !important;
    max-width: 132px !important;
    height: 40px !important;
  }

  .ca-auth #captcha input,
  .ca-auth .captcha input,
  .ca-lite-basic #captcha input,
  .ca-lite-basic .captcha input {
    width: 100% !important;
    min-width: 0 !important;
    grid-column: 2 !important;
  }

  .ca-auth #captcha #captcha_mp3,
  .ca-auth #captcha #captcha_reload,
  .ca-auth .captcha #captcha_mp3,
  .ca-auth .captcha #captcha_reload {
    width: 100% !important;
    min-width: 0 !important;
    height: 36px !important;
    min-height: 36px !important;
    padding: 0 8px !important;
    border-radius: 12px !important;
    font-size: 12px !important;
  }

  .ca-auth #captcha #captcha_mp3,
  .ca-auth .captcha #captcha_mp3 {
    grid-column: 1 !important;
  }

  .ca-auth #captcha #captcha_reload,
  .ca-auth .captcha #captcha_reload {
    grid-column: 2 !important;
  }

  .ca-auth #captcha #captcha_info,
  .ca-auth .captcha #captcha_info {
    grid-column: 1 / -1 !important;
    margin-top: 0 !important;
    font-size: 11.5px !important;
    line-height: 1.45 !important;
  }

  /* 보조 화면: 테이블은 페이지 전체를 밀지 않고 카드 안에서만 스크롤 */
  .ca-lite-basic .tbl_head01,
  .ca-lite-basic .tbl_frm01,
  .ca-lite-basic .list_01,
  .ca-lite-basic .profile_tbl {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
  }

  .ca-lite-basic .tbl_head01 table {
    min-width: 520px !important;
  }

  .ca-lite-basic .tbl_frm01 table {
    min-width: 0 !important;
  }

  .ca-lite-basic th,
  .ca-lite-basic td {
    padding: 10px 11px !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    white-space: normal !important;
  }

  .ca-lite-basic .tbl_frm01 table,
  .ca-lite-basic .tbl_frm01 tbody,
  .ca-lite-basic .tbl_frm01 tr,
  .ca-lite-basic .tbl_frm01 th,
  .ca-lite-basic .tbl_frm01 td {
    display: block !important;
    width: 100% !important;
  }

  .ca-lite-basic .tbl_frm01 th {
    padding: 12px 0 6px !important;
    background: transparent !important;
    border-bottom: 0 !important;
  }

  .ca-lite-basic .tbl_frm01 td {
    padding: 0 0 11px !important;
    border-bottom: 1px solid rgba(35,48,78,.07) !important;
  }
}

@media (max-width: 390px) {
  .ca-auth {
    padding-left: 6px !important;
    padding-right: 6px !important;
  }

  .ca-side,
  .ca-card,
  .ca-register-hero,
  .ca-terms-card,
  .ca-form-hero,
  .ca-form-card,
  .ca-recovery-side,
  .ca-recovery-card,
  .ca-lite-card {
    padding: 15px !important;
    border-radius: 20px !important;
  }

  .ca-side-title h2,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1 {
    font-size: 22px !important;
  }

  .ca-card-head h1,
  .ca-card-head h2,
  .ca-lite-head h1,
  .ca-lite-basic h1:first-child {
    font-size: 20px !important;
  }

  .ca-privacy-item div {
    grid-template-columns: 1fr !important;
    gap: 3px !important;
  }
}


/* v24: 로그인 화면 전용 모바일 반응형 보정
   - 로그인 화면만 좌측 안내 패널이 모바일에서 길고 넓게 잡히던 문제 보정
   - 980px 기준에서도 1단/컴팩트 카드로 강제하여 모바일 브라우저에서 안정화 */
@media (max-width: 980px) {
  .ca-auth.ca-login {
    min-height: auto !important;
    padding: 14px 10px 22px !important;
  }

  .ca-login .ca-shell {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: min(100%, 520px) !important;
    max-width: 520px !important;
    min-width: 0 !important;
    min-height: auto !important;
    gap: 12px !important;
    align-items: stretch !important;
  }

  .ca-login .ca-side,
  .ca-login .ca-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    border-radius: 22px !important;
  }

  .ca-login .ca-side {
    min-height: 0 !important;
    padding: 18px !important;
  }

  .ca-login .ca-side::after {
    width: 150px !important;
    height: 150px !important;
    right: -54px !important;
    bottom: -54px !important;
  }

  .ca-login .ca-brand {
    gap: 10px !important;
  }

  .ca-login .ca-logo {
    width: 40px !important;
    height: 40px !important;
    flex: 0 0 40px !important;
    border-radius: 14px !important;
    font-size: 12px !important;
  }

  .ca-login .ca-brand strong {
    max-width: 300px !important;
    font-size: 13.5px !important;
    line-height: 1.25 !important;
  }

  .ca-login .ca-brand span {
    margin-top: 2px !important;
    font-size: 11px !important;
  }

  .ca-login .ca-side-title {
    margin-top: 14px !important;
  }

  .ca-login .ca-side-title h2 {
    margin-top: 10px !important;
    font-size: 23px !important;
    line-height: 1.24 !important;
    font-weight: 780 !important;
    letter-spacing: -.025em !important;
  }

  .ca-login .ca-side-title p {
    width: 100% !important;
    margin-top: 8px !important;
    font-size: 12.5px !important;
    line-height: 1.58 !important;
  }

  .ca-login .ca-community-preview {
    display: none !important;
  }

  .ca-login .ca-card {
    padding: 20px 18px !important;
  }

  .ca-login .ca-card-head h1,
  .ca-login .ca-card-head h2 {
    margin-top: 10px !important;
    font-size: 24px !important;
    line-height: 1.25 !important;
    letter-spacing: -.025em !important;
  }

  .ca-login .ca-card-head p {
    margin-top: 6px !important;
    font-size: 12.5px !important;
    line-height: 1.58 !important;
  }

  .ca-login .ca-tabs {
    margin: 15px 0 14px !important;
    padding: 4px !important;
    border-radius: 15px !important;
  }

  .ca-login .ca-tabs span,
  .ca-login .ca-tabs a {
    min-height: 38px !important;
    border-radius: 12px !important;
    font-size: 12.5px !important;
  }

  .ca-login .ca-field {
    margin-top: 11px !important;
  }

  .ca-login .ca-field label {
    margin-bottom: 6px !important;
    font-size: 12px !important;
  }

  .ca-login .ca-field input,
  .ca-login .ca-submit {
    width: 100% !important;
    min-height: 43px !important;
    border-radius: 13px !important;
    font-size: 13px !important;
  }

  .ca-login .ca-submit {
    margin-top: 14px !important;
  }

  .ca-login .ca-login-info {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    align-items: center !important;
    gap: 8px !important;
    margin-top: 12px !important;
  }

  .ca-login .ca-login-info a {
    align-self: center !important;
    justify-self: end !important;
    font-size: 12px !important;
    white-space: nowrap !important;
  }

  .ca-login .ca-check label {
    font-size: 12px !important;
  }

  .ca-login .ca-social-box {
    margin-top: 15px !important;
    padding: 13px !important;
    border-radius: 18px !important;
  }

  .ca-login .ca-social-head strong {
    font-size: 13px !important;
  }

  .ca-login .ca-social-head p {
    margin-top: 3px !important;
    font-size: 11.8px !important;
    line-height: 1.5 !important;
  }

  .ca-login .ca-social-list {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .ca-login .ca-social-btn {
    min-height: 42px !important;
    border-radius: 13px !important;
    font-size: 12.5px !important;
  }
}

@media (max-width: 430px) {
  .ca-auth.ca-login {
    padding: 8px 6px 18px !important;
  }

  .ca-login .ca-shell {
    width: 100% !important;
    max-width: 100% !important;
    gap: 9px !important;
  }

  .ca-login .ca-side {
    padding: 15px !important;
    border-radius: 20px !important;
  }

  .ca-login .ca-side-title h2 br {
    display: none !important;
  }

  .ca-login .ca-side-title h2 {
    font-size: 20px !important;
    line-height: 1.28 !important;
  }

  .ca-login .ca-side-title p {
    font-size: 12px !important;
  }

  .ca-login .ca-card {
    padding: 17px 15px !important;
    border-radius: 20px !important;
  }

  .ca-login .ca-card-head h1,
  .ca-login .ca-card-head h2 {
    font-size: 21px !important;
  }

  .ca-login .ca-login-info {
    grid-template-columns: 1fr !important;
  }

  .ca-login .ca-login-info a {
    justify-self: start !important;
    white-space: normal !important;
  }
}


/* =========================================================
   v25: 전체 모바일 우선 최종 보정
   - 모바일에서 PC용 좌측 패널/큰 카드 감성을 줄이고 앱 화면처럼 정리
   - 로그인/회원가입/정보수정/계정찾기/보조 스킨 공통 적용
   ========================================================= */
@media (max-width: 720px) {
  html,
  body.ca-auth-page {
    width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
    background: #f7f8ff !important;
  }

  body.ca-auth-page #wrapper,
  body.ca-auth-page #container,
  body.ca-auth-page #contents,
  body.ca-auth-page #ctt,
  body.ca-auth-page .container {
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .ca-auth {
    width: 100% !important;
    max-width: 100vw !important;
    min-height: 100svh !important;
    padding: 0 0 18px !important;
    overflow-x: hidden !important;
    background:
      radial-gradient(circle at 12% 0%, rgba(255,123,189,.16), transparent 32%),
      radial-gradient(circle at 100% 8%, rgba(71,118,255,.16), transparent 34%),
      linear-gradient(180deg, #fff9fd 0%, #f7f9ff 44%, #eef4ff 100%) !important;
  }

  .ca-auth::before,
  .ca-auth::after,
  .ca-bg,
  .ca-side::before,
  .ca-side::after,
  .ca-register-hero::before,
  .ca-register-hero::after,
  .ca-form-hero::before,
  .ca-form-hero::after,
  .ca-recovery-side::before,
  .ca-recovery-side::after,
  .ca-result-card::before {
    display: none !important;
  }

  .ca-shell,
  .ca-register-shell,
  .ca-form-shell,
  .ca-recovery-shell,
  .ca-result-shell,
  .ca-lite-shell {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 480px !important;
    min-width: 0 !important;
    min-height: auto !important;
    margin: 0 auto !important;
    padding: 10px 10px 0 !important;
    gap: 10px !important;
    align-items: stretch !important;
  }

  /* 모바일에서는 왼쪽 안내 영역을 '큰 배너'가 아니라 작은 상단 안내로 사용 */
  .ca-side,
  .ca-register-hero,
  .ca-form-hero,
  .ca-recovery-side,
  .ca-confirm-side {
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 12px 4px 6px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: visible !important;
  }

  .ca-brand {
    gap: 9px !important;
    min-width: 0 !important;
  }

  .ca-logo {
    width: 36px !important;
    height: 36px !important;
    flex: 0 0 36px !important;
    border-radius: 13px !important;
    font-size: 11.5px !important;
    box-shadow: 0 8px 18px rgba(71,118,255,.18) !important;
  }

  .ca-brand strong {
    max-width: calc(100vw - 74px) !important;
    font-size: 13px !important;
    line-height: 1.22 !important;
    font-weight: 760 !important;
    letter-spacing: -.02em !important;
  }

  .ca-brand span {
    margin-top: 1px !important;
    font-size: 10.5px !important;
    line-height: 1.2 !important;
  }

  .ca-side-title,
  .ca-register-hero .ca-badge,
  .ca-form-hero .ca-badge,
  .ca-recovery-side .ca-badge,
  .ca-confirm-side .ca-badge {
    margin-top: 10px !important;
  }

  .ca-side-title .ca-badge,
  .ca-register-hero > .ca-badge,
  .ca-form-hero > .ca-badge,
  .ca-recovery-side > .ca-badge,
  .ca-confirm-side > .ca-badge {
    min-height: 23px !important;
    padding: 0 8px !important;
    font-size: 10.5px !important;
  }

  .ca-side-title h2,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1,
  .ca-confirm-side h1 {
    margin: 8px 0 0 !important;
    font-size: 20px !important;
    line-height: 1.28 !important;
    font-weight: 760 !important;
    letter-spacing: -.02em !important;
  }

  .ca-side-title h2 br,
  .ca-register-hero h1 br,
  .ca-form-hero h1 br,
  .ca-recovery-side h1 br {
    display: none !important;
  }

  .ca-side-title p,
  .ca-register-hero p,
  .ca-form-hero p,
  .ca-recovery-side p,
  .ca-confirm-side p {
    max-width: 100% !important;
    margin: 5px 0 0 !important;
    color: #6a7488 !important;
    font-size: 12px !important;
    line-height: 1.55 !important;
    font-weight: 520 !important;
    letter-spacing: -.012em !important;
  }

  .ca-community-preview,
  .ca-step-list,
  .ca-recovery-tips {
    display: none !important;
  }

  /* 모바일 메인 카드: 한 화면에서 보기 편하게 */
  .ca-card,
  .ca-terms-card,
  .ca-form-card,
  .ca-recovery-card,
  .ca-result-card,
  .ca-lite-card,
  .ca-guest-box,
  .ca-missing-basic {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 17px 15px !important;
    border: 1px solid rgba(220,226,242,.88) !important;
    border-radius: 21px !important;
    background: rgba(255,255,255,.94) !important;
    box-shadow: 0 14px 36px rgba(36,50,94,.10) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    overflow: hidden !important;
  }

  .ca-card-head h1,
  .ca-card-head h2,
  .ca-result-card h1,
  .ca-lite-head h1,
  .ca-lite-basic h1:first-child,
  .ca-lite-basic .win_title,
  .ca-lite-basic #win_title,
  .ca-lite-basic .new_win_title {
    margin-top: 8px !important;
    font-size: 20px !important;
    line-height: 1.3 !important;
    font-weight: 760 !important;
    letter-spacing: -.02em !important;
  }

  .ca-card-head p,
  .ca-result-card p,
  .ca-lite-head p,
  .ca-lite-basic p,
  .ca-help-box p,
  .ca-cert-panel p,
  .ca-guest-box p,
  .ca-missing-basic p {
    margin-top: 6px !important;
    font-size: 12px !important;
    line-height: 1.58 !important;
    font-weight: 520 !important;
    letter-spacing: -.012em !important;
  }

  .ca-tabs {
    margin: 14px 0 13px !important;
    padding: 4px !important;
    border-radius: 15px !important;
  }

  .ca-tabs span,
  .ca-tabs a {
    min-height: 37px !important;
    border-radius: 12px !important;
    font-size: 12.5px !important;
    font-weight: 720 !important;
  }

  .ca-field,
  .ca-form-card .form_01 li,
  .ca-form-card .register_form_inner li,
  .ca-lite-basic .form_01 li,
  .ca-lite-basic .list_01 li {
    margin-top: 10px !important;
  }

  .ca-field label,
  .ca-form-card .tbl_frm01 th,
  .ca-form-card .form_01 label,
  .ca-auth .frm_label,
  .ca-auth label,
  .ca-lite-basic label,
  .ca-lite-basic th {
    margin-bottom: 5px !important;
    font-size: 12px !important;
    line-height: 1.38 !important;
    font-weight: 720 !important;
    letter-spacing: -.016em !important;
  }

  .ca-field input,
  .ca-auth input.frm_input,
  .ca-auth input.full_input,
  .ca-auth input[type="text"],
  .ca-auth input[type="password"],
  .ca-auth input[type="email"],
  .ca-auth input[type="tel"],
  .ca-auth input[type="number"],
  .ca-auth input[type="url"],
  .ca-auth textarea,
  .ca-auth select,
  .ca-auth .frm_input,
  .ca-lite-basic input[type="text"],
  .ca-lite-basic input[type="password"],
  .ca-lite-basic input[type="email"],
  .ca-lite-basic input[type="tel"],
  .ca-lite-basic input[type="number"],
  .ca-lite-basic input[type="url"],
  .ca-lite-basic select,
  .ca-lite-basic textarea {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    padding: 0 12px !important;
    border-radius: 13px !important;
    font-size: 12.5px !important;
    line-height: 1.35 !important;
    font-weight: 520 !important;
    letter-spacing: -.012em !important;
  }

  .ca-auth textarea,
  .ca-lite-basic textarea {
    min-height: 112px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
    line-height: 1.55 !important;
  }

  .ca-submit,
  .ca-auth .btn_submit,
  .ca-auth input[type="submit"],
  .ca-auth button[type="submit"],
  .ca-actions .btn_close,
  .ca-auth .btn_close,
  .ca-auth .btn_cancel,
  .ca-auth a.btn_close,
  .ca-auth a.btn_cancel,
  .ca-auth .btn_b01,
  .ca-auth .btn_b02,
  .ca-social-btn,
  .ca-lite-basic .btn_submit,
  .ca-lite-basic input[type="submit"],
  .ca-lite-basic button[type="submit"],
  .ca-lite-basic .btn_close,
  .ca-lite-basic .btn_cancel,
  .ca-lite-basic a.btn_cancel,
  .ca-lite-basic a.btn_close {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    padding: 0 13px !important;
    border-radius: 13px !important;
    font-size: 12.5px !important;
    line-height: 1.25 !important;
    font-weight: 740 !important;
    white-space: normal !important;
    float: none !important;
  }

  .ca-form .ca-submit,
  .ca-login .ca-submit {
    margin-top: 13px !important;
  }

  .ca-login-info {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 7px !important;
    margin-top: 10px !important;
  }

  .ca-login-info a {
    justify-self: start !important;
    align-self: center !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }

  .ca-check label,
  .ca-mini-check,
  .ca-all-check label,
  .ca-auth .chk_box label {
    font-size: 12px !important;
    line-height: 1.4 !important;
  }

  .ca-check input,
  .ca-mini-check input,
  .ca-all-check input,
  .ca-auth .chk_box input[type="checkbox"] {
    width: 17px !important;
    height: 17px !important;
    flex-basis: 17px !important;
  }

  .ca-social-box,
  .ca-social-register {
    margin-top: 14px !important;
    padding: 12px !important;
    border-radius: 17px !important;
  }

  .ca-social-divider {
    gap: 9px !important;
    margin-bottom: 10px !important;
    font-size: 11px !important;
  }

  .ca-social-head {
    margin-bottom: 9px !important;
  }

  .ca-social-head strong {
    font-size: 13px !important;
    line-height: 1.32 !important;
  }

  .ca-social-head p {
    font-size: 11.5px !important;
    line-height: 1.5 !important;
  }

  .ca-social-list {
    gap: 7px !important;
  }

  .ca-social-icon {
    width: 22px !important;
    height: 22px !important;
    border-radius: 8px !important;
    font-size: 11.5px !important;
  }

  .ca-term-box {
    margin-top: 12px !important;
    border-radius: 17px !important;
  }

  .ca-term-title {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 8px !important;
    padding: 11px 12px !important;
  }

  .ca-term-title h3 {
    min-width: 0 !important;
    font-size: 12.5px !important;
    line-height: 1.34 !important;
    font-weight: 740 !important;
  }

  .ca-term-title h3 em {
    height: 18px !important;
    padding: 0 5px !important;
    font-size: 9.5px !important;
  }

  .ca-term-box textarea {
    height: 104px !important;
    min-height: 104px !important;
    padding: 11px !important;
    font-size: 11.5px !important;
    line-height: 1.58 !important;
  }

  .ca-privacy-list {
    gap: 7px !important;
    padding: 8px !important;
  }

  .ca-privacy-item {
    padding: 0 !important;
    border-radius: 14px !important;
  }

  .ca-privacy-item > div,
  .ca-privacy-item div {
    display: grid !important;
    grid-template-columns: 60px minmax(0, 1fr) !important;
    gap: 7px !important;
    padding: 8px 9px !important;
  }

  .ca-privacy-item span {
    font-size: 10.5px !important;
    line-height: 1.35 !important;
  }

  .ca-privacy-item strong {
    font-size: 11.2px !important;
    line-height: 1.45 !important;
    font-weight: 540 !important;
  }

  .ca-all-check,
  .ca-help-box,
  .ca-cert-panel,
  .ca-account-box {
    padding: 12px !important;
    border-radius: 16px !important;
  }

  .ca-actions,
  .ca-auth .btn_confirm,
  .ca-auth .win_btn,
  .ca-auth .btn_win,
  .ca-auth .btn_list,
  .ca-lite-basic .btn_confirm,
  .ca-lite-basic .win_btn,
  .ca-lite-basic .btn_win,
  .ca-lite-basic .btn_list {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
    width: 100% !important;
    margin-top: 13px !important;
    padding-top: 0 !important;
    border-top: 0 !important;
  }

  /* 회원가입/정보수정 폼은 모바일에서 완전 1단 */
  .ca-form-card .tbl_frm01 table,
  .ca-form-card .tbl_frm01 tbody,
  .ca-form-card .tbl_frm01 tr,
  .ca-form-card .tbl_frm01 th,
  .ca-form-card .tbl_frm01 td,
  .ca-lite-basic .tbl_frm01 table,
  .ca-lite-basic .tbl_frm01 tbody,
  .ca-lite-basic .tbl_frm01 tr,
  .ca-lite-basic .tbl_frm01 th,
  .ca-lite-basic .tbl_frm01 td {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .ca-form-card .tbl_frm01 th,
  .ca-lite-basic .tbl_frm01 th {
    padding: 10px 0 5px !important;
    border: 0 !important;
    background: transparent !important;
  }

  .ca-form-card .tbl_frm01 td,
  .ca-lite-basic .tbl_frm01 td {
    padding: 0 0 10px !important;
    border: 0 !important;
    background: transparent !important;
  }

  .ca-form-card .register_form_inner,
  .ca-modify-card .register_form_inner,
  .ca-modify-card .tbl_frm01.register_form_inner {
    padding: 13px !important;
    border-radius: 17px !important;
  }

  .ca-form-card h2,
  .ca-form-card .form_01 h2,
  .ca-form-card .tbl_frm01 h2,
  .ca-form-card .register_form_inner h2,
  .ca-lite-basic h2,
  .ca-lite-basic h3 {
    margin: 15px 0 8px !important;
    font-size: 14.5px !important;
    line-height: 1.38 !important;
    font-weight: 760 !important;
  }

  .ca-form-card .frm_info,
  .ca-form-card .reg_msg,
  .ca-form-card #msg_mb_id,
  .ca-form-card #msg_mb_nick,
  .ca-form-card #msg_mb_email,
  .ca-lite-basic .frm_info {
    margin-top: 5px !important;
    padding: 8px 10px !important;
    border-radius: 12px !important;
    font-size: 11px !important;
    line-height: 1.48 !important;
  }

  .ca-form-card .btn_frmline,
  .ca-form-card .btn_file,
  .ca-form-card button[type="button"] {
    min-height: 36px !important;
    padding: 0 10px !important;
    border-radius: 12px !important;
    font-size: 11.5px !important;
  }

  .ca-form-card .adress,
  .ca-form-card .addr_line,
  .ca-form-card .filebox {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 7px !important;
  }

  .ca-form-card .adress input,
  .ca-form-card .addr_line input {
    flex: none !important;
  }

  .ca-auth #captcha.ca-captcha-clean,
  .ca-auth .captcha.ca-captcha-clean,
  .ca-lite-basic #captcha,
  .ca-lite-basic .captcha {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 7px !important;
    padding: 10px !important;
    border-radius: 15px !important;
  }

  .ca-auth #captcha img,
  .ca-auth .captcha img,
  .ca-lite-basic #captcha img,
  .ca-lite-basic .captcha img {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: none !important;
    height: 38px !important;
  }

  .ca-auth #captcha input,
  .ca-auth .captcha input,
  .ca-lite-basic #captcha input,
  .ca-lite-basic .captcha input,
  .ca-auth #captcha_key {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-height: 38px !important;
    height: 38px !important;
  }

  .ca-auth #captcha #captcha_mp3,
  .ca-auth .captcha #captcha_mp3,
  .ca-auth #captcha_mp3,
  .ca-auth #captcha #captcha_reload,
  .ca-auth .captcha #captcha_reload,
  .ca-auth #captcha_reload {
    width: 100% !important;
    min-width: 0 !important;
    height: 36px !important;
    min-height: 36px !important;
    padding: 0 8px !important;
    border-radius: 12px !important;
    font-size: 11.5px !important;
  }

  .ca-auth #captcha #captcha_info,
  .ca-auth .captcha #captcha_info,
  .ca-auth #captcha_info {
    grid-column: 1 / -1 !important;
    font-size: 11px !important;
    line-height: 1.45 !important;
  }

  .ca-lite-page {
    min-height: auto !important;
    padding: 0 !important;
  }

  .ca-lite-basic .tbl_head01 {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .ca-lite-basic .tbl_head01 table {
    min-width: 500px !important;
  }

  .ca-lite-basic th,
  .ca-lite-basic td {
    padding: 9px 10px !important;
    font-size: 11.8px !important;
    line-height: 1.45 !important;
  }

  .ca-result-mark {
    width: 52px !important;
    height: 52px !important;
    margin-bottom: 10px !important;
    border-radius: 18px !important;
    font-size: 24px !important;
  }
}

@media (max-width: 390px) {
  .ca-shell,
  .ca-register-shell,
  .ca-form-shell,
  .ca-recovery-shell,
  .ca-result-shell,
  .ca-lite-shell {
    padding-left: 7px !important;
    padding-right: 7px !important;
  }

  .ca-card,
  .ca-terms-card,
  .ca-form-card,
  .ca-recovery-card,
  .ca-result-card,
  .ca-lite-card,
  .ca-guest-box,
  .ca-missing-basic {
    padding: 15px 13px !important;
    border-radius: 19px !important;
  }

  .ca-side,
  .ca-register-hero,
  .ca-form-hero,
  .ca-recovery-side,
  .ca-confirm-side {
    padding-left: 3px !important;
    padding-right: 3px !important;
  }

  .ca-side-title h2,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1,
  .ca-card-head h1,
  .ca-card-head h2,
  .ca-result-card h1 {
    font-size: 19px !important;
  }

  .ca-side-title p,
  .ca-register-hero p,
  .ca-form-hero p,
  .ca-recovery-side p,
  .ca-card-head p {
    font-size: 11.5px !important;
  }

  .ca-privacy-item > div,
  .ca-privacy-item div {
    grid-template-columns: 1fr !important;
    gap: 3px !important;
  }
}

/* =========================================================
   community_auth_v27
   - 모바일 브라우저에서 viewport meta가 없거나 테마 폭이 980px로 잡힐 때
     로그인/회원 스킨이 PC 화면처럼 작게 축소되는 문제 보정
   - 980px 이하부터 실제 모바일 레이아웃을 강제로 적용
   ========================================================= */
html.ca-auth-html,
html.ca-auth-html body {
  min-width: 0 !important;
  overflow-x: hidden !important;
}

body.ca-auth-page {
  min-width: 0 !important;
  overflow-x: hidden !important;
  background:
    radial-gradient(circle at 12% 0%, rgba(255,123,189,.12), transparent 32%),
    radial-gradient(circle at 100% 8%, rgba(71,118,255,.12), transparent 34%),
    #f7f8ff !important;
}

/* 테마/기본 스킨에서 남아있는 폭 제한을 auth 영역 안에서는 제거 */
.ca-auth,
#mb_login.ca-auth,
#fregister.ca-auth,
.ca-auth.mbskin {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.ca-auth img,
.ca-auth table,
.ca-auth input,
.ca-auth select,
.ca-auth textarea,
.ca-auth button,
.ca-auth a {
  max-width: 100%;
}

@media (max-width: 980px) {
  body.ca-auth-page #wrapper,
  body.ca-auth-page #container,
  body.ca-auth-page #contents,
  body.ca-auth-page #ctt,
  body.ca-auth-page .container,
  body.ca-auth-page .sub_page,
  body.ca-auth-page .content,
  body.ca-auth-page main {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow-x: hidden !important;
  }

  .ca-auth {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: auto !important;
    padding: 10px 10px 22px !important;
    overflow-x: hidden !important;
    background:
      radial-gradient(circle at 12% 0%, rgba(255,123,189,.16), transparent 32%),
      radial-gradient(circle at 100% 8%, rgba(71,118,255,.16), transparent 34%),
      linear-gradient(180deg, #fff9fd 0%, #f7f9ff 44%, #eef4ff 100%) !important;
  }

  .ca-auth::before,
  .ca-auth::after,
  .ca-bg,
  .ca-community-preview,
  .ca-step-list,
  .ca-recovery-tips {
    display: none !important;
  }

  .ca-shell,
  .ca-register-shell,
  .ca-form-shell,
  .ca-recovery-shell,
  .ca-result-shell,
  .ca-lite-shell {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: auto !important;
    margin: 0 auto !important;
    padding: 0 !important;
    gap: 10px !important;
    align-items: stretch !important;
  }

  .ca-login .ca-shell,
  .ca-register-shell,
  .ca-form-shell,
  .ca-recovery-shell {
    width: 100% !important;
    max-width: none !important;
  }

  .ca-side,
  .ca-register-hero,
  .ca-form-hero,
  .ca-recovery-side,
  .ca-confirm-side,
  .ca-card,
  .ca-terms-card,
  .ca-form-card,
  .ca-recovery-card,
  .ca-result-card,
  .ca-lite-card,
  .ca-guest-box,
  .ca-missing-basic {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    border-radius: 22px !important;
  }

  .ca-side,
  .ca-register-hero,
  .ca-form-hero,
  .ca-recovery-side,
  .ca-confirm-side {
    min-height: 0 !important;
    padding: 16px !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    background:
      linear-gradient(150deg, rgba(255,255,255,.92), rgba(255,255,255,.70)),
      radial-gradient(circle at 12% 12%, rgba(255,123,189,.18), transparent 34%),
      radial-gradient(circle at 88% 18%, rgba(71,118,255,.18), transparent 37%) !important;
    box-shadow: 0 14px 34px rgba(33,45,82,.10) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    overflow: hidden !important;
  }

  .ca-side::before,
  .ca-side::after,
  .ca-register-hero::before,
  .ca-register-hero::after,
  .ca-form-hero::before,
  .ca-form-hero::after,
  .ca-recovery-side::before,
  .ca-recovery-side::after {
    display: none !important;
  }

  .ca-card,
  .ca-terms-card,
  .ca-form-card,
  .ca-recovery-card,
  .ca-result-card,
  .ca-lite-card,
  .ca-guest-box,
  .ca-missing-basic {
    padding: 18px 16px !important;
    background: rgba(255,255,255,.92) !important;
    box-shadow: 0 16px 38px rgba(33,45,82,.10) !important;
    border: 1px solid rgba(255,255,255,.75) !important;
  }

  .ca-brand {
    gap: 10px !important;
    min-width: 0 !important;
  }

  .ca-logo {
    width: 40px !important;
    height: 40px !important;
    flex: 0 0 40px !important;
    border-radius: 14px !important;
    font-size: 12px !important;
  }

  .ca-brand strong {
    max-width: 100% !important;
    font-size: 13px !important;
    line-height: 1.28 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .ca-brand span {
    font-size: 11px !important;
    line-height: 1.25 !important;
  }

  .ca-badge {
    min-height: 24px !important;
    padding: 0 9px !important;
    font-size: 10.5px !important;
  }

  .ca-side-title,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1 {
    margin-top: 10px !important;
  }

  .ca-side-title h2,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1,
  .ca-card-head h1,
  .ca-card-head h2,
  .ca-result-card h1 {
    font-size: 22px !important;
    line-height: 1.28 !important;
    letter-spacing: -.025em !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }

  .ca-side-title h2 br,
  .ca-register-hero h1 br,
  .ca-form-hero h1 br,
  .ca-recovery-side h1 br {
    display: none !important;
  }

  .ca-side-title p,
  .ca-register-hero p,
  .ca-form-hero p,
  .ca-recovery-side p,
  .ca-card-head p,
  .ca-help-box p,
  .ca-guest-box p {
    margin-top: 7px !important;
    font-size: 12.5px !important;
    line-height: 1.62 !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }

  .ca-tabs {
    margin: 14px 0 13px !important;
    padding: 4px !important;
    border-radius: 15px !important;
  }

  .ca-tabs span,
  .ca-tabs a {
    min-height: 38px !important;
    border-radius: 12px !important;
    font-size: 12.5px !important;
  }

  .ca-field,
  .ca-form-card .tbl_frm01 tr,
  .ca-form-card .form_01 li,
  .ca-form-card .frm_input_block {
    min-width: 0 !important;
  }

  .ca-field label,
  .ca-form-card label,
  .ca-auth label,
  .ca-form-card th,
  .ca-auth th {
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  .ca-field input,
  .ca-auth input.frm_input,
  .ca-auth input.full_input,
  .ca-auth input[type="text"],
  .ca-auth input[type="password"],
  .ca-auth input[type="email"],
  .ca-auth input[type="tel"],
  .ca-auth input[type="number"],
  .ca-auth textarea,
  .ca-auth select {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 44px !important;
    padding: 0 13px !important;
    border-radius: 13px !important;
    font-size: 13px !important;
  }

  .ca-submit,
  .ca-auth .btn_submit,
  .ca-auth input[type="submit"],
  .ca-actions .btn_close,
  .ca-auth .btn_close,
  .ca-auth .btn_cancel {
    width: 100% !important;
    min-height: 44px !important;
    padding: 0 14px !important;
    border-radius: 14px !important;
    font-size: 13px !important;
  }

  .ca-login-info {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 8px !important;
    align-items: center !important;
  }

  .ca-login-info a {
    justify-self: end !important;
    white-space: nowrap !important;
    font-size: 12px !important;
  }

  .ca-social-box {
    margin-top: 15px !important;
    padding: 13px !important;
    border-radius: 18px !important;
  }

  .ca-social-list {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .ca-social-btn {
    min-height: 42px !important;
    border-radius: 13px !important;
    font-size: 12.5px !important;
  }

  .ca-auth .tbl_frm01,
  .ca-auth .tbl_frm01 table,
  .ca-auth .form_01,
  .ca-auth .form_01 ul,
  .ca-auth .form_01 li {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .ca-auth .tbl_frm01 table,
  .ca-auth .tbl_frm01 tbody,
  .ca-auth .tbl_frm01 tr,
  .ca-auth .tbl_frm01 th,
  .ca-auth .tbl_frm01 td {
    display: block !important;
    width: 100% !important;
  }

  .ca-auth .tbl_frm01 th {
    padding: 12px 0 6px !important;
    border: 0 !important;
    background: transparent !important;
  }

  .ca-auth .tbl_frm01 td {
    padding: 0 0 10px !important;
    border: 0 !important;
  }
}

@media (max-width: 430px) {
  .ca-auth {
    padding: 8px 7px 18px !important;
  }

  .ca-side,
  .ca-register-hero,
  .ca-form-hero,
  .ca-recovery-side,
  .ca-confirm-side,
  .ca-card,
  .ca-terms-card,
  .ca-form-card,
  .ca-recovery-card,
  .ca-result-card,
  .ca-lite-card,
  .ca-guest-box,
  .ca-missing-basic {
    padding: 15px 13px !important;
    border-radius: 19px !important;
  }

  .ca-side-title h2,
  .ca-register-hero h1,
  .ca-form-hero h1,
  .ca-recovery-side h1,
  .ca-card-head h1,
  .ca-card-head h2,
  .ca-result-card h1 {
    font-size: 20px !important;
  }

  .ca-side-title p,
  .ca-register-hero p,
  .ca-form-hero p,
  .ca-recovery-side p,
  .ca-card-head p {
    font-size: 11.8px !important;
  }

  .ca-login-info {
    grid-template-columns: 1fr !important;
  }

  .ca-login-info a {
    justify-self: start !important;
    white-space: normal !important;
  }
}

/* =========================================================
   community_auth_v27 전체 회원 보조화면 디자인 커버리지 강화
   - basic으로 불러오는 쪽지/포인트/스크랩/프로필/폼메일/비밀번호 확인/인증 관련 화면까지 동일 톤 적용
   - 모바일에서는 표를 카드형 리스트처럼 보이게 보정
   ========================================================= */
.ca-auth.ca-lite-page {
  align-items: center !important;
  min-height: 100svh !important;
  padding: clamp(16px, 3vw, 42px) !important;
}

.ca-lite-page .ca-lite-shell {
  width: min(840px, 100%) !important;
  max-width: 840px !important;
}

.ca-lite-memo .ca-lite-shell,
.ca-lite-point .ca-lite-shell,
.ca-lite-scrap .ca-lite-shell,
.ca-lite-scrap-popin .ca-lite-shell {
  width: min(960px, 100%) !important;
  max-width: 960px !important;
}

.ca-lite-formmail .ca-lite-shell,
.ca-lite-profile .ca-lite-shell,
.ca-lite-password .ca-lite-shell,
.ca-lite-login-check .ca-lite-shell,
.ca-lite-member-cert-refresh .ca-lite-shell {
  width: min(760px, 100%) !important;
  max-width: 760px !important;
}

.ca-basic-card {
  position: relative;
  overflow: hidden;
}

.ca-basic-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 5px;
  background: linear-gradient(90deg, var(--ca-blue), var(--ca-purple), var(--ca-pink));
  opacity: .95;
}

.ca-basic-card::after {
  content: "";
  position: absolute;
  right: -70px;
  top: -70px;
  width: 180px;
  height: 180px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(71,118,255,.13), transparent 68%);
  pointer-events: none;
}

.ca-basic-skin-wrap {
  position: relative;
  z-index: 1;
}

.ca-lite-basic .new_win,
.ca-lite-basic .new_win_con,
.ca-lite-basic .mbskin,
.ca-lite-basic .win_body,
.ca-lite-basic .tbl_wrap,
.ca-lite-basic .local_ov,
.ca-lite-basic .local_sch,
.ca-lite-basic .form_01,
.ca-lite-basic .tbl_head01,
.ca-lite-basic .tbl_frm01,
.ca-lite-basic .list_01 {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.ca-lite-basic h1:first-child,
.ca-lite-basic .win_title,
.ca-lite-basic #win_title,
.ca-lite-basic .new_win_title {
  position: relative;
  margin: 0 0 20px !important;
  padding: 0 0 16px !important;
  border-bottom: 1px solid rgba(35,48,78,.09) !important;
  color: var(--ca-title) !important;
  font-size: clamp(24px, 3vw, 32px) !important;
  font-weight: 820 !important;
  letter-spacing: -.035em !important;
}

.ca-lite-basic h1:first-child::after,
.ca-lite-basic .win_title::after,
.ca-lite-basic #win_title::after,
.ca-lite-basic .new_win_title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 54px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--ca-blue), var(--ca-purple));
}

.ca-lite-basic .win_desc,
.ca-lite-basic .frm_info,
.ca-lite-basic .empty_table,
.ca-lite-basic .empty_list,
.ca-lite-basic .local_ov,
.ca-lite-basic .memo_desc,
.ca-lite-basic .point_desc {
  border: 1px solid rgba(71,118,255,.13) !important;
  border-radius: 16px !important;
  background: linear-gradient(180deg, rgba(71,118,255,.07), rgba(255,255,255,.68)) !important;
  color: #59667d !important;
  font-size: 13px !important;
  line-height: 1.65 !important;
  font-weight: 560 !important;
}

.ca-lite-basic .local_ov,
.ca-lite-basic .empty_table,
.ca-lite-basic .empty_list {
  padding: 15px !important;
  margin: 0 0 14px !important;
  text-align: center !important;
}

.ca-lite-basic .local_sch,
.ca-lite-basic .sch_word,
.ca-lite-basic #sch,
.ca-lite-basic .frm_search {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 0 14px !important;
  padding: 12px !important;
  border: 1px solid rgba(35,48,78,.09) !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.65) !important;
}

.ca-lite-basic .tbl_head01 {
  margin-top: 12px !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  border: 1px solid rgba(35,48,78,.08) !important;
  background: rgba(255,255,255,.70) !important;
}

.ca-lite-basic table.ca-table-polished {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.ca-lite-basic table.ca-table-polished thead th,
.ca-lite-basic .tbl_head01 thead th {
  padding: 13px 14px !important;
  border-bottom: 1px solid rgba(35,48,78,.08) !important;
  background: linear-gradient(180deg, rgba(71,118,255,.075), rgba(71,118,255,.035)) !important;
  color: #27334b !important;
  font-size: 12.5px !important;
  font-weight: 820 !important;
  text-align: center !important;
  white-space: nowrap !important;
}

.ca-lite-basic table.ca-table-polished tbody td,
.ca-lite-basic .tbl_head01 tbody td {
  padding: 13px 14px !important;
  border-bottom: 1px solid rgba(35,48,78,.065) !important;
  color: #344157 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  font-weight: 560 !important;
  vertical-align: middle !important;
}

.ca-lite-basic table.ca-table-polished tbody tr:hover td,
.ca-lite-basic .tbl_head01 tbody tr:hover td {
  background: rgba(71,118,255,.035) !important;
}

.ca-lite-basic .td_mng,
.ca-lite-basic .td_num,
.ca-lite-basic .td_datetime,
.ca-lite-basic .td_date,
.ca-lite-basic .td_mbstat,
.ca-lite-basic .td_name,
.ca-lite-basic .td_chk {
  text-align: center !important;
  white-space: nowrap !important;
}

.ca-lite-basic .list_01 ul,
.ca-lite-basic .list_01 ol {
  display: grid !important;
  gap: 9px !important;
}

.ca-lite-basic .list_01 li,
.ca-lite-basic .form_01 li {
  border: 1px solid rgba(35,48,78,.09) !important;
  border-radius: 17px !important;
  background: rgba(255,255,255,.70) !important;
}

.ca-lite-basic .win_btn,
.ca-lite-basic .btn_confirm,
.ca-lite-basic .btn_win,
.ca-lite-basic .btn_list,
.ca-lite-basic .btn_bo_user {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin: 16px 0 0 !important;
  padding: 14px 0 0 !important;
  border-top: 1px solid rgba(35,48,78,.08) !important;
  background: transparent !important;
}

.ca-lite-basic .btn_submit,
.ca-lite-basic input[type="submit"],
.ca-lite-basic button[type="submit"],
.ca-lite-basic .ca-btn-primary-soft,
.ca-lite-basic .btn_b01.btn_submit,
.ca-lite-basic .btn_b02.btn_submit {
  border: 0 !important;
  background: linear-gradient(135deg, #4776ff 0%, #7547ff 100%) !important;
  color: #fff !important;
  box-shadow: 0 14px 30px rgba(71,118,255,.24) !important;
}

.ca-lite-basic .btn_close,
.ca-lite-basic .btn_cancel,
.ca-lite-basic a.btn_cancel,
.ca-lite-basic a.btn_close,
.ca-lite-basic .btn_b01,
.ca-lite-basic .btn_b02,
.ca-lite-basic .ca-btn-ghost,
.ca-lite-basic .btn_admin,
.ca-lite-basic .btn_frmline,
.ca-lite-basic button[type="button"] {
  border: 1px solid rgba(35,48,78,.13) !important;
  background: rgba(255,255,255,.78) !important;
  color: #4f5d76 !important;
  box-shadow: 0 9px 22px rgba(33,45,82,.055) !important;
}

.ca-lite-basic .pg_wrap,
.ca-lite-basic .pg {
  display: flex !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  margin: 18px 0 0 !important;
  padding: 0 !important;
}

.ca-lite-basic .pg_page,
.ca-lite-basic .pg_current,
.ca-lite-basic .pg a,
.ca-lite-basic .pg strong {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 34px !important;
  height: 34px !important;
  padding: 0 10px !important;
  border-radius: 12px !important;
  border: 1px solid rgba(35,48,78,.10) !important;
  background: rgba(255,255,255,.78) !important;
  color: #56647c !important;
  font-size: 12px !important;
  font-weight: 780 !important;
  text-decoration: none !important;
}

.ca-lite-basic .pg_current,
.ca-lite-basic .pg strong {
  border-color: rgba(71,118,255,.28) !important;
  background: linear-gradient(135deg, #4776ff 0%, #7547ff 100%) !important;
  color: #fff !important;
}

.ca-lite-basic input[type="checkbox"],
.ca-lite-basic input[type="radio"] {
  width: 18px !important;
  height: 18px !important;
  accent-color: #4776ff;
  vertical-align: middle !important;
}

.ca-lite-basic .memo_content,
.ca-lite-basic .scrap_content,
.ca-lite-basic .profile_content,
.ca-lite-basic .win_con,
.ca-lite-basic .view_con {
  padding: 15px !important;
  border: 1px solid rgba(35,48,78,.09) !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.68) !important;
  color: #344157 !important;
  line-height: 1.7 !important;
}

.ca-consent-skin {
  padding: 0 !important;
  min-height: 0 !important;
  background: transparent !important;
}

.ca-consent-skin .ca-missing-basic,
.ca-consent-skin .new_win,
.ca-consent-skin .new_win_con,
.ca-consent-skin .modal-content,
.ca-consent-skin .modal_body {
  border-radius: 22px !important;
  border: 1px solid rgba(35,48,78,.10) !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 22px 58px rgba(33,45,82,.16) !important;
}

/* 회원가입/정보수정 내부 basic 요소 최종 통일 */
.ca-form-card .tbl_frm01,
.ca-form-card .form_01,
.ca-form-card .register_form_inner {
  border-radius: 22px !important;
  background: rgba(255,255,255,.62) !important;
}

.ca-form-card .tbl_frm01 h2,
.ca-form-card .register_form_inner h2,
.ca-form-card .form_01 h2 {
  color: var(--ca-title) !important;
  font-weight: 780 !important;
  letter-spacing: -.025em !important;
}

@media (max-width: 980px) {
  .ca-auth.ca-lite-page {
    min-height: auto !important;
    padding: 10px 8px 20px !important;
  }

  .ca-lite-page .ca-lite-shell,
  .ca-lite-memo .ca-lite-shell,
  .ca-lite-point .ca-lite-shell,
  .ca-lite-scrap .ca-lite-shell,
  .ca-lite-scrap-popin .ca-lite-shell,
  .ca-lite-formmail .ca-lite-shell,
  .ca-lite-profile .ca-lite-shell,
  .ca-lite-password .ca-lite-shell,
  .ca-lite-login-check .ca-lite-shell,
  .ca-lite-member-cert-refresh .ca-lite-shell {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
  }

  .ca-basic-card {
    padding: 18px 15px !important;
    border-radius: 21px !important;
  }

  .ca-lite-basic h1:first-child,
  .ca-lite-basic .win_title,
  .ca-lite-basic #win_title,
  .ca-lite-basic .new_win_title {
    margin-bottom: 14px !important;
    padding-bottom: 12px !important;
    font-size: 20px !important;
    line-height: 1.28 !important;
    font-weight: 760 !important;
  }

  .ca-lite-basic .local_sch,
  .ca-lite-basic .sch_word,
  .ca-lite-basic #sch,
  .ca-lite-basic .frm_search {
    display: grid !important;
    grid-template-columns: 1fr !important;
    padding: 10px !important;
    border-radius: 16px !important;
  }

  .ca-lite-basic .tbl_head01 {
    border: 0 !important;
    background: transparent !important;
    overflow: visible !important;
  }

  .ca-lite-basic .tbl_head01 table.ca-table-polished,
  .ca-lite-basic .tbl_head01 table.ca-table-polished thead,
  .ca-lite-basic .tbl_head01 table.ca-table-polished tbody,
  .ca-lite-basic .tbl_head01 table.ca-table-polished tr,
  .ca-lite-basic .tbl_head01 table.ca-table-polished td {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .ca-lite-basic .tbl_head01 table.ca-table-polished thead {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
  }

  .ca-lite-basic .tbl_head01 table.ca-table-polished,
  .ca-lite-basic .tbl_head01 table.ca-table-polished tbody {
    border: 0 !important;
    background: transparent !important;
  }

  .ca-lite-basic .tbl_head01 table.ca-table-polished tr {
    margin: 0 0 10px !important;
    padding: 11px 12px !important;
    border: 1px solid rgba(35,48,78,.09) !important;
    border-radius: 16px !important;
    background: rgba(255,255,255,.76) !important;
    box-shadow: 0 10px 24px rgba(33,45,82,.045) !important;
  }

  .ca-lite-basic .tbl_head01 table.ca-table-polished td {
    position: relative !important;
    min-height: 28px !important;
    padding: 6px 0 6px 88px !important;
    border: 0 !important;
    color: #334158 !important;
    font-size: 12.5px !important;
    line-height: 1.45 !important;
    text-align: left !important;
    white-space: normal !important;
  }

  .ca-lite-basic .tbl_head01 table.ca-table-polished td::before {
    content: attr(data-label);
    position: absolute;
    left: 0;
    top: 6px;
    width: 78px;
    color: #7b87a0;
    font-size: 11px;
    line-height: 1.45;
    font-weight: 760;
    letter-spacing: -.015em;
  }

  .ca-lite-basic .tbl_head01 table.ca-table-polished td:not([data-label]),
  .ca-lite-basic .tbl_head01 table.ca-table-polished td[data-label=""] {
    padding-left: 0 !important;
  }

  .ca-lite-basic .tbl_head01 table.ca-table-polished td:not([data-label])::before,
  .ca-lite-basic .tbl_head01 table.ca-table-polished td[data-label=""]::before {
    display: none !important;
  }

  .ca-lite-basic .win_btn,
  .ca-lite-basic .btn_confirm,
  .ca-lite-basic .btn_win,
  .ca-lite-basic .btn_list,
  .ca-lite-basic .btn_bo_user {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .ca-lite-basic .btn_submit,
  .ca-lite-basic input[type="submit"],
  .ca-lite-basic button[type="submit"],
  .ca-lite-basic .btn_close,
  .ca-lite-basic .btn_cancel,
  .ca-lite-basic a.btn_cancel,
  .ca-lite-basic a.btn_close,
  .ca-lite-basic .btn_b01,
  .ca-lite-basic .btn_b02,
  .ca-lite-basic .btn_admin,
  .ca-lite-basic .btn_frmline,
  .ca-lite-basic button[type="button"] {
    width: 100% !important;
    min-height: 41px !important;
    padding: 0 12px !important;
    border-radius: 13px !important;
    font-size: 12.5px !important;
  }

  .ca-lite-basic .form_01 li,
  .ca-lite-basic .list_01 li {
    padding: 12px !important;
    border-radius: 15px !important;
  }

  .ca-lite-basic .pg_page,
  .ca-lite-basic .pg_current,
  .ca-lite-basic .pg a,
  .ca-lite-basic .pg strong {
    min-width: 31px !important;
    height: 31px !important;
    border-radius: 10px !important;
    font-size: 11.5px !important;
  }
}

@media (max-width: 390px) {
  .ca-lite-basic .tbl_head01 table.ca-table-polished td {
    padding-left: 74px !important;
  }
  .ca-lite-basic .tbl_head01 table.ca-table-polished td::before {
    width: 66px;
    font-size: 10.5px;
  }
}


/* =========================================================
   v30: 쪽지함/포인트 전용 완성형 UI
   - basic 출력 재가공 대신 전용 마크업으로 안정화
   - 제목/탭/빈 상태/닫기 버튼이 따로 노는 문제 제거
   ========================================================= */
.ca-auth.ca-memo-modern,
.ca-auth.ca-point-modern {
  min-height: min(780px, calc(100vh - 24px)) !important;
  padding: clamp(22px, 5vw, 58px) 14px !important;
  align-items: flex-start !important;
}

.ca-aux-shell {
  width: min(820px, 100%) !important;
  max-width: 820px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

.ca-aux-card {
  position: relative !important;
  overflow: hidden !important;
  padding: clamp(28px, 4vw, 42px) !important;
  border-radius: 30px !important;
  border: 1px solid rgba(205, 216, 242, .92) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(250,252,255,.94) 100%) !important;
  box-shadow: 0 24px 70px rgba(35,50,95,.13), inset 0 1px 0 rgba(255,255,255,.9) !important;
}

.ca-aux-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, #4776ff 0%, #7547ff 48%, #ff8ac6 100%);
}

.ca-aux-head {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: start !important;
  gap: 18px !important;
  margin: 0 0 20px !important;
  padding: 0 0 18px !important;
  border-bottom: 1px solid rgba(35,48,78,.08) !important;
}

.ca-aux-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 28px !important;
  padding: 0 12px !important;
  border: 1px solid rgba(71,118,255,.18) !important;
  border-radius: 999px !important;
  background: rgba(71,118,255,.08) !important;
  color: #3465f2 !important;
  font-size: 12px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  letter-spacing: -.025em !important;
}

.ca-aux-head h1 {
  margin: 11px 0 0 !important;
  color: var(--ca-title) !important;
  font-size: clamp(28px, 4vw, 38px) !important;
  line-height: 1.12 !important;
  font-weight: 900 !important;
  letter-spacing: -.055em !important;
}

.ca-aux-head p {
  margin: 8px 0 0 !important;
  color: #6a7488 !important;
  font-size: 14px !important;
  line-height: 1.58 !important;
  font-weight: 560 !important;
  letter-spacing: -.025em !important;
}

.ca-point-total,
.ca-memo-count {
  min-width: 170px !important;
  padding: 14px 16px !important;
  border: 1px solid rgba(71,118,255,.14) !important;
  border-radius: 20px !important;
  background: linear-gradient(180deg, rgba(71,118,255,.08), rgba(255,255,255,.72)) !important;
  box-shadow: 0 12px 28px rgba(34,53,106,.07) !important;
  text-align: right !important;
}

.ca-point-total span,
.ca-memo-count span,
.ca-aux-summary span {
  display: block !important;
  color: #68758c !important;
  font-size: 12px !important;
  line-height: 1.25 !important;
  font-weight: 780 !important;
  letter-spacing: -.025em !important;
}

.ca-point-total strong,
.ca-memo-count strong,
.ca-aux-summary strong {
  display: block !important;
  margin-top: 5px !important;
  color: #3465f2 !important;
  font-size: 22px !important;
  line-height: 1.15 !important;
  font-weight: 950 !important;
  letter-spacing: -.035em !important;
}

.ca-memo-tabs {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  margin: 0 0 18px !important;
}

.ca-memo-tabs a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 38px !important;
  padding: 0 16px !important;
  border: 1px solid rgba(71,118,255,.18) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.78) !important;
  color: #3465f2 !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  letter-spacing: -.035em !important;
  text-decoration: none !important;
  box-shadow: 0 10px 22px rgba(35,50,95,.055) !important;
}

.ca-memo-tabs a.is-active {
  border-color: transparent !important;
  background: linear-gradient(135deg, #4776ff 0%, #7547ff 100%) !important;
  color: #fff !important;
  box-shadow: 0 14px 30px rgba(71,118,255,.22) !important;
}

.ca-empty-state {
  display: grid !important;
  place-items: center !important;
  min-height: 170px !important;
  padding: 26px 20px !important;
  border: 1px dashed rgba(71,118,255,.22) !important;
  border-radius: 22px !important;
  background: linear-gradient(180deg, rgba(71,118,255,.045), rgba(255,255,255,.72)) !important;
  text-align: center !important;
}

.ca-empty-state strong {
  display: block !important;
  color: var(--ca-title) !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: 900 !important;
  letter-spacing: -.04em !important;
}

.ca-empty-state p {
  margin: 8px 0 0 !important;
  color: #6b768b !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  font-weight: 560 !important;
  letter-spacing: -.025em !important;
}

.ca-aux-notice {
  margin-top: 16px !important;
  padding: 14px 16px !important;
  border-left: 4px solid #ff5d88 !important;
  border-radius: 16px !important;
  background: rgba(71,118,255,.07) !important;
  color: #62718b !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  font-weight: 720 !important;
  letter-spacing: -.03em !important;
}

.ca-aux-notice strong {
  color: #3465f2 !important;
  font-weight: 950 !important;
}

.ca-aux-actions {
  display: flex !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  margin-top: 20px !important;
  padding-top: 18px !important;
  border-top: 1px solid rgba(35,48,78,.08) !important;
}

.ca-aux-actions .ca-btn-ghost {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 100px !important;
  min-height: 44px !important;
  padding: 0 18px !important;
  border: 1px solid rgba(35,48,78,.12) !important;
  border-radius: 15px !important;
  background: rgba(255,255,255,.84) !important;
  color: #4d5b74 !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  letter-spacing: -.035em !important;
  box-shadow: 0 12px 28px rgba(35,50,95,.07) !important;
  cursor: pointer !important;
}

.ca-memo-list,
.ca-point-list {
  display: grid !important;
  gap: 10px !important;
}

.ca-memo-item,
.ca-point-item {
  border: 1px solid rgba(35,48,78,.09) !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.78) !important;
  box-shadow: 0 12px 28px rgba(35,50,95,.055) !important;
  overflow: hidden !important;
}

.ca-memo-item a {
  display: grid !important;
  grid-template-columns: 44px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 13px !important;
  padding: 14px !important;
  color: inherit !important;
  text-decoration: none !important;
}

.ca-memo-avatar {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 16px !important;
  background: linear-gradient(135deg, #4776ff 0%, #ff8ac6 100%) !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 950 !important;
  box-shadow: 0 12px 24px rgba(71,118,255,.18) !important;
}

.ca-memo-body {
  min-width: 0 !important;
}

.ca-memo-body strong,
.ca-point-main strong {
  display: block !important;
  color: var(--ca-title) !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  font-weight: 900 !important;
  letter-spacing: -.035em !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.ca-memo-body em,
.ca-point-main span {
  display: block !important;
  margin-top: 5px !important;
  color: #718097 !important;
  font-style: normal !important;
  font-size: 12.5px !important;
  line-height: 1.45 !important;
  font-weight: 650 !important;
  letter-spacing: -.025em !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.ca-aux-summary {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin: 0 0 16px !important;
}

.ca-aux-summary > div {
  padding: 13px 15px !important;
  border: 1px solid rgba(71,118,255,.12) !important;
  border-radius: 17px !important;
  background: rgba(71,118,255,.045) !important;
}

.ca-aux-summary strong {
  color: var(--ca-title) !important;
  font-size: 17px !important;
}

.ca-point-item {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 15px 16px !important;
}

.ca-point-amount {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 92px !important;
  min-height: 36px !important;
  padding: 0 12px !important;
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 950 !important;
  letter-spacing: -.025em !important;
  white-space: nowrap !important;
}

.ca-point-item.is-plus .ca-point-amount {
  background: rgba(71,118,255,.10) !important;
  color: #3465f2 !important;
}

.ca-point-item.is-minus .ca-point-amount {
  background: rgba(255,93,136,.10) !important;
  color: #ec4675 !important;
}

.ca-aux-paging {
  margin-top: 18px !important;
  text-align: center !important;
}

.ca-aux-paging .pg_wrap,
.ca-aux-paging .pg {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  flex-wrap: wrap !important;
}

.ca-aux-paging .pg a,
.ca-aux-paging .pg strong,
.ca-aux-paging .pg_current {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 34px !important;
  height: 34px !important;
  border-radius: 12px !important;
  border: 1px solid rgba(35,48,78,.09) !important;
  background: rgba(255,255,255,.82) !important;
  color: #516079 !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}

.ca-aux-paging .pg strong,
.ca-aux-paging .pg_current {
  border-color: transparent !important;
  background: linear-gradient(135deg, #4776ff 0%, #7547ff 100%) !important;
  color: #fff !important;
}

@media (max-width: 720px) {
  .ca-auth.ca-memo-modern,
  .ca-auth.ca-point-modern {
    min-height: 100svh !important;
    padding: 0 0 18px !important;
  }

  .ca-aux-shell {
    width: 100% !important;
    max-width: 480px !important;
    padding: 10px !important;
  }

  .ca-aux-card {
    padding: 18px 15px !important;
    border-radius: 22px !important;
  }

  .ca-aux-head {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    margin-bottom: 16px !important;
    padding-bottom: 15px !important;
  }

  .ca-aux-head h1 {
    font-size: 23px !important;
    line-height: 1.22 !important;
    font-weight: 820 !important;
    letter-spacing: -.035em !important;
  }

  .ca-aux-head p {
    font-size: 12.5px !important;
  }

  .ca-point-total,
  .ca-memo-count {
    min-width: 0 !important;
    width: 100% !important;
    text-align: left !important;
    padding: 12px 13px !important;
    border-radius: 17px !important;
  }

  .ca-point-total strong,
  .ca-memo-count strong {
    font-size: 18px !important;
  }

  .ca-memo-tabs {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 2px !important;
  }

  .ca-memo-tabs a {
    flex: 0 0 auto !important;
    min-height: 35px !important;
    padding: 0 13px !important;
    font-size: 12px !important;
  }

  .ca-empty-state {
    min-height: 132px !important;
    padding: 21px 14px !important;
    border-radius: 18px !important;
  }

  .ca-empty-state strong {
    font-size: 14px !important;
  }

  .ca-empty-state p,
  .ca-aux-notice {
    font-size: 12px !important;
  }

  .ca-memo-item a {
    grid-template-columns: 38px minmax(0, 1fr) !important;
    gap: 10px !important;
    padding: 12px !important;
  }

  .ca-memo-avatar {
    width: 38px !important;
    height: 38px !important;
    border-radius: 14px !important;
    font-size: 13px !important;
  }

  .ca-memo-body strong,
  .ca-point-main strong {
    font-size: 13px !important;
  }

  .ca-memo-body em,
  .ca-point-main span {
    font-size: 11.5px !important;
    white-space: normal !important;
  }

  .ca-aux-summary {
    grid-template-columns: 1fr !important;
  }

  .ca-point-item {
    grid-template-columns: 1fr !important;
    align-items: start !important;
    padding: 13px !important;
  }

  .ca-point-amount {
    justify-self: start !important;
    min-width: 0 !important;
    min-height: 32px !important;
    font-size: 12px !important;
  }

  .ca-aux-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .ca-aux-actions .ca-btn-ghost {
    width: 100% !important;
    min-height: 42px !important;
  }
}

/* =========================================================
   v31: 쪽지쓰기 전용 UI 재작성
   - basic 스킨 출력 감싸기 제거
   - 제목/탭/입력/캡차/버튼을 한 흐름으로 정리
   ========================================================= */
.ca-memo-compose-page {
  min-height: min(780px, calc(100vh - 24px)) !important;
  padding: clamp(22px, 5vw, 58px) 14px !important;
  align-items: flex-start !important;
}

.ca-memo-compose-card {
  max-width: 760px !important;
  margin: 0 auto !important;
  padding: clamp(26px, 4vw, 40px) !important;
}

.ca-memo-compose-card .ca-compose-head {
  grid-template-columns: 1fr !important;
  margin-bottom: 18px !important;
}

.ca-memo-compose-card .ca-compose-head h1 {
  margin-top: 10px !important;
  font-size: clamp(27px, 3.6vw, 36px) !important;
}

.ca-compose-tabs {
  margin-bottom: 18px !important;
}

.ca-compose-form {
  display: grid !important;
  gap: 13px !important;
}

.ca-compose-section {
  padding: 16px !important;
  border: 1px solid rgba(35,48,78,.09) !important;
  border-radius: 21px !important;
  background: rgba(255,255,255,.78) !important;
  box-shadow: 0 12px 28px rgba(35,50,95,.055) !important;
}

.ca-compose-section label {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  margin: 0 0 9px !important;
  color: var(--ca-title) !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  font-weight: 900 !important;
  letter-spacing: -.035em !important;
}

.ca-compose-section label strong,
.ca-compose-section-title em {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 22px !important;
  padding: 0 8px !important;
  border-radius: 999px !important;
  background: rgba(255,93,136,.11) !important;
  color: #ec4675 !important;
  font-size: 11px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  font-style: normal !important;
  letter-spacing: -.025em !important;
}

.ca-compose-input,
.ca-compose-textarea,
.ca-memo-compose-card input[type="text"],
.ca-memo-compose-card textarea {
  width: 100% !important;
  max-width: 100% !important;
  border: 1px solid rgba(35,48,78,.12) !important;
  border-radius: 17px !important;
  background: rgba(255,255,255,.96) !important;
  color: var(--ca-title) !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 650 !important;
  letter-spacing: -.025em !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9) !important;
  outline: none !important;
}

.ca-compose-input,
.ca-memo-compose-card input[type="text"] {
  height: 48px !important;
  padding: 0 15px !important;
}

.ca-compose-textarea,
.ca-memo-compose-card textarea {
  min-height: 155px !important;
  padding: 15px !important;
  resize: vertical !important;
}

.ca-compose-input:focus,
.ca-compose-textarea:focus,
.ca-memo-compose-card input[type="text"]:focus,
.ca-memo-compose-card textarea:focus {
  border-color: rgba(71,118,255,.42) !important;
  box-shadow: 0 0 0 4px rgba(71,118,255,.09) !important;
}

.ca-compose-input::placeholder,
.ca-compose-textarea::placeholder,
.ca-memo-compose-card input::placeholder,
.ca-memo-compose-card textarea::placeholder {
  color: #9aa7bc !important;
  font-weight: 650 !important;
}

.ca-compose-help {
  display: grid !important;
  gap: 6px !important;
  margin-top: 10px !important;
}

.ca-compose-help span {
  display: flex !important;
  align-items: flex-start !important;
  gap: 7px !important;
  color: #68758c !important;
  font-size: 12.5px !important;
  line-height: 1.45 !important;
  font-weight: 650 !important;
  letter-spacing: -.025em !important;
}

.ca-compose-help span::before {
  content: "";
  flex: 0 0 auto;
  width: 5px;
  height: 5px;
  margin-top: .55em;
  border-radius: 999px;
  background: #4776ff;
  opacity: .65;
}

.ca-compose-section-title {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  margin-bottom: 11px !important;
}

.ca-compose-section-title span {
  color: var(--ca-title) !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 900 !important;
  letter-spacing: -.035em !important;
}

.ca-compose-section-title em {
  background: rgba(71,118,255,.09) !important;
  color: #3465f2 !important;
}

.ca-memo-compose-captcha #captcha,
.ca-memo-compose-captcha .captcha,
.ca-memo-compose-captcha #captcha.ca-captcha-clean,
.ca-memo-compose-captcha .captcha.ca-captcha-clean {
  display: grid !important;
  grid-template-columns: 112px minmax(120px, 1fr) auto auto !important;
  align-items: center !important;
  gap: 9px !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ca-memo-compose-captcha #captcha img,
.ca-memo-compose-captcha .captcha img {
  width: 112px !important;
  height: 44px !important;
  object-fit: contain !important;
  border: 1px solid rgba(35,48,78,.12) !important;
  border-radius: 13px !important;
  background: #fff !important;
}

.ca-memo-compose-captcha #captcha_key {
  width: 100% !important;
  height: 44px !important;
  min-width: 0 !important;
  padding: 0 13px !important;
  border-radius: 13px !important;
}

.ca-memo-compose-captcha #captcha_mp3,
.ca-memo-compose-captcha #captcha_reload {
  position: static !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 84px !important;
  height: 44px !important;
  padding: 0 13px !important;
  border: 1px solid rgba(71,118,255,.20) !important;
  border-radius: 14px !important;
  background: rgba(71,118,255,.07) !important;
  color: #3465f2 !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: -.035em !important;
  text-indent: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  box-shadow: none !important;
}

.ca-memo-compose-captcha #captcha_mp3::before,
.ca-memo-compose-captcha #captcha_reload::before {
  content: none !important;
}

.ca-memo-compose-captcha #captcha_mp3 span,
.ca-memo-compose-captcha #captcha_reload span,
.ca-memo-compose-captcha #captcha_mp3 img,
.ca-memo-compose-captcha #captcha_reload img {
  display: none !important;
}

.ca-memo-compose-captcha #captcha_info {
  grid-column: 1 / -1 !important;
  margin: 3px 0 0 !important;
  color: #68758c !important;
  font-size: 12px !important;
  font-weight: 650 !important;
  letter-spacing: -.025em !important;
}

.ca-compose-actions {
  margin-top: 3px !important;
}

.ca-compose-actions .ca-compose-submit,
.ca-compose-actions .ca-btn-primary-soft {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 104px !important;
  min-height: 46px !important;
  padding: 0 22px !important;
  border: 0 !important;
  border-radius: 16px !important;
  background: linear-gradient(135deg, #4776ff 0%, #7547ff 100%) !important;
  color: #fff !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  letter-spacing: -.035em !important;
  box-shadow: 0 16px 34px rgba(71,118,255,.22) !important;
  cursor: pointer !important;
}

@media (max-width: 720px) {
  .ca-memo-compose-page {
    min-height: 100svh !important;
    padding: 0 0 18px !important;
  }

  .ca-memo-compose-card {
    padding: 18px 15px !important;
    border-radius: 22px !important;
  }

  .ca-memo-compose-card .ca-compose-head h1 {
    font-size: 23px !important;
  }

  .ca-memo-compose-card .ca-compose-head p {
    font-size: 12.5px !important;
  }

  .ca-compose-section {
    padding: 14px !important;
    border-radius: 18px !important;
  }

  .ca-compose-section label,
  .ca-compose-section-title span {
    font-size: 13px !important;
  }

  .ca-compose-help span,
  .ca-compose-section-title em {
    font-size: 11.5px !important;
  }

  .ca-compose-section-title {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 6px !important;
  }

  .ca-compose-input,
  .ca-memo-compose-card input[type="text"] {
    height: 44px !important;
    font-size: 13px !important;
  }

  .ca-compose-textarea,
  .ca-memo-compose-card textarea {
    min-height: 130px !important;
    font-size: 13px !important;
  }

  .ca-memo-compose-captcha #captcha,
  .ca-memo-compose-captcha .captcha,
  .ca-memo-compose-captcha #captcha.ca-captcha-clean,
  .ca-memo-compose-captcha .captcha.ca-captcha-clean {
    grid-template-columns: 104px minmax(0, 1fr) !important;
    gap: 8px !important;
  }

  .ca-memo-compose-captcha #captcha img,
  .ca-memo-compose-captcha .captcha img {
    width: 104px !important;
    height: 42px !important;
  }

  .ca-memo-compose-captcha #captcha_key {
    height: 42px !important;
  }

  .ca-memo-compose-captcha #captcha_mp3,
  .ca-memo-compose-captcha #captcha_reload {
    width: 100% !important;
    min-width: 0 !important;
    height: 40px !important;
    font-size: 11.5px !important;
  }

  .ca-memo-compose-captcha #captcha_info {
    font-size: 11.5px !important;
  }

  .ca-compose-actions {
    grid-template-columns: 1fr !important;
  }

  .ca-compose-actions .ca-compose-submit,
  .ca-compose-actions .ca-btn-primary-soft,
  .ca-compose-actions .ca-btn-ghost {
    width: 100% !important;
    min-height: 43px !important;
  }
}

/* =========================================================
   v32 audit pass: auxiliary member screens safety polish
   - keeps native basic skin output readable when a screen still falls back
   - prevents oversized PC layout from leaking into mobile popups
   ========================================================= */
.ca-auth,
.ca-auth * {
  box-sizing: border-box;
}

.ca-auth :where(a, button, input, textarea, select) {
  font-family: inherit;
}

.ca-auth :where(input, textarea, select, button, a) {
  -webkit-tap-highlight-color: transparent;
}

.ca-aux-shell,
.ca-lite-shell {
  width: min(100%, 1040px) !important;
  margin-inline: auto !important;
}

.ca-aux-card,
.ca-basic-card,
.ca-memo-compose-card {
  overflow: hidden !important;
}

.ca-basic-skin-wrap.ca-lite-basic-only {
  width: 100% !important;
  max-width: 100% !important;
  color: #111827 !important;
  letter-spacing: -0.035em;
}

.ca-basic-skin-wrap.ca-lite-basic-only > :first-child {
  margin-top: 0 !important;
}

.ca-basic-skin-wrap.ca-lite-basic-only :where(h1, h2, h3) {
  margin: 0 0 18px !important;
  color: #111827 !important;
  font-weight: 900 !important;
  letter-spacing: -0.065em !important;
  line-height: 1.16 !important;
}

.ca-basic-skin-wrap.ca-lite-basic-only :where(p, li, td, th, label, span) {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.ca-basic-skin-wrap.ca-lite-basic-only :where(table) {
  width: 100% !important;
  max-width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  table-layout: auto !important;
  overflow: hidden !important;
  border: 1px solid rgba(35, 48, 78, .09) !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.92) !important;
}

.ca-basic-skin-wrap.ca-lite-basic-only :where(th, td) {
  min-width: 0 !important;
  padding: 13px 14px !important;
  border-color: rgba(35,48,78,.08) !important;
  color: #263348 !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
}

.ca-basic-skin-wrap.ca-lite-basic-only :where(th) {
  background: rgba(71,118,255,.055) !important;
  color: #111827 !important;
  font-weight: 850 !important;
}

.ca-basic-skin-wrap.ca-lite-basic-only :where(.empty_table, .empty_list, .no-data, .nodata) {
  padding: 36px 18px !important;
  text-align: center !important;
  color: #68758c !important;
  background: rgba(248,250,255,.86) !important;
  border: 1px dashed rgba(71,118,255,.20) !important;
  border-radius: 18px !important;
}

.ca-auth :where(.btn_submit, input[type="submit"], button[type="submit"], .ca-btn-primary-soft) {
  color: #fff !important;
}

.ca-auth :where(.btn_close, .btn_cancel, .ca-btn-ghost) {
  color: #40506a !important;
}

.ca-auth :where(.frm_input, input[type="text"], input[type="password"], input[type="email"], textarea, select) {
  max-width: 100% !important;
}

.ca-auth :where(textarea) {
  resize: vertical;
}

.ca-auth :where(img) {
  max-width: 100%;
  height: auto;
}

.ca-memo-tabs {
  scrollbar-width: none;
}
.ca-memo-tabs::-webkit-scrollbar {
  display: none;
}

.ca-memo-list,
.ca-point-list {
  width: 100% !important;
  max-width: 100% !important;
}

.ca-memo-item,
.ca-point-item,
.ca-empty-state,
.ca-aux-notice,
.ca-compose-section {
  max-width: 100% !important;
}

.ca-aux-actions {
  flex-wrap: wrap !important;
}

@media (max-width: 980px) {
  html.ca-auth-html,
  body.ca-auth-page {
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  .ca-auth,
  .ca-auth.ca-lite-page,
  .ca-auth.ca-register-terms,
  .ca-auth.ca-recovery,
  .ca-auth.ca-login-page,
  .ca-auth.ca-memo-modern,
  .ca-auth.ca-point-modern {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .ca-lite-shell,
  .ca-aux-shell,
  .ca-register-shell,
  .ca-login-shell,
  .ca-recovery-shell {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .ca-lite-card,
  .ca-aux-card,
  .ca-basic-card,
  .ca-memo-compose-card,
  .ca-form-card,
  .ca-terms-card,
  .ca-recovery-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    border-radius: 22px !important;
  }

  .ca-aux-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .ca-aux-head h1,
  .ca-card-head h2,
  .ca-compose-head h1 {
    font-size: clamp(22px, 6.4vw, 30px) !important;
    line-height: 1.16 !important;
    letter-spacing: -0.07em !important;
  }

  .ca-aux-head p,
  .ca-card-head p,
  .ca-compose-head p {
    font-size: 12.5px !important;
    line-height: 1.65 !important;
  }

  .ca-memo-count,
  .ca-point-total {
    width: 100% !important;
    justify-content: space-between !important;
  }

  .ca-memo-tabs {
    display: flex !important;
    overflow-x: auto !important;
    gap: 8px !important;
    padding-bottom: 2px !important;
  }

  .ca-memo-tabs a {
    flex: 0 0 auto !important;
    min-height: 36px !important;
    padding: 0 13px !important;
    font-size: 12px !important;
  }

  .ca-basic-skin-wrap.ca-lite-basic-only table,
  .ca-basic-skin-wrap.ca-lite-basic-only thead,
  .ca-basic-skin-wrap.ca-lite-basic-only tbody,
  .ca-basic-skin-wrap.ca-lite-basic-only tr,
  .ca-basic-skin-wrap.ca-lite-basic-only th,
  .ca-basic-skin-wrap.ca-lite-basic-only td {
    display: block !important;
    width: 100% !important;
  }

  .ca-basic-skin-wrap.ca-lite-basic-only thead,
  .ca-basic-skin-wrap.ca-lite-basic-only tr:first-child th:only-child {
    display: none !important;
  }

  .ca-basic-skin-wrap.ca-lite-basic-only tr {
    margin: 0 0 10px !important;
    padding: 12px !important;
    border: 1px solid rgba(35,48,78,.08) !important;
    border-radius: 16px !important;
    background: rgba(255,255,255,.94) !important;
  }

  .ca-basic-skin-wrap.ca-lite-basic-only td {
    display: grid !important;
    grid-template-columns: minmax(80px, .38fr) 1fr !important;
    gap: 10px !important;
    padding: 8px 0 !important;
    border: 0 !important;
    font-size: 12.5px !important;
  }

  .ca-basic-skin-wrap.ca-lite-basic-only td::before {
    content: attr(data-label);
    color: #68758c;
    font-weight: 800;
  }
}

@media (max-width: 430px) {
  .ca-auth,
  .ca-auth.ca-lite-page,
  .ca-auth.ca-register-terms,
  .ca-auth.ca-recovery,
  .ca-auth.ca-login-page,
  .ca-auth.ca-memo-modern,
  .ca-auth.ca-point-modern {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  .ca-lite-card,
  .ca-aux-card,
  .ca-basic-card,
  .ca-memo-compose-card,
  .ca-form-card,
  .ca-terms-card,
  .ca-recovery-card {
    border-radius: 20px !important;
  }

  .ca-aux-actions,
  .ca-compose-actions,
  .ca-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
  }

  .ca-aux-actions :where(a, button),
  .ca-compose-actions :where(a, button),
  .ca-actions :where(a, button) {
    width: 100% !important;
  }
}
