/* Reset básico */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Fundo geral (cor gradiente parecida com a imagem) */
body {
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    background: radial-gradient(circle at top left, #b32652 0%, #3a0320 40%, #05010a 100%);
}

/* Container do celular */
.phone-frame {
    width: 360px;
    height: 680px;
    border-radius: 12px;
    padding: 12px 32px;
    background: radial-gradient(circle at top, #cf2e58 0%, #4d0624 50%, #120012 100%);
    position: relative;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6);
    color: #636161;
    overflow: hidden;
}

/* Bolas decorativas */
.circle {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, #ff4a70 0%, #7f0a35 60%, #3a0018 100%);
    opacity: 0.9;
}

.circle.small {
    width: 40px;
    height: 40px;
    top: 90px;
    right: 28px;
}

.circle.large {
    width: 90px;
    height: 90px;
    top: 40px;
    left: 230px;
}

/* Título */
.header-text {
    margin-top: 10px;
    margin-bottom: 32px;
    color: #ffffff;
}

.header-text h1 {
    font-size: 26px;
    line-height: 1.2;
    font-weight: 600;
}

/* Card branco dos campos */
.form-card {
    margin-top: 16px;
/* Card branco dos campos  */

    background: #ffffff;
    border-radius: 26px;
    padding: 26px 20px 20px 20px;
    margin-top: 16px;
    box-shadow: 0 16px 30px rgba(0, 0, 0, 0.45);
}

/* Labels e inputs */
.form-group {
    margin-bottom: 18px;
}

.form-label {
    color: #999999;
  /*  font-size: 12px;
    margin-bottom: 4px;*/
}

.form-input-wrapper {
    position: relative;
}

.form-input {
    width: 100%;
    border: none;
    border-bottom: 1px solid #e0e0e0;
    padding: 8px 30px 8px 0;
    font-size: 14px;
    outline: none;
}

.form-input:focus {
    border-bottom-color: #d61c4b;
}

/* Ícones à direita dos campos (checado / olho de senha) */
.input-icon {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 14px;
    color: #d61c4b;
}

/* Botão principal */
.btn-primary {
    width: 100%;
    border: none;
    border-radius: 999px;
    padding: 14px 0;
    margin-top: 10px;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.5px;
    color: #ffffff;
    cursor: pointer;
    background: linear-gradient(90deg, #f13b63 0%, #b11345 50%, #7a0633 100%);
    box-shadow: 0 10px 18px rgba(177, 19, 69, 0.6);
    transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}

.btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 24px rgba(177, 19, 69, 0.75);
    opacity: 0.95;
}

.btn-primary:active {
    transform: translateY(1px);
    box-shadow: 0 6px 10px rgba(177, 19, 69, 0.5);
    opacity: 0.9;
}

/* Texto “Don’t have account? Sign in” */
.footer-text {
    margin-top: 14px;
    text-align: center;
    font-size: 12px;
    color: #777777;
}

.footer-text a {
    color: #d61c4b;
    font-weight: 600;
    text-decoration: none;
}

.footer-text a:hover {
    text-decoration: underline;
}

/* Todas as mensagens Bootstrap com texto branco */
.alert {
    color: #fff !important;
}

/* Opcional: garantir que o botão X fique visível */
.alert .btn-close {
    filter: invert(1);
}

.form-input.is-invalid {
    border-color: #dc3545 !important;
}

.form-label {
    font-weight: 500;
    margin-bottom: 0.5rem;
}

.phone-frame {
    max-width: 400px;
    margin: 2rem auto;
    padding: 2rem;
}
