/* ==== member/_agreement_fields.php ==== */
.agreement-box { border:1px solid #e0e0e0; border-radius:8px; padding:16px 18px; margin-bottom:20px; }
.agree-all { display:flex; align-items:center; gap:8px; font-size:.95rem; cursor:pointer; }
.agree-all input { width:18px; height:18px; }
.agreement-divider { height:1px; background:#eee; margin:12px 0; }
.agreement-list { display:flex; flex-direction:column; gap:10px; }
.agree-item { display:flex; align-items:center; gap:8px; font-size:.85rem; color:#444; cursor:pointer; }
.agree-item input { width:16px; height:16px; flex-shrink:0; }
.agree-item span { flex:1; }
.agree-view-link { color:#1a6b3c; text-decoration:underline; }
.tag-req { font-style:normal; font-size:.7rem; font-weight:700; color:#d32f2f; }
.tag-opt { font-style:normal; font-size:.7rem; font-weight:700; color:#888; }
.agreement-modal { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:2000; display:flex; align-items:center; justify-content:center; padding:20px; }
.agreement-modal-box { background:#fff; border-radius:10px; width:100%; max-width:720px; height:80vh; display:flex; flex-direction:column; overflow:hidden; }
.agreement-modal-head { display:flex; align-items:center; justify-content:space-between; padding:14px 20px; border-bottom:1px solid #eee; font-weight:700; font-size:.95rem; }
.agreement-modal-head button { background:none; border:none; font-size:1.1rem; color:#999; cursor:pointer; }
#agreement-modal-frame { flex:1; border:none; width:100%; }
.agreement-modal-text { flex:1; overflow-y:auto; padding:20px 22px; font-size:.85rem; line-height:1.7; color:#444; white-space:normal; }
.agreement-modal-box--text { height:auto; max-height:80vh; }
.privacy-popup-intro { font-size:.85rem; line-height:1.7; color:#444; margin:0 0 16px; }
.privacy-popup-box { background:#f8f9fa; border:1px solid #e5e5e5; border-radius:8px; padding:16px 18px; }
.privacy-popup-box-title { font-size:.8rem; font-weight:700; color:#1a6b3c; margin:0 0 10px; }
.privacy-popup-list { display:flex; flex-direction:column; gap:8px; margin:0; }
.privacy-popup-row { display:flex; gap:12px; font-size:.83rem; color:#444; }
.privacy-popup-row dt { flex:0 0 84px; font-weight:600; color:#666; margin:0; }
.privacy-popup-row dd { flex:1; margin:0; }

/* ==== member/company_reapply.php ==== */
.member-section { display:flex; justify-content:center; padding:40px 16px; }
.member-box { width:100%; max-width:440px; }
.member-box--wide { max-width:620px; }
.member-title { font-size:1.5rem; font-weight:700; margin-bottom:8px; text-align:center; }
.member-subtitle { text-align:center; color:#666; margin-bottom:28px; }
.form-error { background:#fff2f2; border:1px solid #f5c6c6; color:#d32f2f; padding:10px 14px; border-radius:6px; margin-bottom:16px; font-size:.9rem; }
fieldset { border:none; padding:0; margin:0 0 8px; }
legend { font-weight:700; font-size:1rem; margin-bottom:16px; color:#1a6b3c; }
.form-group { margin-bottom:14px; }
.form-group label { display:block; font-size:.875rem; font-weight:600; margin-bottom:5px; color:#333; }
.form-group input[type=text],
.form-group input[type=tel] { width:100%; padding:10px 13px; border:1px solid #ddd; border-radius:6px; font-size:.95rem; box-sizing:border-box; }
.form-group input:focus { outline:none; border-color:#1a6b3c; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.btn-primary { background:#1a6b3c; color:#fff; border:none; padding:13px; border-radius:6px; font-size:1rem; font-weight:600; cursor:pointer; }
.btn-full { width:100%; }
.member-links { margin-top:20px; text-align:center; font-size:.875rem; color:#666; }
.member-links a { color:#1a6b3c; text-decoration:none; }
@media(max-width:480px){ .form-row { grid-template-columns:1fr; } }

/* ==== member/login.php ==== */
.member-section { display:flex; justify-content:center; align-items:center; min-height:60vh; padding:40px 16px; }
.member-box { width:100%; max-width:440px; }
.member-title { font-size:1.5rem; font-weight:700; margin-bottom:24px; text-align:center; }
.form-error { background:#fff2f2; border:1px solid #f5c6c6; color:#d32f2f; padding:10px 14px; border-radius:6px; margin-bottom:16px; font-size:.9rem; }
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:.875rem; font-weight:600; margin-bottom:6px; color:#333; }
.form-group input { width:100%; padding:11px 14px; border:1px solid #ddd; border-radius:6px; font-size:.95rem; box-sizing:border-box; }
.form-group input[type=radio],
.form-group input[type=checkbox] { width:auto; flex:0 0 auto; padding:0; border:none; }
.form-group input:focus { outline:none; border-color:#1a6b3c; }
.btn-primary { background:#1a6b3c; color:#fff; border:none; padding:13px; border-radius:6px; font-size:1rem; font-weight:600; cursor:pointer; }
.btn-full { width:100%; }
.social-login { margin-top:28px; }
.social-title { text-align:center; font-size:.85rem; color:#999; margin-bottom:12px; position:relative; }
.social-title::before, .social-title::after { content:''; display:inline-block; width:30%; height:1px; background:#e0e0e0; vertical-align:middle; margin:0 8px; }
.social-btns { display:flex; flex-direction:column; gap:10px; }
.btn-social { display:flex; align-items:center; justify-content:center; gap:8px; padding:12px; border-radius:6px; font-size:.95rem; font-weight:600; text-decoration:none; }
.btn-naver { background:#03c75a; color:#fff; }
.btn-kakao { background:#fee500; color:#191919; }
.social-icon { font-weight:800; font-size:1rem; }
.member-links { margin-top:20px; text-align:center; font-size:.875rem; color:#666; }
.member-links a { color:#1a6b3c; text-decoration:none; }
.member-links .divider { margin:0 8px; color:#ccc; }

/* ==== member/mypage.php ==== */
.mypage-section { padding:40px 16px; max-width:960px; margin:0 auto; }
.mypage-wrap { display:grid; grid-template-columns:220px 1fr; gap:32px; }
.mypage-aside { }
.mypage-profile { text-align:center; padding:24px 0; border-bottom:1px solid #eee; margin-bottom:16px; }
.profile-avatar { width:56px; height:56px; background:#1a6b3c; color:#fff; border-radius:50%; font-size:1.5rem; font-weight:700; display:flex; align-items:center; justify-content:center; margin:0 auto 10px; }
.profile-name { font-weight:700; margin-bottom:6px; }
.profile-grade em { font-style:normal; padding:2px 10px; border-radius:20px; font-size:.8rem; font-weight:600; }
.badge-free { background:#f5f5f5; color:#666; }
.badge-premium { background:#fff3cd; color:#856404; }
.badge-company { background:#d1e8ff; color:#0066cc; }
.badge-pending { background:#fef0d9; color:#b06a00; }
.badge-rejected { background:#fde0e0; color:#c0392b; }
.badge-expired { background:#eee; color:#777; }
.mypage-nav { display:flex; flex-direction:column; gap:4px; }
.mypage-nav a { display:block; padding:10px 14px; border-radius:6px; text-decoration:none; color:#444; font-size:.95rem; }
.mypage-nav a:hover, .mypage-nav a.on { background:#f0f8f4; color:#1a6b3c; font-weight:600; }
.mypage-nav a.highlight { color:#c0392b; }
.mypage-nav a.logout-link { color:#999; margin-top:8px; }
.mypage-content { }
.company-status-notice { padding:16px 20px; border-radius:8px; margin-bottom:24px; font-size:.9rem; line-height:1.6; }
.company-status-notice strong { display:block; margin-bottom:6px; font-size:1rem; }
.company-status-notice p { color:#555; margin:0; }
.company-status-pending { background:#fef8ec; border:1px solid #fce4b0; }
.company-status-rejected { background:#fdf1f1; border:1px solid #f6c9c9; }
.company-status-expired { background:#f4f4f4; border:1px solid #ddd; }
.content-title { font-size:1.25rem; font-weight:700; margin-bottom:24px; padding-bottom:12px; border-bottom:2px solid #1a6b3c; }
.info-form { max-width:480px; }
.info-readonly { display:flex; gap:12px; margin-bottom:16px; padding:10px 0; border-bottom:1px solid #f0f0f0; }
.info-label { color:#888; font-size:.875rem; min-width:70px; }
.info-value { font-weight:600; }
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:.875rem; font-weight:600; margin-bottom:5px; color:#333; }
.form-group label small { font-weight:400; color:#888; }
.form-group input[type=text],
.form-group input[type=tel],
.form-group input[type=password],
.form-group input[type=date] { width:100%; padding:10px 13px; border:1px solid #ddd; border-radius:6px; font-size:.95rem; box-sizing:border-box; }
.form-group input:focus { outline:none; border-color:#1a6b3c; }
.radio-group { display:flex; gap:16px; padding-top:6px; }
.radio-group label { font-weight:400; display:flex; align-items:center; gap:4px; }
.btn-primary { background:#1a6b3c; color:#fff; border:none; padding:11px 28px; border-radius:6px; font-size:.95rem; font-weight:600; cursor:pointer; }
.voucher-link-notice { background:#f0f8f4; border:1px solid #cfe8da; border-radius:6px; padding:12px 16px; font-size:.85rem; color:#444; margin-bottom:20px; }
.voucher-link-notice a { color:#1a6b3c; font-weight:700; text-decoration:none; margin-left:6px; }
.pay-section-title { font-size:1rem; font-weight:700; margin:28px 0 12px; color:#333; }
.pay-section-title:first-of-type { margin-top:0; }
.pay-empty { color:#999; font-size:.875rem; padding:12px 0; }
.pay-table { width:100%; border-collapse:collapse; font-size:.85rem; }
.pay-table th { background:#f8f9fa; border-top:1px solid #e0e0e0; border-bottom:1px solid #e0e0e0; padding:9px 10px; text-align:center; font-weight:700; color:#555; }
.pay-table td { border-bottom:1px solid #f0f0f0; padding:9px 10px; text-align:center; }
.pay-table td:first-child { text-align:left; }
.pay-badge { display:inline-block; padding:2px 9px; border-radius:12px; font-size:.72rem; font-weight:700; }
.pay-badge-unused, .pay-badge-active, .pay-badge-paid { background:#e8f5e9; color:#1a6b3c; }
.pay-badge-used { background:#e3f2fd; color:#1565c0; }
.pay-badge-expired, .pay-badge-cancelled { background:#f5f5f5; color:#999; }
.pay-badge-pending { background:#fff3cd; color:#856404; }
.pay-btn-use { background:#1a6b3c; color:#fff; border:none; padding:5px 12px; border-radius:4px; font-size:.75rem; font-weight:600; cursor:pointer; }
.tag-opt { font-style:normal; font-size:.7rem; font-weight:700; color:#888; margin-left:6px; }
.agree-marketing-form { background:#f8f9fa; border-radius:8px; padding:16px 18px; }
.agree-marketing-label { display:flex; align-items:center; gap:8px; font-size:.85rem; color:#444; cursor:pointer; }
.agree-marketing-label input { width:16px; height:16px; }
.agree-marketing-dt { font-size:.75rem; color:#999; margin-top:6px; }
@media(max-width:640px){ .mypage-wrap { grid-template-columns:1fr; } .mypage-aside { display:flex; flex-wrap:wrap; gap:12px; align-items:center; } .mypage-profile { border:none; padding:0; } .mypage-nav { flex-direction:row; } }

/* ==== member/password.php ==== */
.member-section { display:flex; justify-content:center; align-items:center; min-height:60vh; padding:40px 16px; }
.member-box { width:100%; max-width:440px; }
.member-title { font-size:1.5rem; font-weight:700; margin-bottom:8px; text-align:center; }
.member-subtitle { text-align:center; color:#666; margin-bottom:24px; line-height:1.6; }
.form-error { background:#fff2f2; border:1px solid #f5c6c6; color:#d32f2f; padding:10px 14px; border-radius:6px; margin-bottom:16px; font-size:.9rem; }
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:.875rem; font-weight:600; margin-bottom:5px; color:#333; }
.form-group label small { font-weight:400; color:#888; }
.form-group input { width:100%; padding:11px 14px; border:1px solid #ddd; border-radius:6px; font-size:.95rem; box-sizing:border-box; }
.form-group input[type=radio],
.form-group input[type=checkbox] { width:auto; flex:0 0 auto; padding:0; border:none; }
.form-group input:focus { outline:none; border-color:#1a6b3c; }
.btn-primary { background:#1a6b3c; color:#fff; border:none; padding:13px; border-radius:6px; font-size:1rem; font-weight:600; cursor:pointer; }
.btn-full { width:100%; }
.info-box { background:#f0f8f4; border:1px solid #c3e0d0; padding:16px; border-radius:8px; line-height:1.6; }
.debug-box { margin-top:12px; padding:12px; background:#fffbf0; border:1px dashed #ccc; border-radius:6px; font-size:.8rem; word-break:break-all; }
.member-links { margin-top:20px; text-align:center; font-size:.875rem; color:#666; }
.member-links a { color:#1a6b3c; text-decoration:none; }
.member-links .divider { margin:0 8px; color:#ccc; }

/* ==== member/register.php ==== */
.member-section { display:flex; justify-content:center; padding:40px 16px; }
.member-box { width:100%; max-width:440px; }
.member-box--wide { max-width:620px; }
.member-title { font-size:1.5rem; font-weight:700; margin-bottom:8px; text-align:center; }
.member-subtitle { text-align:center; color:#666; margin-bottom:28px; }
.type-cards { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.type-card { display:flex; flex-direction:column; align-items:center; gap:10px; padding:28px 16px; border:2px solid #e0e0e0; border-radius:10px; text-decoration:none; color:#333; transition:border-color .2s; }
.type-card:hover { border-color:#1a6b3c; }
.type-card .type-icon { font-size:2rem; }
.type-card strong { font-size:1.1rem; }
.type-card small { text-align:center; color:#777; font-size:.8rem; line-height:1.5; }
.form-error { background:#fff2f2; border:1px solid #f5c6c6; color:#d32f2f; padding:10px 14px; border-radius:6px; margin-bottom:16px; font-size:.9rem; }
fieldset { border:none; padding:0; margin:0 0 8px; }
legend { font-weight:700; font-size:1rem; margin-bottom:16px; color:#1a6b3c; }
.form-group { margin-bottom:14px; }
.form-group label { display:block; font-size:.875rem; font-weight:600; margin-bottom:5px; color:#333; }
.form-group label small { font-weight:400; color:#888; }
.form-group input[type=text],
.form-group input[type=email],
.form-group input[type=password],
.form-group input[type=tel],
.form-group input[type=date] { width:100%; padding:10px 13px; border:1px solid #ddd; border-radius:6px; font-size:.95rem; box-sizing:border-box; }
.form-group input:focus { outline:none; border-color:#1a6b3c; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.email-verify-row { display:flex; gap:8px; }
.email-verify-row input { flex:1; }
.email-code-row { display:flex; gap:8px; align-items:center; margin-top:8px; }
.email-code-row input { flex:1; padding:10px 13px; border:1px solid #ddd; border-radius:6px; font-size:.95rem; box-sizing:border-box; }
.btn-outline { background:#fff; border:1px solid #1a6b3c; color:#1a6b3c; border-radius:6px; padding:0 14px; font-size:.85rem; font-weight:600; cursor:pointer; white-space:nowrap; }
.btn-outline:disabled { opacity:.5; cursor:default; }
.verify-status { font-size:.8rem; white-space:nowrap; }
.verify-status.ok { color:#1a6b3c; }
.verify-status.err { color:#d32f2f; }
.radio-group { display:flex; gap:16px; padding-top:6px; }
.radio-group label { font-weight:400; display:flex; align-items:center; gap:4px; }
.btn-primary { background:#1a6b3c; color:#fff; border:none; padding:13px; border-radius:6px; font-size:1rem; font-weight:600; cursor:pointer; }
.btn-full { width:100%; }
.member-links { margin-top:20px; text-align:center; font-size:.875rem; color:#666; }
.member-links a { color:#1a6b3c; text-decoration:none; }
.member-links .divider { margin:0 8px; color:#ccc; }
.social-login { margin-bottom:8px; }
.social-title { text-align:center; font-size:.85rem; color:#999; margin-bottom:12px; }
.social-btns { display:flex; flex-direction:column; gap:10px; }
.btn-social { display:flex; align-items:center; justify-content:center; gap:8px; padding:12px; border-radius:6px; font-size:.95rem; font-weight:600; text-decoration:none; }
.btn-naver { background:#03c75a; color:#fff; }
.btn-kakao { background:#fee500; color:#191919; }
.social-icon { font-weight:800; font-size:1rem; }
.social-divider { display:flex; align-items:center; text-align:center; font-size:.78rem; color:#aaa; margin:20px 0; }
.social-divider::before, .social-divider::after { content:''; flex:1; height:1px; background:#e0e0e0; }
.social-divider span { padding:0 12px; }
@media(max-width:480px){ .form-row { grid-template-columns:1fr; } .type-cards { grid-template-columns:1fr; } }

/* ==== member/social_register.php ==== */
.member-section { display:flex; justify-content:center; padding:40px 16px; }
.member-box { width:100%; max-width:440px; }
.member-title { font-size:1.5rem; font-weight:700; margin-bottom:8px; text-align:center; }
.member-subtitle { text-align:center; color:#666; margin-bottom:28px; }
.form-error { background:#fff2f2; border:1px solid #f5c6c6; color:#d32f2f; padding:10px 14px; border-radius:6px; margin-bottom:16px; font-size:.9rem; }
fieldset { border:none; padding:0; margin:0 0 8px; }
legend { font-weight:700; font-size:1rem; margin-bottom:16px; color:#1a6b3c; }
.form-group { margin-bottom:14px; }
.form-group label { display:block; font-size:.875rem; font-weight:600; margin-bottom:5px; color:#333; }
.form-group input[type=text],
.form-group input[type=email],
.form-group input[type=tel],
.form-group input[type=date] { width:100%; padding:10px 13px; border:1px solid #ddd; border-radius:6px; font-size:.95rem; box-sizing:border-box; }
.form-group input:focus { outline:none; border-color:#1a6b3c; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.email-verify-row { display:flex; gap:8px; }
.email-verify-row input { flex:1; }
.email-code-row { display:flex; gap:8px; align-items:center; margin-top:8px; }
.email-code-row input { flex:1; padding:10px 13px; border:1px solid #ddd; border-radius:6px; font-size:.95rem; box-sizing:border-box; }
.btn-outline { background:#fff; border:1px solid #1a6b3c; color:#1a6b3c; border-radius:6px; padding:0 14px; font-size:.85rem; font-weight:600; cursor:pointer; white-space:nowrap; }
.btn-outline:disabled { opacity:.5; cursor:default; }
.verify-status { font-size:.8rem; white-space:nowrap; }
.verify-status.ok { color:#1a6b3c; }
.verify-status.err { color:#d32f2f; }
.radio-group { display:flex; gap:16px; padding-top:6px; }
.radio-group label { font-weight:400; display:flex; align-items:center; gap:4px; }
.btn-primary { background:#1a6b3c; color:#fff; border:none; padding:13px; border-radius:6px; font-size:1rem; font-weight:600; cursor:pointer; }
.btn-full { width:100%; }
@media(max-width:480px){ .form-row { grid-template-columns:1fr; } }

/* ==== member/voucher.php ==== */
.voucher-section { padding:40px 16px 60px; }
.voucher-wrap { max-width:640px; margin:0 auto; }
.content-title { font-size:1.25rem; font-weight:700; margin-bottom:8px; }
.voucher-desc { font-size:.875rem; color:#666; line-height:1.6; margin-bottom:24px; }
.form-error { background:#fff2f2; border:1px solid #f5c6c6; color:#d32f2f; padding:10px 14px; border-radius:6px; margin-bottom:16px; font-size:.9rem; }
.voucher-card { background:#fff; border:1px solid #e0e0e0; border-radius:8px; padding:22px 24px; margin-bottom:20px; }
.voucher-card-title { font-size:1rem; font-weight:700; color:#1a6b3c; margin-bottom:6px; }
.voucher-card-desc { font-size:.82rem; color:#888; margin-bottom:16px; line-height:1.5; }
.voucher-card--notice { text-align:center; background:#f8f9fa; }
.voucher-notice-text { font-size:.9rem; color:#888; margin:0; }
.coupon-form { display:flex; gap:8px; }
.coupon-form input[type=text] { flex:1; padding:10px 13px; border:1px solid #ddd; border-radius:6px; font-size:.95rem; }
.request-form .form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.request-form .form-group { margin-bottom:14px; }
.request-form label { display:block; font-size:.8rem; font-weight:600; color:#333; margin-bottom:5px; }
.request-form .opt { font-weight:400; color:#999; }
.request-form .req { color:#d32f2f; }
.request-form input[type=text] { width:100%; padding:10px 13px; border:1px solid #ddd; border-radius:6px; font-size:.9rem; box-sizing:border-box; }
.request-form input[type=file] { font-size:.85rem; }
.btn-primary { background:#1a6b3c; color:#fff; border:none; padding:10px 22px; border-radius:6px; font-size:.9rem; font-weight:600; cursor:pointer; white-space:nowrap; }
.pay-empty { color:#999; font-size:.875rem; padding:8px 0; }
.pay-table { width:100%; border-collapse:collapse; font-size:.85rem; }
.pay-table th { background:#f8f9fa; border-top:1px solid #e0e0e0; border-bottom:1px solid #e0e0e0; padding:9px 10px; text-align:center; font-weight:700; color:#555; }
.pay-table td { border-bottom:1px solid #f0f0f0; padding:9px 10px; text-align:center; }
.pay-table td:first-child { text-align:left; }
.pay-badge { display:inline-block; padding:2px 9px; border-radius:12px; font-size:.72rem; font-weight:700; }
.pay-badge-approved { background:#e8f5e9; color:#1a6b3c; }
.pay-badge-pending { background:#fff3cd; color:#856404; }
.pay-badge-rejected { background:#f5f5f5; color:#999; }
.reject-reason { font-size:.72rem; color:#c0392b; margin-top:3px; }
.voucher-back { text-align:center; font-size:.85rem; }
.voucher-back a { color:#1a6b3c; text-decoration:none; }
@media(max-width:480px){ .request-form .form-row { grid-template-columns:1fr; } .coupon-form { flex-direction:column; } }
