:root { --navy:#121643; --navy-soft:#20265f; --yellow:#f8d448; --ink:#171a2f; --muted:#686d80; --line:#dde0ea; --surface:#fff; --background:#f3f4f8; --success:#13734a; --danger:#a8342a; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--ink); background:var(--background); }
* { box-sizing:border-box; }
body { min-height:100vh; margin:0; background:radial-gradient(circle at 10% 0,#fff8d7 0,transparent 27rem),var(--background); }
.public-header { display:flex; min-height:4.8rem; align-items:center; justify-content:space-between; gap:1rem; padding:1rem clamp(1rem,5vw,4rem); background:#fff; border-bottom:1px solid var(--line); }
.public-brand { display:flex; align-items:center; gap:.75rem; color:var(--navy); font-weight:850; text-decoration:none; }
.brand-mark { display:grid; width:2.3rem; height:2.3rem; place-items:center; border-radius:.65rem; color:var(--navy); background:var(--yellow); font-weight:950; }
.login-link { color:var(--navy); font-size:.85rem; font-weight:800; }
.register-main { display:grid; grid-template-columns:minmax(18rem,.75fr) minmax(30rem,1.25fr); width:min(72rem,calc(100% - 2rem)); gap:clamp(2rem,6vw,6rem); align-items:center; margin:clamp(2rem,7vh,5rem) auto; }
.register-main.single { display:block; width:min(36rem,calc(100% - 2rem)); }
.register-intro h1 { margin:.3rem 0 1rem; color:var(--navy); font-size:clamp(2.3rem,5vw,4.6rem); line-height:1.02; letter-spacing:-.045em; }
.register-intro > p:not(.eyebrow) { color:var(--muted); font-size:1.05rem; line-height:1.7; }
.eyebrow,.step-copy { margin:0; color:#8a6500; font-size:.72rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.step-indicator { display:flex; width:12rem; align-items:center; margin-top:2rem; }
.step-indicator span { display:grid; width:2.3rem; height:2.3rem; flex:0 0 auto; place-items:center; border:2px solid #c7cada; border-radius:999px; color:var(--muted); background:#fff; font-weight:900; }
.step-indicator span.active { border-color:var(--yellow); color:var(--navy); background:var(--yellow); }
.step-indicator i { width:100%; height:2px; background:#c7cada; }.step-indicator i.complete { background:var(--yellow); }
.register-card { padding:clamp(1.4rem,4vw,2.4rem); border:1px solid var(--line); border-radius:1.25rem; background:#fff; box-shadow:0 22px 70px rgba(18,22,67,.09); }
.register-card h2,.result h1 { margin:.35rem 0 .5rem; color:var(--navy); font-size:clamp(1.55rem,3vw,2.2rem); }.lead { margin:0 0 1.5rem; color:var(--muted); line-height:1.55; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }.field { margin-bottom:1rem; }.field label { display:block; margin:0 0 .35rem; font-size:.75rem; font-weight:800; }
.field input,.field select { width:100%; height:3rem; min-height:3rem; padding:.65rem .8rem; border:1px solid var(--line); border-radius:.7rem; background-color:#fff; color:var(--ink); font:inherit; line-height:1.25; }.field select { padding-right:2.5rem; appearance:none; -webkit-appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%); background-position:calc(100% - 1.05rem) 50%,calc(100% - .75rem) 50%; background-size:.32rem .32rem,.32rem .32rem; background-repeat:no-repeat; cursor:pointer; }.field select:disabled { cursor:not-allowed;color:var(--muted);background-color:#f3f4f7; }.field input:focus,.field select:focus { border-color:var(--navy-soft); outline:0; box-shadow:0 0 0 4px rgba(18,22,67,.09); }
.consent { display:flex; align-items:flex-start; gap:.65rem; margin:.2rem 0 1rem; color:var(--muted); font-size:.75rem; line-height:1.5; }.consent input { margin-top:.2rem; }.honeypot { position:absolute; left:-10000px; }
.button,.secondary-button { display:block; width:100%; min-height:3rem; padding:.7rem 1rem; border:0; border-radius:.7rem; cursor:pointer; color:var(--navy); background:var(--yellow); font:inherit; font-weight:900; text-align:center; text-decoration:none; }.button:disabled { cursor:not-allowed; opacity:.5; }.secondary-button { width:auto; border:1px solid var(--line); background:#fff; white-space:nowrap; }.button-link { margin-top:1.5rem; }
.turnstile { min-height:1rem; margin:1rem 0; }.message { min-height:1.3rem; margin:1rem 0 0; color:var(--danger); font-size:.8rem; line-height:1.5; }.message.success { color:var(--success); }.hidden { display:none!important; }
.result { padding:1rem 0; text-align:center; }.result-icon { display:grid; width:4rem; height:4rem; margin:0 auto 1.2rem; place-items:center; border-radius:999px; color:#fff; background:var(--success); font-size:1.8rem; font-weight:900; }.result p { color:var(--muted); line-height:1.65; }.result .hint { color:#8a6500; font-weight:800; }.result-card { padding:3rem; }
.resend-action { display:grid; justify-items:center; gap:.6rem; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line); text-align:center; }.resend-action p { margin:0; color:var(--muted); font-size:.8rem; }.resend-action .secondary-button { display:inline-block; }
.availability-builder { display:grid; grid-template-columns:1.35fr .8fr 1fr auto; gap:.65rem; align-items:end; padding:1rem; border:1px solid var(--line); border-radius:.9rem; background:#f8f9fc; }.availability-builder .field { margin:0; }.availability-list { display:grid; gap:.55rem; margin:1rem 0; }.availability-item { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem .9rem; border:1px solid var(--line); border-radius:.75rem; }.availability-item strong,.availability-item span { display:block; }.availability-item strong { font-size:.85rem; }.availability-item span { margin-top:.2rem; color:var(--muted); font-size:.72rem; }.remove-button { border:0; color:var(--danger); background:transparent; cursor:pointer; font-weight:800; }.empty-copy { margin:1rem 0; padding:1.2rem; color:var(--muted); background:#f8f9fc; border-radius:.75rem; text-align:center; font-size:.8rem; }
@media(max-width:850px){.register-main { grid-template-columns:1fr; width:min(40rem,calc(100% - 2rem)); margin:2rem auto; }.register-intro h1 { font-size:2.7rem; }.availability-builder { grid-template-columns:1fr 1fr; }.availability-builder .field:first-child { grid-column:1/-1; }.secondary-button { width:100%; }}
@media(max-width:520px){.public-header { padding:.8rem 1rem; }.form-grid,.availability-builder { grid-template-columns:1fr; }.availability-builder .field:first-child { grid-column:auto; }.register-card { padding:1.2rem; }.register-intro h1 { font-size:2.25rem; }}
