/* ============================================================
   REGISTRATION PAGE
   File: /static/css/register.css
============================================================ */

/* ------------------------------------------------------------
   WRAPPER
------------------------------------------------------------ */
.register-wrapper{
    padding:40px 0 88px;
}

.register-container{
    max-width:980px;
}

.register-wrapper .register-container{
    background:
        linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.015)),
        linear-gradient(180deg, #111827 0%, #0f172a 100%);
    border:1px solid rgba(255,255,255,0.08);
    border-radius:28px;
    box-shadow:var(--shadow-lg);
    padding:24px;
}

@media (min-width:640px){
    .register-wrapper{
        padding:56px 0 104px;
    }

    .register-wrapper .register-container{
        padding:32px;
    }
}

@media (min-width:1024px){
    .register-wrapper .register-container{
        padding:44px;
    }
}

/* ------------------------------------------------------------
   HEADER
------------------------------------------------------------ */
.title-box{
    margin-bottom:28px;
}

.title-box h1{
    font-size:clamp(32px, 4vw, 54px);
    margin-bottom:12px;
}

.subtitle{
    max-width:64ch;
    color:var(--text-muted);
    font-size:15px;
    line-height:1.75;
}

.register-meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:18px;
}

.register-meta span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:8px 14px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,0.10);
    background:rgba(255,255,255,0.04);
    color:rgba(255,255,255,0.84);
    font-size:13px;
    font-weight:700;
}

@media (max-width:767px){
    .register-meta span{
        width:100%;
    }
}

@media (min-width:768px){
    .title-box{
        margin-bottom:36px;
    }

    .subtitle{
        font-size:16px;
    }
}

/* ------------------------------------------------------------
   ERROR BANNER
------------------------------------------------------------ */
.error-banner{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:14px 16px;
    margin:0 0 24px;
    background:rgba(239,68,68,0.14);
    border:1px solid rgba(239,68,68,0.35);
    border-radius:16px;
    color:#fff;
    font-size:14px;
    font-weight:700;
    line-height:1.6;
}

/* ------------------------------------------------------------
   FORM SECTIONS
------------------------------------------------------------ */
.form-section,
.checkbox-section{
    margin-top:24px;
    padding:22px;
    border-radius:22px;
    background:rgba(255,255,255,0.03);
    border:1px solid rgba(255,255,255,0.06);
}

.section-heading{
    margin-bottom:18px;
}

.section-title-sm{
    font-size:20px;
    font-weight:800;
    color:#fff;
    margin-bottom:6px;
    line-height:1.2;
}

.section-help{
    font-size:13px;
    color:rgba(255,255,255,0.62);
    line-height:1.65;
}

@media (min-width:768px){
    .form-section,
    .checkbox-section{
        padding:26px;
    }
}

/* ------------------------------------------------------------
   FORM GRID
------------------------------------------------------------ */
.reg-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:18px;
    border:0;
    padding:0;
    margin:0;
    min-width:0;
}

.grid-full{
    grid-column:auto;
}

@media (min-width:768px){
    .reg-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:22px;
    }

    .grid-full{
        grid-column:1 / -1;
    }
}

/* ------------------------------------------------------------
   FORM GROUP
------------------------------------------------------------ */
.form-group{
    min-width:0;
}

.form-group label{
    display:block;
    margin-bottom:8px;
    font-size:14px;
    font-weight:800;
    color:rgba(255,255,255,0.92);
}

.field-help{
    display:block;
    margin-top:8px;
    font-size:12px;
    line-height:1.5;
    color:rgba(255,255,255,0.55);
}

.field-error{
    margin-top:10px;
    font-size:12px;
    font-weight:800;
    line-height:1.5;
    color:var(--gold);
}

.muted{
    color:rgba(255,255,255,0.55);
    font-weight:700;
}

/* ------------------------------------------------------------
   INPUTS / SELECTS
------------------------------------------------------------ */
.form-group input,
.form-group select{
    width:100%;
    min-height:52px;
    padding:14px 14px;
    border:1px solid rgba(255,255,255,0.12);
    background:rgba(255,255,255,0.03);
    color:#fff;
    font-size:15px;
    line-height:1.4;
    transition:border-color 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
    appearance:none;
    border-radius:14px;
}

.form-group input::placeholder{
    color:rgba(255,255,255,0.45);
}

