
.dancea2-portal{
    --da2-green:#198754;
    --da2-text:inherit;
    --da2-border:rgba(127,127,127,.22);
    --da2-soft:rgba(127,127,127,.07);
    max-width:470px;
    margin:16px auto;
    padding:0 10px;
}
.dancea2-portal *{box-sizing:border-box}
.dancea2-portal-card{
    overflow:hidden;
    border:1px solid var(--da2-border);
    border-radius:20px;
    background:var(--da2-soft);
}
.dancea2-portal-header,
.dancea2-portal-logged{
    padding:22px 18px;
}
.dancea2-portal-header{text-align:center}
.dancea2-portal-eyebrow{
    display:block;
    margin-bottom:5px;
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
    opacity:.58;
}
.dancea2-portal h2{
    margin:0 0 7px;
    font-size:1.55rem;
}
.dancea2-portal-header p,
.dancea2-portal-logged p{
    margin:0;
    opacity:.68;
    line-height:1.45;
}
.dancea2-portal-tabs{
    display:grid;
    grid-template-columns:1fr 1fr;
    padding:0 12px;
    gap:6px;
}
.dancea2-portal-tabs button{
    min-height:46px;
    border:0;
    border-radius:12px 12px 0 0;
    background:transparent;
    color:inherit;
    font-weight:700;
    cursor:pointer;
}
.dancea2-portal-tabs button.active{
    background:rgba(127,127,127,.12);
}
.dancea2-portal-panel{
    display:none;
    padding:18px;
    background:rgba(255,255,255,.03);
}
.dancea2-portal-panel.active{display:block}
.dancea2-login-form{
    display:flex;
    flex-direction:column;
    gap:14px;
}
.dancea2-login-form label>span{
    display:block;
    margin-bottom:5px;
    font-size:.82rem;
    font-weight:700;
}
.dancea2-login-form input[type="text"],
.dancea2-login-form input[type="password"]{
    width:100%;
    min-height:48px;
    padding:11px 12px;
    border:1px solid var(--da2-border);
    border-radius:10px;
    background:transparent;
    color:inherit;
    font-size:16px;
}
.dancea2-password-wrap{
    position:relative;
}
.dancea2-password-wrap input{
    padding-right:76px!important;
}
.dancea2-show-password{
    position:absolute;
    right:6px;
    top:6px;
    min-height:36px;
    padding:0 8px;
    border:0;
    background:transparent;
    color:inherit;
    opacity:.68;
    font-size:.78rem;
    cursor:pointer;
}
.dancea2-remember{
    display:flex!important;
    align-items:center;
    gap:8px;
    font-size:.8rem;
}
.dancea2-remember span{margin:0!important;font-weight:500!important}
.dancea2-portal-primary,
.dancea2-portal-secondary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:10px 16px;
    border:0;
    border-radius:11px;
    text-decoration:none;
    font-weight:800;
    cursor:pointer;
}
.dancea2-portal-primary{
    background:var(--da2-green);
    color:#fff;
}
.dancea2-portal-secondary{
    background:rgba(127,127,127,.13);
    color:inherit;
}
.dancea2-full{width:100%}
.dancea2-forgot{
    display:block;
    margin-top:14px;
    text-align:center;
    font-size:.82rem;
}
.dancea2-register-intro{text-align:center}
.dancea2-register-icon{
    display:flex;
    width:52px;
    height:52px;
    align-items:center;
    justify-content:center;
    margin:0 auto 10px;
    border-radius:50%;
    background:rgba(25,135,84,.12);
    font-size:1.5rem;
    font-weight:700;
}
.dancea2-register-intro h3{margin:0 0 8px}
.dancea2-register-intro p{
    margin:0 0 16px;
    line-height:1.5;
    opacity:.72;
}
.dancea2-portal-warning{
    padding:10px;
    border-radius:9px;
    background:rgba(180,120,0,.12);
    font-size:.82rem;
}
.dancea2-portal-actions{
    display:flex;
    gap:8px;
    margin-top:16px;
    flex-wrap:wrap;
}
.dancea2-portal-actions form{margin:0}
@media(max-width:420px){
    .dancea2-portal{margin:8px auto;padding:0 6px}
    .dancea2-portal-header,.dancea2-portal-panel,.dancea2-portal-logged{padding:18px 14px}
    .dancea2-portal h2{font-size:1.35rem}
    .dancea2-portal-tabs{padding:0 8px}
}


