:root{
  --blue:#0b3d5c;
  --blue-light:#e8f1f7;
  --accent:#1e88b5;
  --danger:#c0392b;
  --border:#d3dde3;
  --text:#1c2a33;
  font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--blue-light);color:var(--text);}
.wrap{max-width:900px;margin:0 auto;padding:24px 16px 80px;}
header{text-align:center;margin-bottom:24px;}
header h1{color:var(--blue);margin-bottom:4px;font-size:1.6rem;}
.subtitle{color:var(--accent);font-weight:600;}
.card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:20px;}
.card h2{margin-top:0;color:var(--blue);font-size:1.15rem;border-bottom:2px solid var(--blue-light);padding-bottom:8px;}
.hint{font-size:.85rem;color:#5b6b74;margin-top:-8px;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
.span2{grid-column:span 2;}
@media (max-width:640px){.grid2,.grid3{grid-template-columns:1fr;}.span2{grid-column:span 1;}}
label{display:flex;flex-direction:column;font-size:.85rem;font-weight:600;color:#3a4a52;gap:4px;}
input,select{font-size:.95rem;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-weight:400;color:var(--text);background:#fff;}
input:invalid:not(:placeholder-shown){border-color:var(--danger);}
.checkbox{flex-direction:row;align-items:flex-start;gap:8px;font-weight:400;margin-bottom:12px;}
.checkbox input{width:auto;margin-top:3px;}
.participant-row{position:relative;border:1px dashed var(--border);border-radius:8px;padding:16px;margin-bottom:14px;background:#fbfdfe;}
.removeRow{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--danger);font-size:1rem;cursor:pointer;}
.btn-primary,.btn-secondary{cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-weight:600;font-size:.95rem;}
.btn-primary{background:var(--accent);color:#fff;}
.btn-primary:disabled{opacity:.6;cursor:wait;}
.btn-secondary{background:#fff;border:1px solid var(--accent);color:var(--accent);}
.form-actions{display:flex;align-items:center;gap:16px;}
#statusMsg{font-weight:600;}
#statusMsg.ok{color:#1a7a3d;}
#statusMsg.err{color:var(--danger);}
