/* Public registration pages — branded per project via CSS variables set in head.php */
*{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none!important}
body{font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;min-height:100vh;line-height:1.5}
body.theme-dark{color:#e2e8f0;background:#0a0f1c}
body.theme-light{color:#0f172a;background:#eef2f9}
a{color:inherit}
.preview-bar{position:sticky;top:0;z-index:50;background:#f59e0b;color:#111;text-align:center;font-weight:600;font-size:.85rem;padding:8px 12px}

.bg-image{position:fixed;inset:0;background-size:cover;background-position:center 30%;background-repeat:no-repeat;z-index:-2;filter:blur(2px);transform:scale(1.03)}
.bg-overlay{position:fixed;inset:0;z-index:-1}
.theme-dark .bg-overlay{background:linear-gradient(135deg,rgba(10,10,15,.88),rgba(var(--primary-rgb),.55) 60%,rgba(10,10,15,.92))}
.theme-light .bg-overlay{background:linear-gradient(135deg,rgba(238,242,249,.93),rgba(var(--primary-rgb),.18) 70%,rgba(238,242,249,.95))}

.main{max-width:1000px;margin:0 auto;padding:20px 16px 40px}
.glass-card{border-radius:28px;overflow:hidden;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.theme-dark .glass-card{background:rgba(15,23,42,.88);border:1px solid rgba(var(--accent-rgb),.35);box-shadow:0 30px 60px -15px rgba(0,0,0,.6)}
.theme-light .glass-card{background:rgba(255,255,255,.96);border:1px solid #dbe3f0;box-shadow:0 20px 50px -20px rgba(15,23,42,.25)}

.nav-tabs{display:flex;gap:12px;padding:12px 16px}
.theme-dark .nav-tabs{background:rgba(0,0,0,.45);border-bottom:1px solid rgba(255,255,255,.08)}
.theme-light .nav-tabs{background:#f1f5fb;border-bottom:1px solid #e2e8f0}
.nav-tab{flex:1;padding:11px 16px;border-radius:40px;text-align:center;font-weight:700;text-decoration:none;transition:.25s}
.theme-dark .nav-tab{color:#cbd5e1}
.theme-light .nav-tab{color:#475569}
.nav-tab.active{background:linear-gradient(90deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 8px 20px rgba(var(--primary-rgb),.35)}

.hero-banner{position:relative;line-height:0;border-bottom:3px solid rgba(var(--accent-rgb),.45)}
.hero-banner img{display:block;width:100%;height:auto;max-height:420px;object-fit:contain;background:#000}
.theme-light .hero-banner img{background:#f8fafc}
.hero-fallback{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:28px 16px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;text-align:center}
.hero-logo{max-height:80px;max-width:200px;object-fit:contain;background:#fff;border-radius:14px;padding:6px}
.hero-name{font-size:1.5rem;font-weight:800;letter-spacing:.3px}
.brand-row{display:flex;justify-content:center;margin:-46px 0 6px;position:relative;z-index:2}
.brand-logo{height:76px;width:76px;object-fit:contain;border-radius:50%;background:#fff;border:3px solid var(--accent);padding:4px}

.form-container{padding:20px 28px 36px}
h1{font-family:'Playfair Display',Georgia,serif;font-size:2.4rem;font-weight:900;text-align:center;margin:16px 0 6px;line-height:1.15}
.theme-dark h1{background:linear-gradient(135deg,#fff,var(--accent),var(--primary));-webkit-background-clip:text;background-clip:text;color:transparent}
.theme-light h1{color:var(--primary-dark)}
.subtitle{text-align:center;font-weight:500;margin-bottom:12px;letter-spacing:.5px;opacity:.85}
.description{text-align:center;max-width:640px;margin:0 auto 18px;opacity:.85}
.muted{opacity:.7;font-size:.9rem;margin-top:8px}

.countdown-banner{border-radius:24px;padding:14px 20px;text-align:center;margin:6px auto 18px;max-width:520px;border:1px solid rgba(var(--accent-rgb),.4)}
.theme-dark .countdown-banner{background:rgba(0,0,0,.55)}
.theme-light .countdown-banner{background:#f8fafc}
.countdown-banner p{font-size:.8rem;text-transform:uppercase;letter-spacing:2px;color:var(--accent)}
.theme-light .countdown-banner p{color:var(--primary)}
#countdown{font-size:1.8rem;font-weight:800;font-family:ui-monospace,monospace}
.theme-dark #countdown{color:var(--accent)}

.fields{display:flex;flex-wrap:wrap;gap:0 20px}
.form-group{margin-bottom:18px;flex:1 1 100%;min-width:0}
.form-group.half{flex:1 1 calc(50% - 10px)}
label{display:block;margin-bottom:7px;font-weight:600;font-size:.88rem}
.theme-dark label{color:#f1f5f9}
.required{color:#ef4444;margin-left:2px}
input:not([type]),input[type=text],input[type=tel],input[type=email],input[type=number],input[type=search],input[type=file],select,textarea{width:100%;padding:13px 16px;border-radius:16px;font-size:1rem;font-family:inherit;font-weight:500;transition:.2s;outline:none;color:#1e293b;background:#fff;border:1.5px solid #cbd5e1}
.theme-dark input[type=text],.theme-dark input[type=tel],.theme-dark input[type=email],.theme-dark input[type=number],.theme-dark input[type=search],.theme-dark input[type=file],.theme-dark select,.theme-dark textarea{background:rgba(255,255,255,.96);border-color:rgba(255,255,255,.15)}
input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.22)}
.has-error input,.has-error select,.has-error textarea{border-color:#ef4444!important}
.field-error{color:#f87171;font-size:.8rem;margin-top:5px;min-height:0}
.theme-light .field-error{color:#dc2626}
.help{display:block;margin-top:5px;font-size:.78rem;opacity:.7}
.choices{display:flex;flex-wrap:wrap;gap:8px 18px}
.choice{display:flex;align-items:center;gap:8px;font-weight:500;cursor:pointer;margin:0}
.choice input{width:18px;height:18px;accent-color:var(--primary)}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

.image-preview-area{margin-top:10px}
.image-preview-area img{max-width:110px;border-radius:14px;border:3px solid var(--accent);padding:3px;background:#1e293b}

.submit-btn{display:block;width:100%;margin-top:14px;padding:16px;border:none;border-radius:60px;cursor:pointer;color:#fff;font-size:1.05rem;font-weight:800;letter-spacing:.3px;background:linear-gradient(90deg,var(--primary),var(--primary-dark));box-shadow:0 10px 25px rgba(var(--primary-rgb),.4);transition:.25s}
.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 16px 32px rgba(var(--primary-rgb),.5)}
.submit-btn:disabled{opacity:.6;cursor:not-allowed}

.alert{padding:13px 18px;border-radius:18px;margin-bottom:16px;font-weight:500}
.alert-error{background:rgba(239,68,68,.18);border-left:5px solid #ef4444}
.theme-dark .alert-error{color:#fecaca}
.theme-light .alert-error{color:#991b1b}

.closed-box{padding:40px 20px;border-radius:20px;text-align:center;margin:10px 0}
.theme-dark .closed-box{background:#450a0a}
.theme-light .closed-box{background:#fef2f2;color:#7f1d1d}
.closed-box h2{margin-bottom:8px}

.contact{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;margin-top:26px;padding-top:16px;font-size:.85rem;opacity:.85;border-top:1px solid rgba(127,127,127,.25)}
.contact a{text-decoration:none}

.loading-overlay{position:fixed;inset:0;background:rgba(0,0,0,.9);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:9999;color:#fff;text-align:center;padding:20px}
.loading-overlay[hidden]{display:none}
.spinner{width:48px;height:48px;margin:0 auto 16px;border:4px solid rgba(255,255,255,.25);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.fullscreen-success-overlay{position:fixed;inset:0;background:rgba(0,0,0,.88);backdrop-filter:blur(16px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .3s}
.success-card{background:linear-gradient(145deg,rgba(30,35,55,.98),rgba(15,20,35,.98));color:#e2e8f0;border-radius:32px;padding:36px 26px;max-width:480px;width:100%;text-align:center;border:1px solid rgba(var(--accent-rgb),.5)}
.success-icon{width:72px;height:72px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.4rem;font-weight:800;color:#fff;background:linear-gradient(135deg,#22c55e,#15803d)}
.success-card h2{font-size:1.6rem;margin:14px 0 8px;color:var(--accent)}
.success-card .ref{margin-top:12px;font-size:1.05rem}
.success-card .ref strong{font-family:ui-monospace,monospace;color:#fff}
.small-text{margin-top:18px;font-size:.85rem;color:#cbd5e1;border-top:1px solid rgba(255,255,255,.2);padding-top:16px;text-align:left}
.success-card button{background:var(--primary);border:none;color:#fff;font-weight:700;padding:12px 34px;border-radius:40px;margin-top:22px;cursor:pointer;font-size:1rem}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

.list-search{margin:12px 0 18px}
.people{display:grid;gap:12px}
.person{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:18px;text-decoration:none}
.theme-dark .person{background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.08)}
.theme-light .person{background:#f8fafc;border:1px solid #e2e8f0}
a.person:hover{border-color:var(--primary)}
.avatar{flex:0 0 48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-dark))}
.person-info{flex:1;min-width:0}
.person-info h3{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.theme-dark .person-info h3{color:var(--accent)}
.person-info p{font-size:.82rem;opacity:.8}
.person-meta{text-align:right;font-size:.8rem;opacity:.85;display:flex;flex-direction:column}
.empty{text-align:center;padding:40px 0;opacity:.75}

/* jQuery UI datepicker polish */
.ui-datepicker{font-size:14px;z-index:20!important}
.ui-datepicker select{padding:2px 4px}

@media (max-width:768px){
  .form-container{padding:16px 16px 28px}
  h1{font-size:1.7rem}
  .form-group.half{flex-basis:100%}
  .glass-card{border-radius:22px}
  #countdown{font-size:1.4rem}
  .person-meta{display:none}
}
@media (max-width:420px){
  .main{padding:10px 8px 24px}
  .nav-tabs{gap:6px;padding:10px}
  .nav-tab{padding:10px 8px;font-size:.9rem}
}
