:root{
  --cream:#FBF5EE;
  --cream-dark:#F1E6D8;
  --terracotta:#C1704B;
  --terracotta-dark:#A85B39;
  --brown:#3E2A20;
  --brown-soft:#6B5648;
  --red:#C23B32;
  --red-bg:#FBE9E7;
  --green:#4C7A5A;
  --white:#FFFFFF;
  --shadow: 0 2px 10px rgba(62,42,32,0.08);
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  background:var(--cream);
  color:var(--brown);
}
header{
  background:var(--terracotta);
  color:var(--white);
  padding:18px 16px;
  text-align:center;
}
header h1{ margin:0; font-size:1.15rem; }
header p{ margin:4px 0 0; font-size:.8rem; opacity:.9; }
.wrap{ max-width:640px; margin:0 auto; padding:16px; }

.card{
  background:var(--white);
  border-radius:14px;
  padding:18px;
  box-shadow:var(--shadow);
  margin-bottom:14px;
}
.card h2{ font-size:1rem; margin:0 0 12px; color:var(--terracotta-dark); }
.success-card{ text-align:center; }
.success-card h2{ color:var(--green); }

label{
  display:block;
  font-size:.82rem;
  font-weight:600;
  margin:12px 0 6px;
  color:var(--brown-soft);
}
label.required::after{ content:" *"; color:var(--red); }
.optional-note{ font-weight:400; color:var(--brown-soft); font-size:.78rem; }

input[type=text], input[type=tel], input[type=date], input[type=number], select{
  width:100%;
  padding:11px 12px;
  border:1px solid #E4D6C7;
  border-radius:9px;
  font-size:.95rem;
  background:var(--cream);
  color:var(--brown);
}
input.invalid, select.invalid{ border-color:var(--red) !important; background:var(--red-bg) !important; }

.radio-row{ display:flex; gap:10px; }
.radio-row.invalid-row .radio-opt{ border-color:var(--red); background:var(--red-bg); }
.radio-opt{
  flex:1;
  text-align:center;
  padding:10px;
  border:1px solid #E4D6C7;
  border-radius:9px;
  font-size:.85rem;
  background:var(--cream);
  cursor:pointer;
}
.radio-opt.selected{ background:var(--terracotta); color:var(--white); border-color:var(--terracotta); font-weight:600; }

.child-row{
  display:flex; gap:8px; align-items:center; margin-bottom:8px;
  background:var(--cream); padding:8px; border-radius:9px;
}
.child-row input, .child-row select{ flex:1; }
.child-row .remove-child{ color:var(--red); font-weight:700; padding:0 6px; cursor:pointer; }

.btn-add{
  background:none; border:1px dashed var(--terracotta); color:var(--terracotta-dark);
  padding:9px; border-radius:9px; font-size:.85rem; width:100%; font-weight:600; cursor:pointer;
}

.upload-box{
  border:1.5px dashed var(--terracotta); border-radius:10px; padding:16px; text-align:center;
  font-size:.82rem; color:var(--brown-soft); background:var(--cream); cursor:pointer;
}
.upload-box strong{ display:block; color:var(--terracotta-dark); margin-bottom:4px; }
.upload-box.uploaded{ border-style:solid; border-color:var(--green); background:#EFF7F1; }
.upload-box.uploaded strong{ color:var(--green); }
.upload-box.invalid{ border-color:var(--red) !important; background:var(--red-bg) !important; }

.btn-submit{
  width:100%; background:var(--terracotta); color:var(--white); border:none;
  padding:14px; border-radius:10px; font-size:1rem; font-weight:700; margin-top:16px; cursor:pointer;
}
.note{ font-size:.72rem; color:var(--brown-soft); text-align:center; margin-top:18px; line-height:1.5; }

.error-text{ color:var(--red); font-size:.74rem; margin-top:4px; display:none; }
.error-text.show{ display:block; }

#form-error-banner, #server-error-banner{
  display:none; background:var(--red); color:var(--white); padding:10px 14px;
  border-radius:9px; font-size:.82rem; font-weight:600; margin-bottom:12px;
}
#server-error-banner{ display:block; }
