.rsvp-section{
max-width:980px;
}

.rsvp-card{
display:grid;
grid-template-columns:minmax(0, 1.3fr) minmax(260px, 0.7fr);
gap:28px;
align-items:center;
padding:30px;
background:rgba(255,255,255,0.76);
border:1px solid rgba(88,102,79,0.14);
border-radius:30px;
box-shadow:0 18px 36px rgba(45,58,39,0.08);
text-align:left;
}

.rsvp-card-public{
display:block;
max-width:720px;
margin:0 auto;
}

.rsvp-home-panel{
max-width:860px;
margin:0 auto;
}

.rsvp-home-panel .rsvp-family-card h3{
font-family:'Great Vibes', cursive;
font-size:clamp(42px, 5vw, 62px);
font-weight:400;
line-height:0.95;
margin:0;
color:#4f473f;
}

.rsvp-copy p:last-of-type{
margin-bottom:0;
}

.rsvp-actions{
margin-top:22px;
}

.rsvp-summary{
display:grid;
gap:14px;
}

.rsvp-summary-item{
display:grid;
grid-template-columns:44px minmax(0, 1fr);
gap:14px;
align-items:center;
padding:16px 18px;
background:rgba(248,242,228,0.78);
border:1px solid rgba(88,102,79,0.12);
border-radius:22px;
}

.rsvp-summary-number{
display:grid;
place-items:center;
width:44px;
height:44px;
border-radius:50%;
background:#5f7057;
color:#fffdf7;
font-size:18px;
}

.rsvp-summary-item p{
margin:0;
font-size:15px;
line-height:1.6;
}

.invite-shell{
max-width:900px;
}

.invite-panel{
text-align:center;
}

.invite-message{
max-width:660px;
margin:0 auto 26px;
font-size:18px;
line-height:1.8;
}

.invite-family-list{
max-width:440px;
margin:0 auto 30px;
padding:24px 26px;
background:rgba(248,242,228,0.72);
border:1px solid rgba(88,102,79,0.12);
border-radius:28px;
}

.invite-actions{
display:flex;
justify-content:center;
gap:14px;
flex-wrap:wrap;
}

.rsvp-page{
min-height:100vh;
padding:60px 20px;
}

.rsvp-shell{
max-width:920px;
margin:0 auto;
}

.rsvp-panel{
background:rgba(255,255,255,0.82);
border:1px solid rgba(88,102,79,0.14);
border-radius:32px;
padding:32px;
box-shadow:0 18px 36px rgba(45,58,39,0.08);
text-align:left;
}

.rsvp-panel h1{
font-size:48px;
margin-bottom:12px;
text-align:center;
}

.rsvp-panel-intro{
max-width:680px;
margin:0 auto 28px;
text-align:center;
line-height:1.7;
}

.rsvp-panel .rsvp-panel-intro.rsvp-panel-intro-script{
font-family:'Great Vibes', cursive !important;
font-size:clamp(28px, 3.8vw, 44px) !important;
line-height:1.25;
color:#4f473f;
margin-bottom:28px;
}

.rsvp-guest-label{
margin:0 auto 12px;
font-size:12px;
letter-spacing:0.24em;
text-transform:uppercase;
color:#6c7b67;
text-align:center;
}

.rsvp-page .rsvp-family-card,
.rsvp-home-panel .rsvp-family-card{
max-width:560px;
margin:0 auto 18px;
padding:12px 10px;
background:transparent;
border:0;
border-radius:0;
box-shadow:none;
text-align:center;
}

.rsvp-page .rsvp-family-members,
.rsvp-home-panel .rsvp-family-members{
list-style:none;
padding:0;
margin:0;
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:6px 14px;
}

.rsvp-page .rsvp-family-members li,
.rsvp-home-panel .rsvp-family-members li{
padding:0;
background:transparent;
border:0;
border-radius:0;
font-size:13px;
line-height:1.35;
min-width:0;
}

