.auth-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 0,rgb(167 139 250 / 13%),transparent 35%),var(--bg-page);padding:24px}
.auth-card{width:min(460px,100%);background:#fff;padding:36px;border:1px solid var(--border-default);border-radius:24px;box-shadow:0 24px 70px rgba(31,54,40,.12)}
.auth-card h1{margin:0 0 8px}
.auth-card label.field{display:block;margin:16px 0 6px;font-weight:600}
.auth-card input[type=text],.auth-card input[type=email],.auth-card input[type=password]{width:100%;box-sizing:border-box;padding:12px;border:1px solid #ddd;border-radius:10px}
.auth-card input[aria-invalid=true]{border-color:var(--danger)}
.auth-card .btn-primary#submit{width:100%;margin-top:22px}
.field-error{color:var(--danger);font-size:13px;margin:6px 0 0;min-height:0}
.field-error:empty{display:none}
.auth-error{color:var(--danger);min-height:24px;margin-top:12px}
.auth-switch{margin:20px 0 0;text-align:center;color:#6d776f;font-size:14px}
.auth-switch a{color:var(--brand-primary);font-weight:700;margin-left:6px}
.auth-recovery{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:14px;color:#6d776f;font-size:13px}
.auth-recovery button{border:0;background:none;color:#526158;text-decoration:underline;cursor:pointer;padding:4px}
.auth-legal-links{margin:14px 0 0;text-align:center;font-size:12px}
.auth-legal-links a{color:#6d776f;margin:0 6px}
.consent-box{margin:22px 0 0;padding:6px 16px;border:1px solid var(--border-default);border-radius:14px}
.consent-box legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.consent-all{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--border-default);font-weight:700;cursor:pointer}
.consent-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0}
.consent-row label{display:flex;align-items:center;gap:10px;cursor:pointer;flex:1;font-size:14px}
.consent-box input[type=checkbox],.consent-all input[type=checkbox]{width:18px;height:18px;flex:none;accent-color:var(--brand-primary)}
.consent-tag{font-weight:700;color:var(--brand-primary)}
.consent-tag.optional{color:#6d776f}
.consent-view{border:0;background:none;color:#6d776f;font-size:13px;cursor:pointer;text-decoration:underline;padding:6px;white-space:nowrap}
.consent-view:focus-visible,.consent-box input:focus-visible,.auth-card input:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}
.legal-backdrop{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(21,32,25,.5)}
.legal-backdrop[hidden]{display:none}
.legal-box{width:min(640px,100%);max-height:min(82vh,760px);display:flex;flex-direction:column;background:#fff;border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.25)}
.legal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--border-default)}
.legal-head h2{margin:0;font-size:18px}
.legal-head button{border:0;background:none;font-size:20px;cursor:pointer;padding:6px 10px}
.legal-body{padding:6px 22px 18px;overflow-y:auto;-webkit-overflow-scrolling:touch;line-height:1.7;font-size:14px;color:#2b362e}
.legal-body h3{font-size:15px;margin:20px 0 6px}
.legal-body p{margin:6px 0;white-space:pre-line}
.legal-body ul{margin:6px 0;padding-left:20px}
.legal-foot{padding:14px 22px;border-top:1px solid var(--border-default);text-align:right}
.legal-placeholder{background:#fff4ce;color:#7a5b00;border-radius:4px;padding:0 4px}
.legal-page{max-width:760px;margin:0 auto;padding:40px 20px 80px}
.legal-page h1{font-size:26px}
.legal-page .legal-body{overflow:visible;padding:0}
.legal-page .legal-meta{color:#6d776f;font-size:13px}
@media (max-width:560px){.auth-card{padding:24px 18px;border-radius:18px}.legal-backdrop{padding:0;align-items:flex-end}.legal-box{max-height:90vh;border-radius:20px 20px 0 0}}

/* theme-2026.css가 모든 label을 알약 배지로 꾸미고 style.css가 label을 세로 정렬하므로 가입 화면에서 되돌린다. */
.auth-card label.field{display:block;margin:16px 0 6px;font-size:14px;font-weight:600;background:none;color:inherit;padding:0;border-radius:0}
.auth-card .consent-all,.auth-card .consent-row label{display:flex;flex-direction:row;align-items:center;gap:10px;text-align:left;background:none;color:#152019;border-radius:0;padding:0;font-size:14px;font-weight:500}
.auth-card .consent-all{padding:12px 0;font-weight:700}
.auth-card .consent-row label span{flex:1;min-width:0}
.auth-card input[type=text],.auth-card input[type=email],.auth-card input[type=password]{background:#fff;font-size:15px}
@media (max-width:560px){.auth-card h1{font-size:24px}}
