/* 회원 정보 폼 공용 (회원가입 / 마이페이지 정보수정) */
.join-form .grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 100px;}
.join-form .field{margin-bottom:16px;min-width:0;}
.join-form .field label{display:block;font-size:14px;color:var(--ink-secondary);margin-bottom:6px;font-weight:500;}
.join-form .req{color:var(--ruby);}
.join-form input[type="text"],.join-form input[type="email"],.join-form input[type="tel"],
.join-form input[type="password"],.join-form input[type="date"],.join-form select{
  width:100%;padding:11px 14px;border:1.5px solid var(--hairline-input);border-radius:var(--r-md);
  font-size:15px;font-family:inherit;color:var(--ink);background:var(--canvas);
}
.join-form input[type="text"]:focus,.join-form input[type="email"]:focus,.join-form input[type="tel"]:focus,
.join-form input[type="password"]:focus,.join-form input[type="date"]:focus,.join-form select:focus{outline:none;border-color:var(--primary);}
.join-form input:disabled{background:var(--canvas-soft);color:var(--ink-mute);}
.join-form input[type="file"]{width:100%;min-width:0;padding:8px 10px;border:1.5px solid var(--hairline-input);border-radius:var(--r-md);font-size:13.5px;font-family:inherit;background:var(--canvas);}
.addr-row{display:flex;gap:8px;align-items:center;}
.zip-row{max-width:calc(50% - 50px);}
.addr-row input{flex:1;min-width:0;}
.addr-row .btn-secondary{flex:0 0 auto;padding:0 14px;font-size:13.5px;height:38px;white-space:nowrap;}
.id-check-msg{font-size:13px;margin-top:6px;min-height:1em;}
.id-check-msg.ok{color:#16a34a;}
.id-check-msg.err{color:var(--ruby);}
.birth-row{display:flex;gap:8px;align-items:center;position:relative;}
.birth-row select{flex:1;min-width:0;}
/* 좁은 칸에서도 연도(4자리)가 잘리지 않도록 셀렉트 좌우 여백을 줄이고 연도 칸을 더 넓게 */
.join-form .birth-row select{padding-left:10px;padding-right:6px;}
.birth-row #birthYear{flex:1.4;min-width:72px;}
.date-pick-btn{
  flex:0 0 auto;width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;
  border:1.5px solid var(--hairline-input);border-radius:var(--r-md);background:var(--canvas);color:var(--ink-secondary);cursor:pointer;
}
.date-pick-btn:hover{border-color:var(--primary);color:var(--primary);}
.date-pick-btn svg{width:20px;height:20px;}
.birth-date-native{position:absolute;right:0;bottom:0;width:44px;height:44px;opacity:0;pointer-events:none;}
.gender-radios{display:flex;flex-wrap:wrap;gap:20px;padding-top:6px;}
.gender-radios label{display:flex;align-items:center;gap:6px;font-size:15px;color:var(--ink);cursor:pointer;}
.gender-radios input{width:16px;height:16px;accent-color:var(--primary);}

/* 소속학교 자동완성 */
.ac-wrap{position:relative;}
.ac-list{
  position:absolute;left:0;right:0;top:100%;z-index:30;margin:4px 0 0;padding:4px;list-style:none;
  max-height:280px;overflow-y:auto;background:var(--canvas);border:1px solid var(--hairline-input);
  border-radius:var(--r-md);box-shadow:0 12px 28px -12px rgba(13,37,61,.28);
}
.ac-list li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 12px;border-radius:8px;cursor:pointer;font-size:15px;color:var(--ink);}
.ac-list li small{flex:0 0 auto;font-size:12.5px;color:var(--ink-mute);}
.ac-list li.on,.ac-list li:hover{background:var(--canvas-soft);}
.ac-list li.on{outline:1.5px solid var(--primary-subdued);}
/* 추가 정보 (선택) */
.opt-sec{border-top:1px solid var(--hairline);padding-top:24px;margin-top:24px;}
.opt-sec h3{font-size:16px;font-weight:700;margin-bottom:14px;color:var(--ink);}
.opt-sec h3 small{font-size:13px;font-weight:400;color:var(--ink-mute);margin-left:6px;}
.opt-hint{font-size:13px;color:var(--ink-mute);margin-top:6px;}
.cert-row{display:grid;grid-template-columns:120px minmax(0,1fr) minmax(0,1.2fr) auto;gap:8px;align-items:center;margin-bottom:8px;}
.cert-row .btn-secondary{padding:0 14px;height:42px;font-size:13.5px;white-space:nowrap;}
.cert-saved{margin-bottom:12px;}
.cert-saved-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:10px 14px;background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:var(--r-md);margin-bottom:8px;font-size:14px;}
.cert-saved-row .cert-no{font-weight:600;color:var(--ink);}
.cert-saved-row a{color:var(--primary);word-break:break-all;}
.cert-badge{background:var(--primary);color:#fff;font-size:12px;padding:2px 9px;border-radius:999px;}
.cert-remove{margin-left:auto;display:flex;align-items:center;gap:5px;font-size:13.5px;color:var(--ruby);cursor:pointer;}
.join-error{
  background:#fef2f2;border:1px solid #fecaca;color:#dc2626;font-size:13.5px;
  padding:12px 14px;border-radius:var(--r-md);margin-bottom:18px;
}
.join-error ul{list-style:disc;padding-left:18px;}
@media (max-width:860px){
  .join-form .grid-2{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .addr-split-row{flex-direction:column;align-items:stretch;}
  .zip-row{max-width:100%;}
  .cert-row{grid-template-columns:1fr;}
}
