@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,500;9..144,600&family=Albert+Sans:wght@400;500;600;700&display=swap');

:root{
  --ivoire:#FBF6EE; --ivoire-2:#F3EBDA; --encre:#26201A;
  --vert:#1E3D33; --vert-2:#16302A; --or:#B8902F;
  --erreur:#A8493B; --radius:18px;
  --ombre: 0 12px 30px -10px rgba(38,32,26,0.25);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background: var(--ivoire); color: var(--encre);
  font-family:'Albert Sans', sans-serif; -webkit-font-smoothing:antialiased; min-height:100vh;
}
.wrap{ max-width:600px; margin:0 auto; padding:48px 22px 72px; }
.eyebrow{
  text-transform:uppercase; letter-spacing:0.18em; font-size:12px; color:var(--or);
  text-align:center; font-weight:600; margin-bottom:14px;
}
h1.names{
  font-family:'Fraunces', serif; font-weight:600; font-size:clamp(30px,7vw,46px);
  text-align:center; margin:0 0 6px; color:var(--vert-2); line-height:1.05;
}
.meta{ text-align:center; font-size:15px; color:#5b5044; margin:0; }
.meta strong{color:var(--encre);}
.divider-svg{ display:flex; justify-content:center; margin:26px 0 30px; }
.invite-card{
  background:white; border-radius:var(--radius); box-shadow:var(--ombre);
  padding:10px; margin:0 0 36px; transform: rotate(-0.6deg);
}
.invite-card img{ width:100%; display:block; border-radius:12px; }
.card{
  background: var(--ivoire-2); border:1px solid rgba(38,32,26,0.08);
  border-radius: var(--radius); padding:30px 26px;
}
label{ display:block; font-size:13px; font-weight:600; letter-spacing:0.02em; color:var(--vert-2); margin-bottom:8px; }
.field{margin-bottom:22px;}
textarea, input[type=text], input[type=password], input[type=number]{
  width:100%; font-family:'Albert Sans', sans-serif; font-size:16px; padding:13px 14px;
  border-radius:10px; border:1.5px solid rgba(38,32,26,0.15); background:white;
  color:var(--encre); outline:none;
}
textarea{ resize:vertical; min-height:80px; }
textarea:focus, input:focus{ border-color: var(--or); box-shadow: 0 0 0 3px rgba(184,144,47,0.18); }
.greeting{ font-size:15px; color:#5b5044; margin-bottom:18px; }
.greeting strong{ color:var(--vert-2); }
.segmented{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.seg-btn{
  appearance:none; border:1.5px solid rgba(38,32,26,0.15); background:white; color:var(--encre);
  padding:14px 10px; border-radius:10px; font-family:'Albert Sans', sans-serif; font-size:15px;
  font-weight:600; cursor:pointer;
}
.seg-btn.active.yes{ background:var(--vert); border-color:var(--vert); color:white; }
.seg-btn.active.no{ background:var(--erreur); border-color:var(--erreur); color:white; }
.row-2{ display:flex; gap:18px; flex-wrap:wrap; }
.row-2 > div{ flex:1; min-width:120px; }
.submit-btn, .btn{
  width:100%; padding:16px; border:none; border-radius:12px;
  background: var(--vert); color:white; font-family:'Albert Sans', sans-serif;
  font-weight:700; font-size:16px; cursor:pointer; text-decoration:none; display:inline-block; text-align:center;
}
.submit-btn:hover, .btn:hover{ background:var(--vert-2); }
.btn-small{ width:auto; padding:8px 14px; font-size:13px; border-radius:8px; }
.error-msg{ color:var(--erreur); font-size:13.5px; margin:-10px 0 16px; font-weight:600; }
.thanks{ text-align:center; padding:20px 6px 6px; }
.thanks h2{ font-family:'Fraunces', serif; font-size:26px; color:var(--vert-2); margin:0 0 10px; }
.thanks p{ color:#5b5044; font-size:15px; line-height:1.5; margin:0; }
footer{ text-align:center; margin-top:46px; font-size:12.5px; color:#9a8e7a; }
footer a{ color:#9a8e7a; }

/* Dashboard */
.dash-wrap{ max-width:900px; margin:0 auto; padding:40px 22px 72px; }
.dash-header{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:26px; flex-wrap:wrap; gap:8px; }
.dash-header h1{ font-family:'Fraunces', serif; font-size:28px; color:var(--vert-2); margin:0; }
.stats{ display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-bottom:30px; }
@media (max-width:680px){ .stats{ grid-template-columns:repeat(2,1fr); } }
.stat{ background:white; border-radius:14px; padding:18px 14px; border:1px solid rgba(38,32,26,0.08); text-align:center; }
.stat .num{ font-family:'Fraunces', serif; font-size:28px; color:var(--vert-2); font-weight:600; }
.stat .lab{ font-size:11.5px; color:#85785f; letter-spacing:0.02em; margin-top:2px; }
.stat.declined .num{ color:var(--erreur); }
.table-wrap{ background:white; border-radius:16px; border:1px solid rgba(38,32,26,0.08); overflow:auto; }
table{ width:100%; border-collapse:collapse; font-size:13.5px; }
th{ text-align:left; padding:12px 14px; background:var(--ivoire-2); font-size:11px; letter-spacing:0.03em; text-transform:uppercase; color:#6f6450; white-space:nowrap; }
td{ padding:10px 14px; border-top:1px solid rgba(38,32,26,0.06); vertical-align:middle; }
.pill{ display:inline-block; padding:3px 10px; border-radius:100px; font-size:12px; font-weight:700; white-space:nowrap; }
.pill.yes{ background:rgba(30,61,51,0.12); color:var(--vert-2); }
.pill.no{ background:rgba(168,73,59,0.12); color:var(--erreur); }
.pill.pending{ background:rgba(38,32,26,0.08); color:#6f6450; }
.msg-cell{ max-width:180px; color:#5b5044; font-size:12.5px; }
.table-input{ width:90px; padding:6px 8px; font-size:13px; border-radius:6px; border:1px solid rgba(38,32,26,0.15); }
.link-cell{ font-size:12px; word-break:break-all; }
.login-wrap{ max-width:380px; margin:80px auto; padding:0 22px; }