/* v1.2 — cadastro integrado */
.dancea2-inline-cadastro{display:none;margin-top:18px;text-align:left}
.dancea2-inline-cadastro.active{display:block}
.dancea2-inline-cadastro .dancea2-cadastro-form{
    padding-top:18px;
    border-top:1px solid var(--da2-border);
}
.dancea2-inline-cadastro .dancea2-form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}
.dancea2-inline-cadastro .dancea2-field{
    display:flex;
    flex-direction:column;
    gap:5px;
    min-width:0;
}
.dancea2-inline-cadastro .dancea2-field-full{grid-column:1/-1}
.dancea2-inline-cadastro .dancea2-field>span{
    font-size:.82rem;
    font-weight:700;
}
.dancea2-inline-cadastro input,
.dancea2-inline-cadastro select,
.dancea2-inline-cadastro textarea{
    width:100%;
    min-height:46px;
    padding:10px 11px;
    border:1px solid var(--da2-border);
    border-radius:9px;
    background:transparent;
    color:inherit;
    font:inherit;
}
.dancea2-inline-cadastro textarea{min-height:80px;resize:vertical}
.dancea2-inline-cadastro input[type="file"]{padding:8px}
.dancea2-inline-terms{gap:10px!important}
.dancea2-inline-cadastro .dancea2-check{
    display:flex;
    flex-direction:row;
    align-items:flex-start;
    gap:8px;
    font-size:.8rem;
    line-height:1.35;
}
.dancea2-inline-cadastro .dancea2-check input{
    width:auto;
    min-height:0;
    margin-top:3px;
}
.dancea2-cadastro-message{
    margin-bottom:12px;
    padding:10px 12px;
    border-radius:9px;
    font-size:.85rem;
}
.dancea2-cadastro-success{background:rgba(25,135,84,.12)}
.dancea2-cadastro-danger{background:rgba(180,0,0,.10)}
@media(max-width:520px){
    .dancea2-inline-cadastro .dancea2-form-grid{grid-template-columns:1fr}
    .dancea2-inline-cadastro .dancea2-field-full{grid-column:auto}
}


/* v1.3 — Termo de Orientações e Adesão completo */
.dancea2-inline-cadastro .dancea2-terms{
    margin-top:8px;
}
.dancea2-inline-cadastro .dancea2-terms h3{
    margin:0 0 8px;
    font-size:1.15rem;
    line-height:1.25;
}
.dancea2-inline-cadastro .dancea2-terms>p{
    margin:0 0 12px;
    line-height:1.45;
}
.dancea2-inline-cadastro .dancea2-terms-box{
    max-height:360px;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:14px;
    border:1px solid var(--da2-border);
    border-radius:10px;
    background:rgba(127,127,127,.04);
    margin-bottom:14px;
    -webkit-overflow-scrolling:touch;
}
.dancea2-inline-cadastro .dancea2-terms-box h4{
    margin:15px 0 6px;
    font-size:.95rem;
}
.dancea2-inline-cadastro .dancea2-terms-box h4:first-child{
    margin-top:0;
}
.dancea2-inline-cadastro .dancea2-terms-box p{
    margin:0 0 10px;
    line-height:1.5;
    font-size:.86rem;
}
.dancea2-inline-cadastro .dancea2-terms .dancea2-check{
    margin:12px 0;
}
@media(max-width:520px){
    .dancea2-inline-cadastro .dancea2-terms-box{
        max-height:320px;
        padding:12px;
    }
}

/* v1.6 — Função na dança */
.dancea2-role-field > span{
    font-size:.82rem;
    font-weight:700;
}
.dancea2-role-options{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}
.dancea2-role-option{
    display:flex;
    align-items:center;
    gap:8px;
    min-width:130px;
    min-height:44px;
    padding:9px 12px;
    border:1px solid var(--da2-border);
    border-radius:9px;
    cursor:pointer;
}
.dancea2-role-option input{
    width:auto!important;
    min-height:0!important;
    margin:0;
}


/* v1.7 — dados de acesso */
.dancea2-inline-cadastro .dancea2-login-heading{
    margin-top:4px;
    padding-top:14px;
    border-top:1px solid var(--da2-border);
}
.dancea2-inline-cadastro .dancea2-login-heading strong{
    display:block;
    font-size:1rem;
}
.dancea2-inline-cadastro .dancea2-login-heading small{
    display:block;
    margin-top:3px;
    opacity:.68;
    line-height:1.35;
}


/* =========================================================
   v1.9 — mensagens de login no próprio Portal DanceA2
   ========================================================= */
.dancea2-login-message{
    margin:0 0 14px;
    padding:12px 14px;
    border-radius:10px;
    font-size:.88rem;
    line-height:1.45;
    text-align:left;
}
.dancea2-login-danger{
    background:rgba(185,28,28,.10);
    border:1px solid rgba(185,28,28,.20);
    color:#991b1b;
}
.dancea2-login-pending{
    background:rgba(180,120,0,.10);
    border:1px solid rgba(180,120,0,.22);
    color:#7a4b00;
}


/* =========================================================
   v1.10 — recuperação de senha via direção da DanceA2
   ========================================================= */
.dancea2-password-help{
    margin-top:14px;
    text-align:center;
}
.dancea2-password-help-trigger{
    border:0;
    background:transparent;
    color:#e4472d;
    padding:4px 6px;
    font:inherit;
    font-size:.84rem;
    cursor:pointer;
    text-decoration:none;
}
.dancea2-password-help-trigger:hover,
.dancea2-password-help-trigger:focus{
    text-decoration:underline;
}
.dancea2-password-help-box{
    margin-top:10px;
    padding:12px 14px;
    border:1px solid rgba(25,135,84,.18);
    border-radius:10px;
    background:rgba(25,135,84,.06);
    text-align:center;
}
.dancea2-password-help-box[hidden]{
    display:none!important;
}
.dancea2-password-help-box p{
    margin:0 0 10px;
    font-size:.86rem;
    line-height:1.45;
    color:#555;
}
.dancea2-whatsapp-help{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:8px 14px;
    border-radius:8px;
    background:#1f8f55;
    color:#fff!important;
    text-decoration:none!important;
    font-weight:600;
    font-size:.88rem;
}
.dancea2-whatsapp-help:hover,
.dancea2-whatsapp-help:focus{
    filter:brightness(.96);
}
