:root{--teal:#0b7a9e;--teal-d:#085f7b;--orange:#f9a61a;--red:#e8262a;--bg:#f3f6f8;--text:#222}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);line-height:1.5}
.wrap{max-width:640px;margin:0 auto;padding:16px}
.card{background:#fff;border-radius:14px;box-shadow:0 2px 14px rgba(0,0,0,.07);overflow:hidden}
.head{padding:18px 22px;border-bottom:4px solid var(--orange);display:flex;align-items:center;gap:14px}
.head img{height:56px;width:auto}
.body{padding:22px}
h1{font-size:1.35rem;margin:0 0 4px;color:var(--teal)}
p.sub{margin:0 0 18px;color:#555}
label{display:block;font-weight:600;margin:14px 0 5px;font-size:.95rem}
label .req{color:var(--red)}
input[type=text],input[type=tel],input[type=email],input[type=password],select{
 width:100%;padding:11px 12px;border:1.5px solid #cfd8dc;border-radius:9px;font-size:1rem;background:#fff}
input:focus,select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(11,122,158,.15)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:520px){.row{grid-template-columns:1fr}}
.consent{background:#fff8ea;border:1.5px solid var(--orange);border-radius:10px;padding:12px 14px;margin-top:18px;display:flex;gap:10px;align-items:flex-start}
.consent input{margin-top:5px;width:18px;height:18px;flex:none}
.consent label{margin:0;font-weight:500}
button,.btn{display:inline-block;width:100%;margin-top:20px;padding:13px;border:0;border-radius:10px;background:var(--teal);color:#fff;font-size:1.05rem;font-weight:700;cursor:pointer;text-align:center;text-decoration:none}
button:hover,.btn:hover{background:var(--teal-d)}
button.alt{background:#2e7d32}
.err{background:#fdecea;border:1px solid #f5b5b0;color:#9b1c1c;border-radius:9px;padding:10px 14px;margin-bottom:14px}
.err ul{margin:4px 0 0 18px;padding:0}
.field-err{color:#b3261e;font-size:.85rem;margin-top:3px}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.id-box{text-align:center;background:#eef7fa;border-radius:10px;padding:16px;margin:16px 0}
.id-box b{display:block;font-size:1.9rem;letter-spacing:2px;color:var(--teal)}
.badge{display:inline-block;padding:4px 12px;border-radius:99px;font-weight:700;font-size:.85rem}
.ok{background:#e3f4e5;color:#256b2b}.warn{background:#fff1d6;color:#8a5a00}.bad{background:#fdecea;color:#9b1c1c}
table.info{width:100%;border-collapse:collapse;margin-top:10px}
table.info td{padding:9px 6px;border-bottom:1px solid #eee;vertical-align:top}
table.info td:first-child{color:#666;width:36%}
small.note{color:#777;display:block;margin-top:14px}

.banner{padding:14px;border-radius:10px;font-weight:700;text-align:center;margin:12px 0;font-size:1.15rem}
.banner.ok{background:#e3f4e5;color:#1b5e20;border:2px solid #66bb6a}
.banner.warn{background:#fff1d6;color:#8a5a00;border:2px solid var(--orange)}
.banner small{display:block;font-weight:500;font-size:.9rem;margin-top:4px}
.btn.sec,button.sec{background:#607d8b}
.btn.big{font-size:1.25rem;padding:18px}
#reader{width:100%;border-radius:10px;overflow:hidden;background:#111;min-height:120px}
.stats{display:flex;gap:10px;margin:8px 0 14px}
.stats div{flex:1;text-align:center;background:#eef7fa;border-radius:10px;padding:8px}
.stats b{display:block;font-size:1.4rem;color:var(--teal)}
.linkbtn{background:none;border:0;color:#777;text-decoration:underline;width:auto;margin:14px 0 0;padding:0;font-size:.9rem;font-weight:400;cursor:pointer}
.linkbtn:hover{background:none;color:#333}

/* Individual/Group chooser */
.type-choice{display:flex;gap:12px;margin:16px 0 20px}
.type-card{flex:1;background:#fff;border:2px solid #cfd8dc;border-radius:12px;padding:14px;text-align:left;cursor:pointer;font-family:inherit}
.type-card b{display:block;color:var(--teal);font-size:1.02rem;margin-bottom:3px}
.type-card span{display:block;color:#666;font-size:.85rem}
.type-card.active{border-color:var(--teal);background:#eef7fa}
.type-card:hover{border-color:var(--teal)}
@media(max-width:520px){.type-choice{flex-direction:column}}
.hidden{display:none!important}

/* Person rows (group registration) */
.person-row{background:#fafbfc;border:1.5px solid #e3e8ea;border-radius:10px;padding:14px;margin-top:12px}
.person-row-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}
.person-num{font-weight:700;color:#0b7a9e;font-size:.9rem;text-transform:uppercase;letter-spacing:.03em}
.remove-person{width:auto;margin:0;padding:5px 10px;font-size:.8rem;background:#e8262a;border-radius:7px}
.remove-person:disabled{background:#ccc;cursor:not-allowed}
.remove-person:hover:not(:disabled){background:#c11f22}
#group-count-note{color:#777;font-size:.85rem;margin-top:6px}

/* Registration page: hero background, spacing, footer */
body.reg-bg{
  background-image:linear-gradient(rgba(8,30,45,.35),rgba(8,30,45,.55)), url('bg-hero.jpg');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  min-height:100vh;
}
body.reg-bg .wrap{margin:70px auto}
@media(max-width:600px){ body.reg-bg .wrap{margin:40px auto} }

.site-footer{text-align:center;margin-top:22px;color:#fff}
.site-footer .home-btn{display:inline-block;background:rgba(255,255,255,.95);color:var(--teal-d);
  font-weight:700;padding:10px 20px;border-radius:99px;text-decoration:none;margin-bottom:10px}
.site-footer .home-btn:hover{background:#fff}
.site-footer .copyright{font-size:.82rem;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5);margin:0}

/* Type-choice cards now contain their own Register button */
.type-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;cursor:default}
.type-card button{width:100%;margin-top:auto}