.rsvp-members-grid{
display:grid;
grid-template-columns:repeat(2, minmax(0, 1fr));
gap:12px;
margin-bottom:22px;
}

.rsvp-member-card{
padding:14px 16px;
background:rgba(255,255,255,0.68);
border:1px solid rgba(88,102,79,0.1);
border-radius:18px;
}

.rsvp-member-card h3{
font-size:22px;
line-height:1.2;
margin-bottom:10px;
}

@media (max-width:640px){
.rsvp-members-grid{
grid-template-columns:1fr;
gap:10px;
}

.rsvp-page .rsvp-family-card,
.rsvp-home-panel .rsvp-family-card{
padding:8px 0;
}

.rsvp-page .rsvp-family-members,
.rsvp-home-panel .rsvp-family-members{
display:grid;
grid-template-columns:1fr;
gap:4px;
}
}

.rsvp-member-checkbox{
margin-top:10px;
padding-top:10px;
border-top:1px solid rgba(88,102,79,0.12);
}

.rsvp-choice-group{
display:flex;
gap:8px;
flex-wrap:wrap;
}

.rsvp-choice{
display:flex;
align-items:center;
gap:8px;
padding:8px 10px;
background:rgba(248,242,228,0.58);
border-radius:12px;
cursor:pointer;
font-size:14px;
}

.rsvp-form{
display:grid;
gap:18px;
}

.rsvp-grid{
display:grid;
grid-template-columns:repeat(2, minmax(0, 1fr));
gap:18px;
}

.rsvp-field{
display:grid;
gap:8px;
}

.rsvp-field-full{
grid-column:1 / -1;
}

.rsvp-field label{
font-size:13px;
letter-spacing:0.08em;
text-transform:uppercase;
color:#5b6854;
}

.rsvp-field input,
.rsvp-field select,
.rsvp-field textarea{
width:100%;
box-sizing:border-box;
padding:14px 16px;
border:1px solid rgba(88,102,79,0.18);
border-radius:18px;
background:rgba(255,255,255,0.92);
font:inherit;
color:#2b2b2b;
}

.rsvp-field textarea{
min-height:120px;
resize:vertical;
}

.rsvp-checkbox{
display:flex;
align-items:flex-start;
gap:12px;
font-size:15px;
letter-spacing:normal;
text-transform:none;
color:#2b2b2b;
}

.rsvp-checkbox input{
width:auto;
margin-top:2px;
}

.rsvp-checkbox.is-disabled{
opacity:0.45;
cursor:not-allowed;
}

.rsvp-checkbox.is-disabled span{
color:#7a7a7a;
}

.rsvp-alert{
padding:14px 16px;
border-radius:18px;
margin-bottom:22px;
font-size:15px;
line-height:1.6;
}

.rsvp-alert-success{
background:rgba(101,140,94,0.14);
border:1px solid rgba(101,140,94,0.28);
color:#25411f;
}

.rsvp-alert-error{
background:rgba(172,95,95,0.12);
border:1px solid rgba(172,95,95,0.26);
color:#6a2f2f;
}

.rsvp-list{
margin:10px 0 0;
padding-left:18px;
}

.rsvp-submit{
justify-self:start;
border:none;
cursor:pointer;
}

.rsvp-back{
display:inline-block;
margin-top:24px;
color:#173d2f;
text-decoration:none;
border-bottom:1px solid rgba(23,61,47,0.3);
padding-bottom:2px;
}

.rsvp-admin-shell{
max-width:1100px;
margin:40px auto;
padding:0 20px 40px;
}

.rsvp-admin-topbar{
display:flex;
justify-content:space-between;
align-items:center;
gap:20px;
margin-bottom:24px;
}

.rsvp-admin-actions{
display:flex;
gap:12px;
flex-wrap:wrap;
}

.rsvp-admin-stats{
display:grid;
grid-template-columns:repeat(4, minmax(0, 1fr));
gap:16px;
margin-bottom:24px;
}