.form-group input:hover,
.form-group select:hover{
    border-color:rgba(255,255,255,0.18);
}

.form-group input:focus,
.form-group select:focus{
    border-color:rgba(250,204,21,0.72);
    box-shadow:0 0 0 3px rgba(250,204,21,0.15);
    outline:none;
}

.form-group input[aria-invalid="true"],
.form-group select[aria-invalid="true"]{
    border-color:rgba(250,204,21,0.75);
    box-shadow:0 0 0 3px rgba(250,204,21,0.12);
}

.form-group select{
    color-scheme:dark;
    cursor:pointer;
}

.form-group select option{
    background:#fff;
    color:#111;
}

@media (max-width:480px){
    .form-group input,
    .form-group select{
        min-height:48px;
        padding:13px 12px;
        font-size:14px;
    }
}

/* ------------------------------------------------------------
   HONEYPOT / SR ONLY
------------------------------------------------------------ */
.honeypot{
    display:none !important;
}

.sr-only{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0, 0, 0, 0);
    white-space:nowrap;
    border:0;
}

/* ------------------------------------------------------------
   CHECKBOX SECTIONS
------------------------------------------------------------ */
.checkbox-section h3{
    font-size:20px;
    font-weight:800;
    margin-bottom:8px;
    color:#fff;
    line-height:1.2;
}

.checkbox-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    margin-top:18px;
}

@media (min-width:768px){
    .checkbox-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

.checkbox-item{
    display:flex;
    align-items:flex-start;
    gap:12px;
    padding:16px;
    border:1px solid rgba(255,255,255,0.10);
    border-radius:18px;
    background:rgba(255,255,255,0.02);
    cursor:pointer;
    transition:border-color 0.25s ease, transform 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
    font-size:14px;
    line-height:1.6;
}

.checkbox-item:hover{
    border-color:rgba(250,204,21,0.40);
    transform:translateY(-2px);
    background:rgba(255,255,255,0.03);
    box-shadow:var(--shadow-md);
}

.checkbox-item input{
    flex:0 0 auto;
    width:18px;
    height:18px;
    margin-top:2px;
    accent-color:var(--gold);
}

.checkbox-label{
    color:rgba(255,255,255,0.9);
}

/* ------------------------------------------------------------
   SUBMIT AREA
------------------------------------------------------------ */
.submit-area{
    margin-top:32px;
    padding-top:24px;
    border-top:1px solid rgba(255,255,255,0.06);
}

.submit-btn{
    width:100%;
    min-height:54px;
    padding:16px 18px;
    border:none;
    border-radius:999px;
    background:var(--gold);
    color:#000;
    cursor:pointer;
    font-size:14px;
    font-weight:900;
    letter-spacing:0.08em;
    text-transform:uppercase;
    transition:transform 0.25s ease, background-color 0.25s ease, opacity 0.25s ease, box-shadow 0.25s ease;
    box-shadow:0 8px 20px rgba(250,204,21,0.16);
}

.submit-btn:hover{
    background:var(--gold-soft);
    transform:translateY(-2px);
}

.submit-btn:disabled{
    opacity:0.72;
    cursor:not-allowed;
    transform:none;
}

.submit-help{
    margin-top:12px;
    font-size:13px;
    line-height:1.6;
    color:rgba(255,255,255,0.55);
    text-align:center;
}

/* ------------------------------------------------------------
   ACCESSIBILITY
------------------------------------------------------------ */
.form-group input:focus-visible,
.form-group select:focus-visible,
.checkbox-item input:focus-visible,
.submit-btn:focus-visible{
    outline:2px solid var(--gold);
    outline-offset:3px;
}

/* ------------------------------------------------------------
   RESPONSIVE TWEAKS
------------------------------------------------------------ */
@media (max-width:767px){
    .register-wrapper .register-container{
        padding:22px 18px;
        border-radius:22px;
    }

    .form-section,
    .checkbox-section{
        padding:18px;
        border-radius:18px;
    }
}

@media (max-width:480px){
    .title-box{
        margin-bottom:24px;
    }

    .submit-btn{
        min-height:50px;
        font-size:13px;
        padding:14px 16px;
    }
}

/* ------------------------------------------------------------
   REDUCED MOTION
------------------------------------------------------------ */
@media (prefers-reduced-motion:reduce){
    .form-group input,
    .form-group select,
    .checkbox-item,
    .submit-btn{
        transition:none !important;
    }
}