:root { --pink: #FF7BAC; --pink-deep: #F0558A; --pink-light: #FFE4EF; --pink-pale: #FFF5F9; --dark: #2D1B2E; --mid: #6B4C6E; --bg: #FFF8FB; }

body {
    margin: 0; padding: 0; font-family: 'Nunito', 'Noto Sans KR', sans-serif;
    background-color: var(--bg);
    background-image:
            url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Ctext y='50' x='15' font-size='32' opacity='0.05'%3E🐾%3C/text%3E%3C/svg%3E"),
            url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Ctext y='50' x='15' font-size='32' opacity='0.05'%3E🐾%3C/text%3E%3C/svg%3E");
    background-position: 0px 0px, 150px 150px; background-size: 300px 300px; background-repeat: repeat;
    color: var(--dark); overflow-x: hidden;
}

a { text-decoration: none !important; }

.container { max-width: 800px; margin: 40px auto; background-color: #ffffff; padding: 40px; border-radius: 28px; box-shadow: 0 12px 36px rgba(255, 123, 172, 0.08); position: relative; z-index: 10; }
.page-title { font-size: 26px; font-weight: 800; margin-bottom: 30px; color: var(--dark); border-bottom: 2px solid var(--pink-light); padding-bottom: 15px; }
.form-group { margin-bottom: 25px; display: flex; flex-direction: column; }
.form-group label { font-weight: 700; margin-bottom: 8px; color: var(--mid); font-size: 15px; }
.form-control { width: 100%; padding: 14px 16px; border: 2px solid var(--pink-light); border-radius: 16px; box-sizing: border-box; outline: none; font-family: inherit; font-size: 15px; transition: 0.2s; background: #fff; color: var(--dark); }
.form-control:focus { border-color: var(--pink); box-shadow: 0 0 0 4px var(--pink-pale); }
textarea.form-control { height: 350px; resize: vertical; padding: 20px; line-height: 1.6; }
.error-msg { color: #F0558A; font-size: 13px; font-weight: 600; margin-top: 6px; }

.checkbox-wrap { display: flex; align-items: center; gap: 8px; margin-top: 10px; cursor: pointer; }
.checkbox-wrap input { width: 18px; height: 18px; cursor: pointer; accent-color: var(--pink); }
.checkbox-wrap label { margin: 0; color: var(--mid); font-weight: 700; font-size: 15px; cursor: pointer; }

.btn-wrap { display: flex; gap: 15px; justify-content: center; margin-top: 40px; }
.btn { padding: 14px 30px; font-size: 16px; font-weight: 800; border-radius: 16px; cursor: pointer; border: none; transition: 0.2s; text-align: center; display: inline-block; }
.btn-primary { background-color: var(--pink); color: white; }
.btn-primary:hover { background-color: var(--pink-deep); transform: translateY(-2px); }
.btn-secondary { background-color: var(--pink-light); color: var(--pink); }
.btn-secondary:hover { background-color: var(--pink-deep); color: white; transform: translateY(-2px); }

/* 반응형 */
@media screen and (max-width: 768px) {
    .container { margin: 20px 15px; padding: 25px 20px; }
    .page-title { font-size: 22px; }
    .btn-wrap { flex-direction: column; }
    .btn { width: 100%; }
}