.rsvp-admin-grid{
display:grid;
grid-template-columns:minmax(0, 1fr) minmax(280px, 0.8fr);
gap:20px;
align-items:start;
margin-bottom:24px;
}

.rsvp-admin-card{
background:rgba(255,255,255,0.82);
border:1px solid rgba(88,102,79,0.14);
border-radius:28px;
box-shadow:0 18px 36px rgba(45,58,39,0.08);
padding:24px;
text-align:left;
}

.rsvp-admin-card h2{
font-size:28px;
margin:0 0 18px;
color:#173d2f;
}

.rsvp-invite-list{
display:grid;
gap:12px;
max-height:420px;
overflow:auto;
}

.rsvp-invite-row{
display:grid;
gap:6px;
padding:14px 16px;
background:rgba(248,242,228,0.72);
border:1px solid rgba(88,102,79,0.12);
border-radius:18px;
}

.rsvp-invite-row a{
color:#173d2f;
font-size:13px;
overflow-wrap:anywhere;
}

.rsvp-invite-edit{
margin-top:6px;
}

.rsvp-invite-edit summary{
cursor:pointer;
color:#5b6854;
font-size:13px;
font-weight:700;
letter-spacing:0.08em;
text-transform:uppercase;
}

.rsvp-invite-edit .rsvp-form{
margin-top:14px;
}

.rsvp-invite-edit .rsvp-field textarea{
min-height:92px;
}

.rsvp-invite-actions{
display:flex;
gap:10px;
flex-wrap:wrap;
}

.rsvp-delete-form{
margin-top:12px;
padding-top:12px;
border-top:1px solid rgba(88,102,79,0.12);
}

.rsvp-danger-button{
border:0;
background:rgba(172,95,95,0.14);
color:#6a2f2f;
border-radius:999px;
padding:11px 16px;
font:inherit;
font-size:14px;
cursor:pointer;
}

.rsvp-stat{
padding:18px;
background:rgba(255,255,255,0.78);
border-radius:24px;
border:1px solid rgba(88,102,79,0.14);
box-shadow:0 14px 30px rgba(45,58,39,0.07);
text-align:center;
}

.rsvp-stat strong{
display:block;
font-size:34px;
margin-bottom:6px;
color:#173d2f;
}

.rsvp-admin-table-wrap{
overflow:auto;
background:rgba(255,255,255,0.82);
border-radius:28px;
border:1px solid rgba(88,102,79,0.14);
box-shadow:0 18px 36px rgba(45,58,39,0.08);
}

.rsvp-admin-table{
width:100%;
border-collapse:collapse;
min-width:900px;
text-align:left;
}

.rsvp-admin-table th,
.rsvp-admin-table td{
padding:16px 18px;
border-bottom:1px solid rgba(88,102,79,0.12);
vertical-align:top;
}

.rsvp-admin-table th{
font-size:13px;
letter-spacing:0.08em;
text-transform:uppercase;
color:#5b6854;
background:rgba(248,242,228,0.78);
}

.rsvp-admin-table small{
display:block;
margin-top:6px;
color:#5b6854;
word-break:break-all;
}

@media (max-width:768px){

.rsvp-card{
grid-template-columns:1fr;
padding:22px;
}

.rsvp-summary{
order:-1;
}

.invite-actions{
flex-direction:column;
}

.rsvp-panel{
padding:24px 20px;
}

.rsvp-panel h1{
font-size:40px;
}

.rsvp-grid{
grid-template-columns:1fr;
}

.rsvp-choice-group{
flex-direction:column;
}

.rsvp-submit{
justify-self:stretch;
}

.rsvp-admin-topbar{
flex-direction:column;
align-items:flex-start;
}

.rsvp-admin-stats{
grid-template-columns:repeat(2, minmax(0, 1fr));
}

.rsvp-admin-grid{
grid-template-columns:1fr;
}

}
